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

10

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

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

Макс Рид
источник
Вы не делаете ничего плохого с вами. Это оборудование, которое не работает
Ramhound
Это должно работать вообще?
Макс Райд
Да, это должно работать
Ramhound
@MaxRied, вы говорите, что пробовали это на множестве разных компьютеров с журналами разных дисков и до сих пор не видели завершения, даже для дисков, которые, как вы знаете, исправны из другого инструмента анализа SMART?
Фрэнк Томас
@FrankThomas Да.
Макс Райд

Ответы:

12

Если во время теста накопитель не обрабатывает какие-либо операции ввода-вывода, он может перейти в режим ожидания, что повышает 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 для получения дополнительной информации. Я благодарю Кристиана Франке за понимание, данное здесь.

sve.g
источник
Другие возможные прерывания ( serverfault.com/a/584055 ): неисправный кабель может вызвать тайм-ауты, и ядро ​​вызовет сброс. Я менее уверен, что нужно остановить SmartD. Любые таймауты и прерывания будут отображаться в dmesg / kern.log / journalctl -fk.
Тобу
Вау, это безумие! Подтверждение - после удаления HGST HDN726060ALE610 из зеркала zpool он застрял на 10% в течение 36 часов (он закончится быстрее без других действий, ПРАВИЛЬНО?). Пять минут этих крошечных чтений заставили его закончить. Скептицизм отклонен.
Билл МакГонигл
Является ли /dev/disk1должно быть устройство или раздел, то есть, как /dev/sdaи /dev/sda1?
Мерчако
@Merchako Это Mac, связанный с тем, где на самом деле это так.
Макс Рид
3

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

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

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

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

Ari
источник
1

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

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

Сергей В
источник