Как я могу определить, является ли мой жесткий диск PATA или SATA?

8

У меня на ноутбуке жесткий диск ATA, на котором установлена ​​Fedora 11, ядро ​​2.6.30.10-105.2.23.fc11.i586. Я хочу обновить диск здесь (хотелось бы получить SSD), но я забыл, если это последовательный ATA или старый параллельный интерфейс ATA. Там не так много пользы от обновления до SSD, если это PATA ...

Как узнать, подключен ли диск через интерфейс PATA или SATA?

мистифицировать
источник

Ответы:

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!
Джош
@ Жиль - Поиск этой информации в 2018 году, выше не работает (по крайней мере, в моей системе Arch Linux). Пути не существуют (нет vendorфайлов и т. Д.).
звездный день
@starfry На каком автобусе? Я думаю, что мой ответ работает для любого неантичного ядра Linux, но он не будет работать для устройства, которое не подключено к контроллеру ATA, который находится на шине PCI. Например, я не уверен, что он будет работать для SSD, в зависимости от типа контроллера.
Жиль "ТАК - перестань быть злым"
ядро 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. Все обычные вращающиеся жесткие диски на стандартных портах SATA на материнской плате i7 2009 года.
звездный день
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. Современные ядра имеют тенденцию к тому, чтобы каждый драйвер говорил на одном уровне с общим уровнем диска, и это то, что вы видите здесь.
Жиль "ТАК - перестань быть злым"
Да, извини Стефан, диск указан в списке /proc/scsi/scsi, на самом деле моя система даже не имеет /proc/ide... но, согласно ответу Жиля, похоже, что диск на самом деле IDE.
Джош
0

Вы можете спросить Udev:

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

Если эта команда выводит ID_ATA_SATA=1, ваш диск является (родным) диском SATA. Если это не так, но он выводит ID_BUS=ata, ваш диск является диском PATA. Если это не выводит ни один, Ваш двигатель - кое-что еще.

user3840170
источник