
Temos um computador com várias unidades de inicialização, todas contendo o mesmo software. A seleção do disco de inicialização é feita através da chave multiposição no painel frontal. Se o disco 1 for selecionado, o disco na porta SATA 0 será inicializado. Se o disco 2 for selecionado, o disco na porta SATA 1 será inicializado. Etc.
O gerenciador de disco no RH pode mostrar em qual porta SATA os discos rígidos estão conectados.algo, e essaalgoé o que eu quero.
Como posso obter essas informações na linha de comando? Eu me conecto através de uma conexão ssh e gostaria de descobrir a que o disco de inicialização está conectado. Onde essas informações são mantidas?
Obrigado!
Responder1
Combinando números de porta com dispositivos
Encontrei essa pergunta porque 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 semelhante a esta:
Port 1: /dev/sda
Port 2: /dev/sdb
Port 3: /dev/sdc
Esses números de portaDEVEcorrespondem aos números impressos na placa-mãe, embora isso presuma que o fornecedor da placa-mãe foi atencioso o suficiente para combinar os números impressos na placa com os números das portas no chip controlador SATA. No mínimo, os caminhos dos dispositivos 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á.
Este trecho itera no /dev/disk/by-path
diretório. Ele ignora os arquivos que terminam em -part<number>
porque são apenas partições e extrai o número da porta no -ata<number>
final dos nomes de arquivos restantes. Esses arquivos são links simbólicos para os /dev/sdX
nós tradicionais, que são obtidos usando o readlink -f
.
Se você tiver vários controladores SATA, obterá vários dispositivos listados para os mesmos números de porta, porque cada controlador tem sua própria porta 1, porta 2, ls -l /dev/disk/by-path
etc.
Descobrir qual dispositivo é o 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 /
.
Responder2
O mapeamento adequado da porta SATA é o que "user371366" mencionou.
Embora eu aconselhe fortemente não confiar no número da porta SATA impresso na placa-mãe.
Porque existem problemas ou bugs de hardware/software que os tornam não confiáveis.
Haverá momentos em que a porta SATA nº 1 rotulada na placa-mãe será mostrada como SDB ou SDx (onde x é qualquer letra mostrada no terminal do seu PC ou algo assim) e não SDA.
Isso aconteceu comigo algumas vezes, como usar o software de backup "clonezilla", onde mostra a porta SATA nº 1 como SDB quando deveria ser SDA.
A melhor abordagem é anotar o número de série do disco rígido e usá-lo como referência para saber qual disco rígido está sendo alvo.