SMART-Test никогда не заканчивается

При запуске SMART-тестов с использованием smartmontools они НИКОГДА не заканчивают. Я всегда получаю "Прервано (сброс хоста)" на разных системах и дисках, включая Debian в x86 и ARM, OS X на x64, с внешними и внутренними дисками. Даже при запуске в неактивном режиме с дисками все пусто (обнуляется с помощью dd).

Что я делаю неправильно?

3 ответа

Если во время теста накопитель не обрабатывает какие-либо операции ввода-вывода, он может перейти в режим ожидания, что повышает Interrupted (host reset) состояние. Попробуйте прочитать с диска через подходящие промежутки времени:

while true; do dd if=/dev/disk1 of=/dev/null count=1; sleep 60; done

(заменить /dev/disk1 с соответствующим устройством; читает один сектор с этого устройства каждые 60 секунд, пока вы не нажмете ctrl-c)

Это помогло в моей среде: OS X 10.6.8, USB-накопитель WD Elements, SAT-SMART-драйвер 0.8.

Испытание в неволе теоретически должно поддерживать работу диска. Тем не менее аппаратная команда отправляет smartctl может истечь время ожидания до завершения теста, в результате чего ядро ​​сбросит ссылку и окажется в той же ситуации, что и выше ( ошибка № 303).

См. Эту ветку в списке рассылки поддержки smartmontools для получения дополнительной информации. Я благодарю Кристиана Франке за понимание, данное здесь.

Вариация ответа Ари заключается в использовании watch, поскольку smartctl на самом деле может быть интересно отслеживать статус:

sudo watch -d -n 60 smartctl -a /dev/sdx

Это автоматически обновит вывод smartctl -a каждые 60 секунд, чтобы вы могли видеть, сколько времени осталось до самопроверки, и выделять изменения (чтобы было легче заметить, что тест действительно выполняется).

Я попробовал решение от Tobu, в моем случае я продолжал находить внешний USB-накопитель в спящем режиме независимо от того, какое-то время после запуска теста и его прерывания, кажется, что dd закончил чтение из кэша ядра, и кэш был достаточно большим для диска войти в спящий режим. Я заметил, что вызов smartctl для запроса статуса всегда мог "разбудить" диск. Итак: эта версия той же идеи сделала свое дело для меня:

sudo bash -c 'while true; do smartctl -a /dev/sdb > /dev/null; sleep 60; done'

Через 5 часов внешний USB-диск продолжает вращаться. Впервые я увидел, что на внешнем диске закончился длинный тест Smartctl.

Я считаю, что это решение также имеет то преимущество, что головки дисков не перемещаются без необходимости каждую минуту. Долгая пробежка закончилась почти точно в предсказанное время (скрипт keep-awake не добавил время пробежки)

Пленочный тест может не работать, если он занимает более 20 секунд.

Источник: билет № 303, озаглавленный "В режиме интеллектуального тестирования в неволе продлите время ожидания, как описано устройством ATA".

Другие вопросы по тегам