Listando portas SATA não utilizadas no Linux

18

Eu tenho uma máquina física executando o Linux (CentOS 6.3, especificamente) e quero saber quantas portas SATA estão atualmente sem uso (ou seja, nada está conectado). Claro, eu poderia simplesmente abrir a máquina, mas digamos que não tenho acesso físico. Existe um comando que eu possa usar para mostrar quais portas SATA não são usadas?

Eu já sei sobre o lshwcomando, mas, tanto quanto posso dizer, ele lista apenas as portas SATA usadas e não as livres.

coledot
fonte

Respostas:

5

Existe um comando que eu possa usar para mostrar quais portas SATA não são usadas?

Não, mas você pode fazer o contrário. Você pode listar quais portas estão sendo usadas. Em seguida, procure (no manual) quantas portas existem na placa-mãe, subtraia quantas já estão em uso e obtenha o número de portas restantes.

Isso pressupõe que você tenha uma unidade SATA conectada por conector SATA (por exemplo, sem multiplicadores de porta ).


Existem várias maneiras de fazer isso.

Se todos os controladores SATA tiverem drivers carregados (bastante normal), acho fdisk -lque listar todos os discos da maneira mais fácil.

Se você não tiver mais o fdisk (ele está sendo substituído pelas minhas variantes mais modernas, como o gpart), poderá ler o log de inicialização. Alguns pesquisadores mostram que o CentOS tem isso disponível via dmesg , mas você também pode ler os arquivos de log diretamente. Provavelmente existem /var/log/dmesg.log, /var/run/dmesg.boot ou em / var / log / boot. (Mantendo isso um pouco genérico para pessoas que não usam o CentOS).

Então existe lspci. Isso lista todos os dispositivos PCI e PCI-e, incluindo controladores SATA. Adicione -vpara obter uma saída legível mais fácil.

Ou use dmidecode. Isso solicita informações ao BIOS. Se a saída deste comando parecer esmagadora, limite-a com a -t NRopção

Hennes
fonte
Uma combinação lspcie as especificações relevantes da placa-mãe forneceram as informações que eu precisava. Obrigado.
coledot
21

Já faz três anos, mas se alguém vem pelo Google, aqui vai: Se você tiver o EPEL ativado, instale o lsscsi , ele fornecerá informações sobre os dispositivos conectados, mas seu parâmetro -H é o que você precisa:

-hosts | -H lista hosts scsi em vez de dispositivos scsi

Compare com outro modo de saída e você tem a diferença:

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

ATUALIZAÇÃO: desconsidere isso, sem instalar nada:

dmesg | grep 'SATA link down'

mostrará portas não utilizadas.

Krigl
fonte
Obrigado, muito útil. Também funciona no Ubuntu ( lsscsiestá incluído nos repositórios padrão, pelo menos a partir de 16.04 LTS).
gerlos 22/07/19