Listado de puertos SATA no utilizados en Linux

18

Tengo una máquina física que ejecuta Linux (CentOS 6.3, específicamente), y quiero saber cuántos puertos SATA están actualmente sin usar (es decir, no hay nada conectado). Por supuesto, podría abrir la máquina, pero digamos que no tengo acceso físico. ¿Hay algún comando que pueda usar para mostrar qué puertos SATA no se usan?

Ya conozco el lshwcomando, pero por lo que puedo decir, solo enumera los puertos SATA usados ​​y no los libres.

coledot
fuente

Respuestas:

5

¿Hay algún comando que pueda usar para mostrar qué puertos SATA no se usan?

No, pero puedes hacer lo contrario. Puede enumerar qué puertos se están utilizando. Luego busque (en el manual) cuántos puertos hay en la placa base, reste cuántos ya están en uso y obtenga el número de puertos restantes.

Esto supone que tiene una unidad SATA conectada por conector SATA (por ejemplo, sin multiplicadores de puerto ).


Hay varias formas de hacerlo.

Si todos los controladores SATA tienen controladores cargados (bastante normal), entonces encuentro la fdisk -llista de todos los discos de la manera más fácil.

Si ya no tiene fdisk (está siendo reemplazado por mis variantes más modernas, como gpart), puede leer el registro de arranque. Algunos google muestran que CentOS tiene esto disponible a través de dmesg , pero también puede leer los archivos de registro directamente. Probablemente hay en /var/log/dmesg.log, /var/run/dmesg.boot o en / var / log / boot. (Manteniendo esto un poco genérico para las personas que no usan CentOS).

Entonces hay lspci. Esto enumera todos los dispositivos PCI y PCI-e, incluidos los controladores SATA. Agregar -vpara obtener una salida más fácil de leer.

O utilice dmidecode. Esto le pide información al BIOS. Si el resultado de este comando parece abrumador, limítelo con la -t NRopción.

Hennes
fuente
Una combinación de lspciy las especificaciones relevantes de la placa base me dieron la información que necesitaba. Gracias.
coledot
21

Han pasado tres años, pero si alguien llega a través de Google, aquí va: si tiene EPEL habilitado, instale lsscsi , en su mayoría proporciona información sobre los dispositivos conectados, pero su parámetro -H es lo que necesita:

--hosts | -H enumera hosts scsi en lugar de dispositivos scsi

Compare con otro modo de salida y tendrá la diferencia:

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

ACTUALIZACIÓN: ignore eso, sin instalar nada:

dmesg | grep 'SATA link down'

le mostrará los puertos no utilizados.

krigl
fuente
Gracias muy útil Funciona también en Ubuntu ( lsscsiestá incluido en los repositorios predeterminados, al menos desde 16.04 LTS).
gerlos