如何确定我的硬盘驱动器是PATA还是SATA?


8

我的笔记本电脑中有一个ATA硬盘,运行Fedora 11,内核2.6.30.10-105.2.23.fc11.i586。我想在这里升级磁盘(很想得到SSD),但是我忘了它是串行ATA还是旧的并行ATA接口。如果是PATA,升级到SSD的用处不大。

如何确定磁盘是通过PATA还是SATA接口连接的?

Answers:


7

要查看控制器的设备说明(假设是内部(PCI)控制器),该设备说明通常包含SATA控制器的SATA,请执行以下操作:

lspci -d $(cat /sys/block/sda/device/../../../vendor):$(cat /sys/block/sda/device/../../../device)

如果您想减少键入的内容,仅浏览lspci便携式计算机的输出很可能会在笔记本电脑中为您提供答案(许多台式机都有这两种界面,因此您必须查找感兴趣的驱动器)。

如果仍然不能解决问题,请查看所提供的驱动程序sda(然后可以查看该驱动程序是用于PATA还是SATA控制器):

readlink -f /sys/block/sda/device/../../../driver

很好,谢谢!第一个命令使我感到困惑,但第二个命令却产生了/sys/bus/pci/drivers/pata_amd
乔什

@Gilles-在2018年寻找此信息,以上方法不起作用(至少在我的Arch Linux系统上)。路径不存在(没有vendor文件等)。
starfry

@starfry它在坐什么公共汽车?我认为我的答案适用于任何非古色古香的Linux内核,但不适用于未连接至PCI总线上的ATA控制器的设备。例如,我不确定它是否适用于SSD,具体取决于控制器的类型。
吉尔斯(Gillles)“所以-别再邪恶了”

内核4.15.3-2-ARCH,设备示例pci-0000:00:1f.2-ata-1 。做ls /sys/block/sdc/device/../../../产量ata_port firmware_node host2 link3 power uevent。2009 i7主板上标准SATA端口上的所有常规旋转硬盘驱动器。
starfry18年

1

更新:根据记录,@ Gilles的答案更好。

如果它是PATA(IDE)驱动器,那么您将在下看到它/proc/ide。这是我的IDE DVD驱动器,例如,这是我的输出:

$ cat /proc/ide/hdb/model 
Optiarc CDRWDVD CRX890A

如果是SATA驱动器,它将显示在下/proc/scsi。您可能会惊讶于在“ scsi”下找到它。我忘记了确切的原因(我将在另一个问题中问这个问题),但是我认为这是因为SATA使用SCSI驱动程序。

这是显示我的系统上的SATA驱动器的列表:

$ cat /proc/scsi/scsi 
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: WDC WD2500AAJS-6 Rev: 01.0
  Type:   Direct-Access                    ANSI  SCSI revision: 05

3
这并不总是可靠的:根据驱动程序,内核版本和内核编译选项,某些SATA驱动程序可以显示为ide,某些PATA驱动程序可以显示为scsi。现代内核倾向于使每个驱动程序都对通用磁盘层说scsi,这就是您在此处看到的。
吉尔斯(Gilles)“所以,别再邪恶了”,2010年

是的,对不起Stefan,该驱动器列在下/proc/scsi/scsi,实际上我的系统甚至没有/proc/ide...但是根据Gilles的回答,看起来该驱动器实际上是IDE。
乔什(Josh)2010年

0

您可以问udev:

$ udevadm info -q property /dev/sda | grep -Ee '^ID_(BUS|ATA_SATA)='

如果输出此命令ID_ATA_SATA=1,则您的驱动器是(本地)SATA驱动器。如果不是,但输出ID_BUS=ata,则您的驱动器是PATA驱动器。如果两者都不输出,则说明您的驱动器是其他驱动器。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.