web-dev-qa-db-ja.com

/ dev / sdデバイスをそれらが表すハードウェアに関連付けるにはどうすればよいですか?

ドライブが故障し始めており、私はそのデバイスを/dev/sdbデバイスファイルの指定によってのみ認識しています。そのデバイスファイルを実際のハードウェアデバイスに関連付けて、どのドライブを物理的に交換するかを知るにはどうすればよいですか?

ボーナス:このインストールに/dev/disk/とそのサブディレクトリがない場合はどうなりますか? (悲しいことに、私はしません)

36
Wesley

/sys/blockを確認できます。

-bash-3.2$ ls -ld /sys/block/sd*/device
lrwxrwxrwx 1 root root 0 Jun  8 21:09 /sys/block/sda/device -> ../../devices/pci0000:00/0000:00:1f.2/Host0/target0:0:0/0:0:0:0
lrwxrwxrwx 1 root root 0 Jun  8 21:10 /sys/block/sdb/device -> ../../devices/pci0000:00/0000:00:1f.2/Host1/target1:0:0/1:0:0:0
lrwxrwxrwx 1 root root 0 Jun  8 21:10 /sys/block/sdc/device -> ../../devices/pci0000:00/0000:00:1f.2/Host2/target2:0:0/2:0:0:0
lrwxrwxrwx 1 root root 0 Jun  8 21:10 /sys/block/sdd/device -> ../../devices/pci0000:00/0000:00:1f.2/Host3/target3:0:0/3:0:0:0

または、/sysがない場合は、/proc/scsi/scsiを確認できます。

-bash-3.2$ cat /proc/scsi/scsi 
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: ST31000340AS     Rev: SD1A
  Type:   Direct-Access                    ANSI SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: ST31000340AS     Rev: SD1A
  Type:   Direct-Access                    ANSI SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: ST31000340AS     Rev: SD1A
  Type:   Direct-Access                    ANSI SCSI revision: 05
Host: scsi3 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: ST31000340AS     Rev: SD1A
  Type:   Direct-Access                    ANSI SCSI revision: 05
Host: scsi4 Channel: 00 Id: 00 Lun: 00
  Vendor: PepperC  Model: Virtual Disc 1   Rev: 0.01
  Type:   CD-ROM                           ANSI SCSI revision: 03
22
Handyman5
hdparm -i /dev/sdb

ドライブのモデルとシリアル番号が表示されます。

14
Martin Barry

比類のないGillesが述べたように 彼のこの回答では 、カーネルがudevを使用している場合、udevadmコマンドを使用してデバイスに問い合わせることができます。

udevadm info -n /dev/sda -a

(悲しいことに、場合によっては[この場合、私にとっては本当のことですが] udevが使用されていないか、udevadmが使用できないこともあります。)

12
Wesley

ドライブのLEDが見えるか、ディスクのノイズが聞こえる場合は、

Sudo cat /dev/sdb >/dev/null

どのドライブが突然継続的にアクティブになるかを確認します。または、ノイズで行く場合は、

Sudo find /mount/point >/dev/null

これにより、ヘッドがさらに移動します(障害が発生したディスクでは行わないで、代わりに他のディスクで除去するプロセスを使用することをお勧めします)。

8
jippie

私には4つの方法があります。最初のものは最も簡単です:

dmesg | egrep "sd[a-z]"

他のものについては、これ以外に/ dev/diskが必要かどうかはわかりません:

ls -lF /dev/disk/by-uuid

他人:

blkid -o list -c /dev/null

そして明白な:

fdisk -l
4
Samuel Duclos

これがLinuxであると仮定すると、最も明白なことは、カーネルが最初にデバイスを初期化する場所をdmesgで確認することです。ドライブモデルをログに記録します。

4
Julian Yon

ここでは、SCSIデバイス名を見つけるために知っているいくつかの方法を示します。

  • dmesg | egrep "sd[a-z]"
  • lsblk --scsi(util-linuxパッケージから=> v2.22)
  • lshw -C disk
  • ls -ld /sys/block/sd*/device
3
SamK