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".