Auflistung nicht verwendeter SATA-Ports unter Linux

18

Ich besitze eine physische Maschine, auf der Linux ausgeführt wird (speziell CentOS 6.3), und ich möchte wissen, wie viele SATA-Ports derzeit nicht verwendet werden (dh es ist nichts angeschlossen). Natürlich könnte ich die Maschine einfach aufmachen, aber sagen wir mal, ich habe keinen physischen Zugang. Gibt es einen Befehl, mit dem ich anzeigen kann, welche SATA-Ports nicht verwendet werden?

Ich weiß bereits über den lshwBefehl Bescheid , aber soweit ich das beurteilen kann, werden nur die verwendeten SATA-Ports aufgelistet und keine freien.

Coledot
quelle

Antworten:

5

Gibt es einen Befehl, mit dem ich anzeigen kann, welche SATA-Ports nicht verwendet werden?

Nein, aber Sie können das Gegenteil tun. Sie können auflisten, welche Ports verwendet werden. Schauen Sie dann (im Handbuch) nach, wie viele Ports sich auf der Hauptplatine befinden, subtrahieren Sie die Anzahl der bereits verwendeten Ports und ermitteln Sie die Anzahl der verbleibenden Ports.

Dies setzt voraus, dass Sie ein SATA-Laufwerk pro SATA-Anschluss angeschlossen haben (z. B. keine Port-Multiplikatoren ).


Hierzu gibt es mehrere Möglichkeiten.

Wenn auf allen SATA-Controllern Treiber geladen sind (ziemlich normal), finde ich es fdisk -lam einfachsten, alle Festplatten aufzulisten.

Wenn Sie fdisk nicht mehr haben (es werden meine moderneren Varianten wie gpart ersetzt), können Sie das Boot-Protokoll lesen. Einige googeln zeigen, dass CentOS dies über dmesg zur Verfügung hat , aber Sie können die Protokolldateien auch direkt lesen. Es gibt wahrscheinlich in /var/log/dmesg.log, /var/run/dmesg.boot oder in / var / log / boot. (Dies ist ein bisschen generisch für Leute, die CentOS nicht benutzen).

Dann ist da noch lspci. Hier werden alle PCI- und PCI-e-Geräte einschließlich der SATA-Controller aufgelistet. Hinzufügen -v, um eine besser lesbare Ausgabe zu erhalten.

Oder benutze dmidecode. Dies fragt das BIOS nach Informationen. Wenn die Ausgabe dieses Befehls überwältigend erscheint, begrenzen Sie sie mit der -t NROption.

Hennes
quelle
Eine Kombination aus lspciund den relevanten Motherboard-Spezifikationen lieferte die benötigten Informationen. Vielen Dank.
Coledot
20

Es ist schon drei Jahre her, aber wenn jemand über Google kommt, geht es so: Wenn Sie EPEL aktiviert haben, dann installieren Sie lsscsi , es gibt hauptsächlich Informationen über verbundene Geräte, aber der -H-Parameter ist genau das , was Sie brauchen:

--hosts | -H listet eher SCSI-Hosts als SCSI-Geräte auf

Vergleichen Sie mit anderen Ausgabemodi und Sie haben den Unterschied:

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

UPDATE: Ignorieren Sie dies, ohne etwas zu installieren:

dmesg | grep 'SATA link down'

zeigt Ihnen unbenutzte Ports.

krigl
quelle
Danke, sehr nützlich. Es funktioniert auch unter Ubuntu ( lsscsiist in Standard-Repositories enthalten, mindestens ab 16.04 LTS).
Gerlos