我需要确定磁盘是 IDE 还是 SATA(或者可能是其他类型)。我知道设备是 /dev/sda,所以我认为它是 SATA,但我不知道仅凭名称是否可以确定。我尝试查看 dmesg,它总是显示“SCSI”,但我确定它不是...
有任何想法吗?
答案1
有趣的问题。 dmesg
如果是 SATA 驱动器,应该有类似这样的内容:
dmesg | grep -i SATA
[ 3.972803] ata3: SATA max UDMA/133 cmd 0xe800 ctl 0xe400 bmdma 0xd800 irq 18
[ 3.972807] ata4: SATA max UDMA/133 cmd 0xe000 ctl 0xdc00 bmdma 0xd808 irq 18
然后我搜索了dmesg
“ata3”的输出并找到了序列号:
dmesg | grep -in ata3
397:[ 3.972803] ata3: SATA max UDMA/133 cmd 0xe800 ctl 0xe400 bmdma 0xd800 irq 18
409:[ 4.183701] ata3.00: ATA-7: ST3160812AS, 3.ADH, max UDMA/133
410:[ 4.183706] ata3.00: 312500000 sectors, multi 16: LBA48 NCQ (depth 0/32)
411:[ 4.267004] ata3.00: configured for UDMA/133
然后可以查找smartctl
或hdparm -i /dev/<your disk(s)>
将串行口与设备进行匹配。
我确信具有 l33t shell 脚本技能的人可以在一行中完成所有这些操作,但这应该非常可靠。如果有任何疑问,我会按照 Madhatter 的建议对照制造商的网站检查序列号。
dmesg | grep -i SATA
我在 VMware 虚拟机(将虚拟驱动器视为 SCSI)和具有 SCSI 磁盘的服务器上运行的 Ubuntu 上运行了相同的操作;两者都没有返回任何内容。
答案2
一种非常可靠的方法是使用 lshw 查找型号,然后在 Google 上查找型号以查看设备类型。如果驱动器位于 USB 外壳中,则此方法无效,因为某些 USB 控制器会向您隐藏 HD 信息。
因此,对于此系统,您可以搜索ST31500341AS.并发现它是一个1.5TB的SATA驱动器。
root@pabil:# lshw -class disk
*-disk:0
description: ATA Disk
product: ST31500341AS
vendor: Seagate
physical id: 0
bus info: scsi@0:0.0.0
logical name: /dev/sda
version: CC1H
serial: 9VS0R1WB
size: 1397GiB (1500GB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=5 signature=000473f5
答案3
如果是 IDE,那么非常可能会显示为 /dev/hda。您可以尝试一下,
smartctl -a /dev/sda
这将产生大量信息,包括制造商和型号;在制造商的网站上交叉引用这些信息通常相当简单。
答案4
查看电缆/连接器或查看 dmesg。
您不能依赖 /dev/hd 来处理 PATA 驱动器。对于现代系统,所有 PATA/SATA 驱动器都将显示为 /dev/sd,因为新的 ATA 层使用 sd 前缀。如果您的操作系统使用旧的已弃用的 ATA 驱动程序,您只会看到 /dev/hd。