サーバーに接続する複数のハードディスクがあり、sdXYのビューでどれがどれであるかわかりません。端末からハードディスクのシリアル番号を確認できれば、簡単に識別できます。
端末からそれらを見る方法はありますか?
Root権限を必要としない別のソリューション:
udevadm info --query=all --name=/dev/sda | grep ID_SERIAL
これは実際には、don_crisstiによって言及されたlsblk
が利用するライブラリですが、私のバージョンのlsblkにはシリアルのオプションが含まれていません。
端末タイプ:
# 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
端末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
hdparm
を使用すると、端末からハードディスクのシリアル番号を確認できます。
ターミナルを開き、次のように入力します
hdparm -I /dev/sd?|grep -E "Number|/dev"
$ ls -al /dev/disk/by-id/*sda*
これにより、おなじみのディスク名に対するシリアル番号が表示されます。
私が知る最も簡単な方法(ルートは必要ありません):
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が直接取得します。
ls -al /dev/disk/by-id/ | grep sdX | grep wwn | awk '{print $9'}
これにより、ディスクのwwn-id
が表示されます。 OSのディストリビューションとバージョンによっては、awk
フィルターを調整する必要がある場合があります。 Pacemakerディスクフェンシングに必要なwwn-id
を読み取るためのスクリプトソリューションが必要でした。パーティション(/dev/sdX1
など)が既に作成されている場合、出力をフィルター処理するために別のgrep
が必要です。
ls -al /dev/disk/by-id/ | grep sdX | grep wwn | grep -v sdX1 | awk '{print $9'}
使用可能な場合はディスクのWWNが表示されるため、ls -l /dev/disk/by-id
の使用も好きです。 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