端末からのハードディスクのシリアル番号?


66

私のサーバーに接続されている複数のハードディスクがあり、sdXYの観点からどれがどれなのかわかりません。端末からハードディスクのシリアル番号を確認できれば、簡単に識別できます。

ターミナルからそれらを見る方法はありますか?

回答:


58

ルート権限を必要としない別のソリューション:

udevadm info --query=all --name=/dev/sda | grep ID_SERIAL

これは実際にはlsblkdon_crisstiが言及しているライブラリです。しかし、私のバージョンのlsblkにはシリアルのオプションが含まれていません。


2
ハードディスクが完全に死んだ場合の最良の解決策。他の方法は機能しません。
niieani

1
grep ID_SCSI_SERIALで報告されるワールドワイド名(wwn)とは対照的に、実際にドライブのシリアル番号を提供するものである可能性がありますID_SERIAL
ロン・

@ron面白い!wwnを定義する参照はありますか?
ヨハン

WD、Seagate、HGSTハードドライブでの端末での値とラベルに記載されている値を比較した初めての経験です。ハードドライブは主にエンタープライズ/データセンターグレードとコンシューマデスクトップです。
-ron

1
@ronこれをもう一度テストしました。私のバージョンのudevadm(systemd 229)はID_WWNフィールドを報告します。私のシステムのドライブには、ID_SCSI_SERIAL類似するものも何もない(no ID_ATA_SERIAL): E: ID_SERIAL=TOSHIBA-TR150_23SC51E8J2BI ... E: ID_SERIAL_SHORT=23SC51E8J2BI ... E: ID_WWN=0x5e83a97200463ff3 ... E: ID_WWN_WITH_EXTENSION=0x5e83a97200463ff3
ヨハン

50

ターミナルタイプ:

# hdparm -I /dev/sd? | grep 'Serial\ Number'

編集:lshwまたはを使用することもできますsmartctl

  • lshw

    # lshw -class disk

  • smartctl

    # smartctl -i /dev/sda

これらのツールが見つからない場合は、次のパッケージをインストールしてください

# apt-get install hdparm
# apt-get install smartmontools
# apt-get install lshw

答えてくれてありがとう。しかし、dev / sdXXを提供しません。修正してみてください。その良い場合を除き
rɑːdʒɑ

あなたは「グレップ」部分を取る場合、あなたはのように完全な情報を取得しますhdparm -I /dev/sd?
Loopo

3
ハードディスクが完全に故障し、故障したユニットのシリアル番号を探している場合は機能しません。代わりに@Johannのメソッドを使用してください。
niieani

(apt-lyという名前の)hdparmパッケージをARM(Raspberry PiのRaspbian )にインストールする必要がありました。
EthernetCable

hdparm -I /dev/sd? | grep --before-context=4 'Serial\ Number'シリアル番号とデバイスを関連付けるために使用します。元の質問がその結果を要求しているようです。
s.co.tt

31

デバイス1の名前と対応するシリアル番号:

lsblk --nodeps -o name,serial

出力:

NAME SERIAL
sda  0000000012400917BA30
sdb  0000000012400917BA96

-nヘッダー行を印刷したくない場合は追加します:

lsblk --nodeps -no name,serial

出力:

sda  0000000012400917BA30
sdb  0000000012400917BA96

device特定のデバイスのシリアル番号のみを取得するには、引数として渡します。

lsblk --nodeps -no serial /dev/sda

出力:

0000000012400917BA30

lsblk すべての使用可能な(または指定された)ブロックデバイスに関する情報をリストすることに注意してください。さて、最後の用語が何を意味するのか分からない人のために:
一般に、ブロックデバイスはデータを保存または保持するデバイスです。ディスケットドライブ、ハードドライブ、およびCD-ROMドライブはすべてブロックデバイスです。ただし、使用lsblkする場合、たとえばtype(デバイスタイプ)やtran(デバイストランスポートタイプ)などの列を追加するだけで問題ありません。

