在某些情况下,当我们不在 HW Linux 机器附近时,我们只能看到如下磁盘:
/dev/sdd 20511312 199536 20295392 1% /grd/sdd
/dev/sdb 20511312 487852 20007076 3% /grd/sdb
/dev/sde 20511312 91572 20403356 1% /grd/sde
/dev/sdf 20511312 45192 20449736 1% /grd/sdf
但如果磁盘位于硬件计算机中或来自外部 JBOD,则不会获取信息。
如何知道磁盘位于何处?也许是通过dmidecode
或其他什么?
答案1
您可以尝试 hdparm -i {device},例如:
# hdparm -i /dev/sda
/dev/sda:
Model=SAMSUNG MZ7TD512HAGM-000L1, FwRev=DXT05L0Q,
SerialNo=S151NYADA01701
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=1000215216
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
AdvancedPM=no WriteCache=enabled
Drive conforms to: unknown: ATA/ATAPI-2,3,4,5,6,7
* signifies the current active mode
以上是标准磁盘驱动器的正确输出。我相信虚拟磁盘(例如 JBOD 或 RAID)应该会失败。然后它会显示类似以下内容:
# hdparm -i /dev/sdb
/dev/sdb:
SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
HDIO_GET_IDENTITY failed: Invalid argument
但是,如果您的本地磁盘也是由某些硬件控制器提供的 RAID 类型,则 hdparm 就没有多大用处。那么你可以尝试 udevadm:
udevadm info -a -p $(udevadm info -q path -n /dev/sdb)
它的输出很长,所以我不会将其全部粘贴到此处,但是当您比较输出时,有足够的信息来区分节点上的 sdX 设备类型。