/dev/sd デバイスをそれが表すハードウェアとどのように接続しますか?

/dev/sd デバイスをそれが表すハードウェアとどのように接続しますか?

ドライブでエラーが発生し始め、/dev/sdbファイル名でのみデバイスを識別できました。物理的に交換するドライブを特定するために、このデバイスファイルを物理ハードウェアデバイスに関連付けるにはどのような方法を使用できますか?

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

答え1

以下を見ることができます/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

答え2

hdparm -i /dev/sdb

これにより、ドライブのモデルとシリアル番号が提供されます。

答え3

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

udevadm info -n /dev/sda -a

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

答え4

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

dmesg | egrep "sd[a-z]"

他の人には、以下に加えて/dev/diskが必要かどうかわかりません。

ls -lF /dev/disk/by-uuid

その他:

blkid -o list -c /dev/null

明らかなものは次のとおりです。

fdisk -l

関連情報