确定磁盘是 IDE 还是 SATA

确定磁盘是 IDE 还是 SATA

我需要确定磁盘是 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

然后可以查找smartctlhdparm -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。

相关内容