Вывод списка неиспользуемых портов SATA в Linux

18

У меня есть физическая машина под управлением Linux (в частности, CentOS 6.3), и я хочу знать, сколько портов SATA в настоящее время не используется (т.е. ничего не подключено). Конечно, я мог бы просто открыть машину, но допустим, у меня нет физического доступа. Есть ли команда, которую я могу использовать, чтобы показать, какие порты SATA не используются?

Я уже знаю о lshwкоманде, но, насколько я могу судить, в ней перечислены только используемые порты SATA, а не свободные.

coledot
источник

Ответы:

5

Есть ли команда, которую я могу использовать, чтобы показать, какие порты SATA не используются?

Нет, но вы можете сделать наоборот. Вы можете указать, какие порты используются. Затем посмотрите (в руководстве), сколько портов на материнской плате, вычтите, сколько уже используется и получите количество оставшихся портов.

Это предполагает, что к одному разъему SATA подключен один диск SATA (например, нет множителей портов ).


Есть несколько способов это сделать.

Если на всех контроллерах SATA загружены драйверы (довольно нормальные), то я считаю, fdisk -lчто перечислить все диски проще всего.

Если у вас больше нет fdisk (он заменяет мои более современные варианты, такие как gpart), тогда вы можете прочитать журнал загрузки. Некоторые из них показывают, что в CentOS это доступно через dmesg , но вы также можете читать файлы журналов напрямую. Вероятно, они находятся в /var/log/dmesg.log, /var/run/dmesg.boot или в / var / log / boot. (Держать это немного общим для людей, не использующих CentOS).

Тогда есть lspci. В этом списке перечислены все устройства PCI и PCI-e, включая контроллеры SATA. Добавьте, -vчтобы получить более читаемый вывод.

Или используйте dmidecode. Это просит BIOS для информации. Если вывод этой команды кажется подавляющим, ограничьте его -t NRопцией.

Hennes
источник
Комбинация lspciи соответствующие спецификации материнской платы дали мне необходимую информацию. Благодарю.
coledot
21

Прошло три года, но если кто-то приходит через Google, то здесь: Если у вас включен EPEL, то установите lsscsi , он в основном дает информацию о подключенных устройствах, но вам нужен параметр -H:

--hosts | -H перечисляет хосты scsi, а не устройства scsi

Сравните с другим режимом вывода, и вы получите разницу:

root@server1:~# lsscsi -H
[0]    ata_piix  
[1]    ata_piix  
[2]    ata_piix  
[3]    ata_piix  
[4]    usb-storage
root@server1:~# lsscsi -g
[0:0:0:0]    disk    ATA      WDC WD2004FBYZ-0 RR03  /dev/sda   /dev/sg0
[0:0:1:0]    disk    ATA      WDC WD2004FBYZ-0 RR04  /dev/sdb   /dev/sg1
[1:0:0:0]    disk    ATA      WDC WD2004FBYZ-0 RR03  /dev/sdc   /dev/sg2
[4:0:0:0]    disk    Seagate  Backup+  Desk    0342  /dev/sdd   /dev/sg3

ОБНОВЛЕНИЕ: Не обращайте на это внимания, не устанавливая ничего:

dmesg | grep 'SATA link down'

покажет вам неиспользуемые порты.

krigl
источник
Спасибо, очень полезно. Он также работает в Ubuntu ( lsscsiвключен в репозитории по умолчанию, по крайней мере, с 16.04 LTS).
Герлос