Я в настоящее время разрабатываю программу, которая выбирает и проверяет информацию в 5 SSD одновременно. Моей проблемой является команда, которую я использую для сканирования дисков (/sbin/rescan-scsi-bus
) занимает слишком много времени и иногда замораживает мою программу или весь компьютер. Таким образом, то, что я ищу, является способом просканировать SSD, даже если я должен изменить некоторые переменные среды или около этого. Я использую тестовую плату для выполнения этого сканирования, и я попробовал другие команды как следующее:
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
И удар управляет для удаления всех дисков кроме того, которому смонтировали ОС.
Я шел с решением своей проблемы.
Даже это - старая команда ядра, это помогло мне разрешить времена ожидания и гарантировать, что все SSD сканируются перед проверкой.
echo 'scsi add-single-device X 0 0 0' > /proc/scsi/scsi
и
echo 'scsi remove-single-device X 0 0 0' > /proc/scsi/scsi
, где X количество хоста, я хочу монтировать/размонтировать, в этом конкретном случае, например, для порта 'ATA1', который хост 0, таким образом, это было бы:
echo 'scsi add-single-device 0 0 0 0' > /proc/scsi/scsi
и
echo 'scsi remove-single-device 0 0 0 0' > /proc/scsi/scsi