/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

관련 정보