![如何将 /dev/sd 设备与其代表的硬件关联起来?](https://linux22.com/image/23271/%E5%A6%82%E4%BD%95%E5%B0%86%20%2Fdev%2Fsd%20%E8%AE%BE%E5%A4%87%E4%B8%8E%E5%85%B6%E4%BB%A3%E8%A1%A8%E7%9A%84%E7%A1%AC%E4%BB%B6%E5%85%B3%E8%81%94%E8%B5%B7%E6%9D%A5%EF%BC%9F.png)
驱动器开始出现故障,我只能通过/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