Existe uma maneira mais rápida de varrer portas SCSI diferentes de 'sbin / rescan-scsi-bus'?

1

Atualmente, estou desenvolvendo um programa que busca e valida as informações dentro de 5 SSDs ao mesmo tempo. Meu problema é o comando que estou usando para digitalizar as unidades ( /sbin/rescan-scsi-bus ) leva muito tempo e às vezes congela meu programa ou o computador inteiro. Então, o que estou procurando é uma maneira de verificar os SSDs mesmo que eu precise alterar algumas variáveis de ambiente. Eu estou usando uma placa de teste para realizar esta varredura e eu tentei outros comandos como o seguinte:

echo 1 > /sys/block/sdX **with** echo "- - -" | tee /sys/class/scsi_host/host?/scan
/sbin/rescan-scsi-bus --luns=0 --ids=0 --channels=0
/sbin/rescan-scsi-bus       # with other parameters

E um comando bash para excluir todos os discos, exceto aquele que possui o sistema operacional montado.

    
por xedge 27.06.2017 / 16:50

1 resposta

0

Eu vim com uma solução para o meu problema.

Mesmo é um comando antigo do kernel que me ajudou a resolver os tempos de espera e garantir que todos os SSDs sejam verificados antes da validação.

echo 'scsi add-single-device X 0 0 0' > /proc/scsi/scsi

e

echo 'scsi remove-single-device X 0 0 0' > /proc/scsi/scsi

onde X é o número do host que eu quero montar / desmontar, neste caso específico, por exemplo, o host da porta 'ATA1' é 0, então seria:

echo 'scsi add-single-device 0 0 0 0' > /proc/scsi/scsi

e

echo 'scsi remove-single-device 0 0 0 0' > /proc/scsi/scsi
    
por xedge 11.07.2017 / 20:12