Como posso obter a localização específica de SSDs conectados por uma ponte USB-SATA?

1

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 é:

  1. Como posso desmontar e montar as pontes USB-SATA para que eles possam redefinir o número do host para 0 ou 1?
  2. Existe uma maneira melhor de obter dinamicamente a correspondência da posição física com a posição virtual, digamos, sd (n) corresponde ao host (m)?
  3. Quais comandos tenho que executar no terminal para obter uma abordagem mais precisa de uma correspondência físico-lógica?

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.

    
por xedge 25.07.2017 / 17:48

0 respostas