A qual porta SATA meu disco está conectado?

1

Temos um computador com várias unidades de inicialização, todas com o mesmo software. A seleção do disco de inicialização é feita através do interruptor de várias posições no painel frontal. Se o disco 1 estiver selecionado, o disco na porta SATA 0 será inicializado. Se o disco 2 estiver selecionado, o disco na porta SATA 1 será inicializado. Etc.

O gerenciador de discos em RH pode mostrar em qual porta SATA os discos rígidos estão conectados. É uma interface gráfica em cima de algo , e isso algo é o que eu quero .

Como posso obter essa informação na linha de comando? Eu conecto através de uma conexão ssh e gostaria de descobrir a que disco de inicialização está conectado. Onde esta informação é mantida?

Obrigado!

    
por Paxton Sanders 13.07.2015 / 19:47

1 resposta

0

Corresponder números de porta a dispositivos

Eu encontrei esta pergunta porque eu estava tentando descobrir a mesma coisa. Aqui está o que eu descobri; deve funcionar em bash ou zsh:

for i in /dev/disk/by-path/*;do [[ ! "$i" =~ '-part[0-9]+$' ]] && echo "Port $(basename "$i"|grep -Po '(?<=ata-)[0-9]+'): $(readlink -f "$i")";done

A saída deve ser algo como isto:

Port 1: /dev/sda
Port 2: /dev/sdb
Port 3: /dev/sdc

Esses números de porta DEVEM correspondem aos números impressos na placa-mãe, embora isso pressuponha que o fornecedor da placa-mãe tenha considerado suficiente para corresponder aos números impressos na placa com os números de porta no chip controlador SATA. No mínimo, os caminhos do dispositivo permanecem estáveis, portanto, depois de estabelecer um mapeamento entre os números de porta listados e os números no painel, isso nunca mudará.

Esse snippet itera sobre o diretório /dev/disk/by-path . Ele ignora os arquivos que terminam em -part<number> , pois são apenas partições e extrai o número da porta do -ata<number> no final dos nomes de arquivos restantes. Esses arquivos são links simbólicos para os tradicionais /dev/sdX nós, o que é obtido usando readlink -f .

Se você tiver vários controladores SATA, você terá vários dispositivos listados para os mesmos números de porta, porque cada controlador tem sua própria porta 1, porta 2 etc. Então, basta executar ls -l /dev/disk/by-path e analisá-lo manualmente.

Descobrir qual dispositivo é seu dispositivo de inicialização

Para descobrir qual é o seu dispositivo de inicialização, execute mount | grep ' on / ' | cut -f 1 -d ' ' . Isso mostra o dispositivo montado em / .

    
por 18.05.2017 / 06:10