Перелік невикористаних портів SATA в Linux


18

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

Я вже знаю про lshwкоманду, але, наскільки я можу сказати, вона містить лише використані порти SATA, а не вільні.

Відповіді:


5

Чи є команда, яку я можу використовувати, щоб показати, які порти SATA не використовуються?

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

Це передбачає, що у вас один підключений привід SATA на один роз'єм SATA (наприклад, немає помножувачів портів ).


Є кілька шляхів до цього.

Якщо у всіх контролерах SATA завантажені драйвери (досить нормально), то я знаходжу fdisk -lдля переліку всіх дисків найпростіший спосіб.

Якщо у вас більше немає fdisk (його замінюють мої більш сучасні варіанти, такі як gpart), ви можете прочитати журнал завантаження. Деякі googling показують, що 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).
gerlos
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.