Espero que alguém possa responder à minha pergunta porque estou com dificuldades agora.
Eu já tenho um programa em Python que valida as informações de firmware SSDs vs uma informação de banco de dados. Então, se tudo estiver ok, o programa insere informações em outro banco de dados onde estão todos os SSDs validados.
No entanto, esse não é o problema aqui.
O método que usei para fazer com que o programa funcione visualmente é obter strings de comandos para fazer com que as imagens correspondam à localização física da unidade, para que o operador possa saber qual unidade é boa ou ruim.
Diga, o comando:
readlink /sys/block/sd?
está me dando esta saída:
../devices/pci0000:00/0000:00:1f.2/ata6/host5/target5:0:0/5:0:0:0/block/sda
Da saída, tomo como referência a posição da porta ATA. Nesse caso, seria: ata6
Esse método é codificado de modo que, se a configuração do cabo for confundida, ele não exibirá as imagens corretamente.
Agora, eu tenho para meus propósitos um SSD Test Board, que é um 8 PCB com capacidade de porta SATA que alimenta as unidades de modo que elas possam ser lidas por um computador.
Inicialmente, e mesmo agora a configuração é limitada a 5 unidades por validação, a 6ª porta é reservada para o SSD do SO.
O que tenho que fazer agora é fazer com que o painel mencionado trabalhe com 8 pontes USB-SATA para que possam ser usadas em todos os PCs, mas o comando anterior não está me ajudando como antes.
Eu o corro e ele me dá a seguinte saída:
../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3.1/2-1.3.1:1.0/host94/target94:0:0/94:0:0:0/block/sdb
../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3.3/2-1.3.3:1.0/host100/target100:0:0/100:0:0:0/block/sdc
Eu não posso pegar usb2
como referência porque é o mesmo para todos e o host (m) onde m é um número, aumenta toda vez que um SSD é conectado ou desconectado.
O que eu gostaria de perguntar é:
EDITAR: Para referência, quando conecto as Pontes SATA-USB pela primeira vez, elas são iniciadas como montadas (mesmo que não haja SSDs conectadas), portanto o comando anterior me fornece a seguinte saída:
../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3.1/2-1.3.1:1.0/host103/target103:0:0/103:0:0:0/block/sdb
../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3.2/2-1.3.2:1.0/host104/target104:0:0/104:0:0:0/block/sdc
../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3.3/2-1.3.3:1.0/host105/target105:0:0/105:0:0:0/block/sdd
../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3.4/2-1.3.4:1.0/host106/target106:0:0/106:0:0:0/block/sde
../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4.1/2-1.4.1:1.0/host107/target107:0:0/107:0:0:0/block/sdf
../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4.2/2-1.4.2:1.0/host108/target108:0:0/108:0:0:0/block/sdg
../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4.3/2-1.4.3:1.0/host109/target109:0:0/109:0:0:0/block/sdh
../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4.4/2-1.4.4:1.0/host110/target110:0:0/110:0:0:0/block/sdi
Eles realmente parecem que estão ordenados, mas se eu desconectar e conectá-los novamente, às vezes, eles receberão o pedido errado.