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


18

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

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

Ответы:


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опцией.


Комбинация 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'

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


Спасибо, очень полезно. Он также работает в Ubuntu ( lsscsiвключен в репозитории по умолчанию, по крайней мере, с 16.04 LTS).
Герлос
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.