Как соотнести устройства /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

Как сказал неподражаемый Жильв этом ответе его, если ваше ядро ​​использует , 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

Связанный контент