Существует ли более быстрый способ сканирования портов SCSI, отличный от "sbin/rescan-scsi-bus"?

В настоящее время я разрабатываю программу, которая извлекает и проверяет информацию одновременно на 5 SSD. Моя проблема - команда, которую я использую для сканирования дисков (/sbin/rescan-scsi-bus) занимает слишком много времени и иногда замораживает мою программу или весь компьютер. Так что я ищу способ сканирования твердотельных накопителей, даже если мне нужно изменить некоторые переменные среды или около того. Я использую тестовую доску для выполнения этого сканирования, и я пробовал другие команды, такие как следующие:

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

И команда bash для удаления всех дисков, кроме того, на котором установлена ​​ОС.

1 ответ

Решение

Я пришел с решением моей проблемы.

Даже это старая команда ядра, она помогла мне определить время ожидания и убедиться, что все 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
Другие вопросы по тегам