lsblk --nodeps -no name、serial、type、tran
sda  0000000012400917BA30     disk sata
sdb  0000000012400917BA96     disk sata
sr0  4B583242334C453233353320 rom  usb

10
これが必要とするように見えることに注意してくださいlsblkからのutil-linuxのバージョン2.24以上:github.com/karelzak/util-linux/commit/...
ヨハン

VM Ubuntuを使用しているときに、ハードディスクのシリアルを取得する方法は?上記のコマンドは、この状況では何も返しません
Benyamin Jafari

11

を使用hdparm すると、端末からハードディスクのシリアル番号を確認できます。

ターミナルを開き、次のように入力します

 hdparm -I /dev/sd?|grep -E "Number|/dev"

さて、しかしでオプションを使用するにはスーパーユーザーである必要があります。私もそれを望んでおらず、ルート権限なしで ser#を読み出す方法を好みます。これが、don_crisstiのソリューションのみを支持した理由です。–構文エラー57秒前-Ihdparm
構文エラー

9
$ ls -al /dev/disk/by-id/*sda*

これにより、おなじみのディスク名に対してシリアル番号が表示されます。


これは賢いアプローチですが、私の仮想ボックスでは機能しません。by-iddir の内容は単なるシンボリックリンクのように見えるので、ls -al /dev/disk/by-id/とにかく必要なものが表示されます。
ワイルドカード

1
これは、debianライブブートシステムでも機能しましたが、他のすべてのツールは、インターネットをセットアップして適切に取得することなく、ゼロから利用できません。
ホイジュイ

3

私が知っている最も簡単な方法(ルートは必要ありません):

inxi -Dplxx

これは、すべてのディスク、そのシリアル、および追加情報を出力します。-pはパーティションを追加します。-lはラベルを追加します。-uは、パーティションのUUIDを追加します。

それに、覚えやすいですよね。

サンプル:

inxi -Dxx
Drives:    HDD Total Size: 810.2GB (42.9% used)
           ID-1: /dev/sdc model: ST3160827AS size: 160.0GB serial: 5MT2HMH6
           ID-2: /dev/sdb model: WDC_WD3200JD size: 320.1GB serial: WD-WCAMR1302926
           ID-3: /dev/sda model: ST380817AS size: 80.0GB serial: 4MR2EWBE
           ID-4: /dev/sdd model: ST3250824AS size: 250.1GB serial: 9ND08GKX

これにより、光学ドライブが除外されることに注意してください。光学データを表示するには:

inxi -Dxxd 
Drives:    HDD Total Size: 810.2GB (42.9% used)
           ID-1: /dev/sdc model: ST3160827AS size: 160.0GB serial: 5MT2HMH6
           ID-2: /dev/sdb model: WDC_WD3200JD size: 320.1GB serial: WD-WCAMR1302926
           ID-3: /dev/sda model: ST380817AS size: 80.0GB serial: 4MR2EWBE
           ID-4: /dev/sdd model: ST3250824AS size: 250.1GB serial: 9ND08GKX
           Optical-1: /dev/sr0 model: LITE-ON DVDRW SOHW-1693S
           rev: KS09 dev-links: dvd,dvdrw
           Features: speed: 48x multisession: yes
           audio: yes dvd: yes rw: cd-r,cd-rw,dvd-r state: running
           Optical-2: /dev/sr1 model: LITE-ON LTR-52327S rev: QS0C dev-links: cdrom,cdrw
           Features: speed: 52x multisession: yes
           audio: yes dvd: no rw: cd-r,cd-rw state: running

私のDebianシステムでは、rootであろうとユーザーであろうと、lsblkはシリアルについて何も表示しないことに注意してください。そのため、inxiはより信頼性の高い方法を使用してそのデータを取得します。

lsblk --nodeps -o name,serial
NAME SERIAL
fd0  
sda  
sdb  
sdc  
sdd  
sr0  
sr1  

lsblk --version
lsblk from util-linux 2.25.2

ご覧のとおり、lsblkにとっては、光学ドライブとフロッピードライブもディスクであると考えています。ディスクは挿入されるまでディスクにならないので、ある意味ではそうではありません。また、シリアルの場合は何も表示されません。また、ラベルなどの他の値の場合も表示されません。このデータはシステムで利用できるため、間違いなくバグであり、inxiが直接取得します。


2
投稿の最後の部分は間違っており、lsblkディスクだとは思わず、単にすべてのブロックデバイスをリストします。明確化のために私の更新された投稿を参照してください。情報を表示しないことに関しては-これは、そのlsblk振る舞いで有名なdebianを使用しているためです。それはarchlinuxで絶対に問題なく動作するので、間違いなくバグではありません。また、inxi他のコマンドを使用してその情報を取得する単なるbashスクリプトです。「直接」何も取得しません。
-don_crissti

技術的には正しいですが、通常の音声の領域では、ディスクはこの概念を伝える適切な方法です。動作の失敗はもちろんバグであり、原因は無関係です。そのため、バグのあるlsblkはバグではないというコメントは基本的に意味がありません。バグがdebianで作成されたものであるかどうかは、バグであるという事実を変更しません。直接、仲介なしで、つまり、inxiがシリアル情報を取得するファイルシステムからのことを意味します。答えはgnu / linuxの全体的な状況を反映する必要があります。そのため、たとえばlsblkはdebian / buntuを除いて動作すると言っても、ほとんどのユーザーは動作しないと思うので価値がありません。
リザード

答えのこの部分は間違っています:lsblk、光学ドライブとフロッピードライブもディスクだと考えています。実際、lsblkはブロックデバイス(ハードディスク、SSD、フロッピーディスクドライブ、光ディスクドライブ、LVM論理ボリュームなどを含む)をリストし、lsblkはディスクと非ディスクを区別しません。
pts

Debianバスターの参考までにlsblk --nodeps -o name,serial、シリアル番号は表示されますが、バグを再現することはできません。
pts

lsblkは改善されていますが、まだいくつかの微妙な問題があります。作成するツールのプライマリデータソースとして使用するつもりはありませんが、セカンダリソースとして使用していますが、説明できないバグに既に遭遇しています。それを使用して、現在作業中です。
リザード

1

ls -l /dev/disk/by-id使用可能な場合はディスクのWWNが表示されるため、使用することも好きです。通常、WWNはディスクのラベルに印刷されているため、簡単に識別できます。

root@server (16:27:58):~# ls -l /dev/disk/by-id
total 0
lrwxrwxrwx 1 root root  9 Dec 20 01:51 ata-Samsung_SSD_850_EVO_250GB_S3PZNF0JB57579N -> ../../sda
lrwxrwxrwx 1 root root 10 Dec 20 01:51 ata-Samsung_SSD_850_EVO_250GB_S3PZNF0JB57579N-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Dec 20 01:51 ata-Samsung_SSD_850_EVO_250GB_S3PZNF0JB57579N-part2 -> ../../sda2
...
lrwxrwxrwx 1 root root  9 Dec 20 01:51 wwn-0x50014ee25ffd0a5c -> ../../sdc
lrwxrwxrwx 1 root root  9 Dec 20 01:51 wwn-0x50014ee2b554c0b4 -> ../../sdb
lrwxrwxrwx 1 root root  9 Dec 20 01:51 wwn-0x5002538d427700f0 -> ../../sda

1
ls -al /dev/disk/by-id/ | grep sdX | grep wwn | awk '{print $9'}

これによりwwn-id、ディスクが表示されます。awkフィルタは、OSディストリビューションおよびバージョンに応じて調整する必要があるかもしれません。を読むにはwwn-id、Pacemakerディスクフェンシングに必要なスクリプト化されたソリューションが必要でした。パーティション(/dev/sdX1例)がすでに作成されている場合grep、出力をフィルタリングするには別のパーティションが必要です:

ls -al /dev/disk/by-id/ | grep sdX | grep wwn | grep -v sdX1 | awk '{print $9'}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.