Wes*_*ley 38 linux hard-disk block-device
驱动器开始出现故障,我只能通过其/dev/sdb设备文件名称来了解该设备。我可以使用哪些方法将该设备文件与实际硬件设备相关联,以了解要物理替换哪个驱动器?
奖励:如果我/dev/disk/在此安装中没有其子目录怎么办?(遗憾的是,我没有)
小智 23
你可以看看/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
Run Code Online (Sandbox Code Playgroud)
或者,如果您没有/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
Run Code Online (Sandbox Code Playgroud)
小智 14
hdparm -i /dev/sdb
Run Code Online (Sandbox Code Playgroud)
这应该为您提供驱动器的型号和序列号。
Wes*_*ley 12
正如他的这个答案中提到的独一无二的 Gilles ,如果您的内核使用udev您可以使用该udevadm命令来询问设备:
udevadm info -n /dev/sda -a
Run Code Online (Sandbox Code Playgroud)
(可悲的是,在某些情况下 [双重悲哀的是,在这种情况下对我来说确实如此] udev 未使用和/或 udevadm 不可用。)
如果你能看到驱动器上的 LED,或者听到磁盘噪音,你可以运行
sudo cat /dev/sdb >/dev/null
Run Code Online (Sandbox Code Playgroud)
并查看哪个驱动器突然变得持续活动。或者,如果你在噪音中前进,
sudo find /mount/point >/dev/null
Run Code Online (Sandbox Code Playgroud)
这将使磁头移动更多(最好不要在出现故障的磁盘上执行此操作,而是对其他磁盘使用消除过程)。
小智 5
我有4种方法。第一个是最简单的:
dmesg | egrep "sd[a-z]"
Run Code Online (Sandbox Code Playgroud)
对于其他人,我不确定他们是否需要 /dev/disk 除了这个:
ls -lF /dev/disk/by-uuid
Run Code Online (Sandbox Code Playgroud)
其他:
blkid -o list -c /dev/null
Run Code Online (Sandbox Code Playgroud)
显而易见:
fdisk -l
Run Code Online (Sandbox Code Playgroud)