Академический Документы
Профессиональный Документы
Культура Документы
Доступные методы диагностики жёстких дисков
Доступные методы диагностики жёстких дисков
1. Внешний осмотр
2. «Тестер в зубы»
3. «На постамент!»
4. Программная диагностика
a) Инициализация
Если старт винчестера прошел чисто, без посторонних звуков и возгораний, то только
теперь мы можем приступить к программной диагностике, т. е. вполне безбоязненно
подключить винчестер к нашему диагностическому компьютеру. Разумеется, ни о
каких тестах под «дружественным» Windows XP, монтирующим всё, что движется, и
пишущим в фоне на всё, что пишется, не может быть и речи. Тестирование будем
вести под DOS. Рекомендую использовать свободно распространяемый под лицензией
GNU FreeDOS. Из диагностического ПО нам понадобится ставшая де-факто эталоном
первичной диагностики MHDD, а также Vivard для проверки записи.
Тестируемый винчестер, подключенный к отдельному блоку питания, подсоединяем к
тестовому компьютеру. Компьютер и блок питания винчестера должны, как минимум,
быть подключены в один и тот же, желательно заземленный, фильтр-удлинитель.
Первым включаем винчестер, вторым компьютер. Наблюдаем прохождение POST. Если
винчестер корректно определятся - хорошо. Бывает, определяется так называемыми
«псевдонимами» или «технологическими именами», что характерно для Maxtor
(Athena, ARES64K, N40P), WD (Mammoth, Sabre, Starling). Причины в поврежденной
микропрограмме на дисках либо в нечитающих головах. Если же винт висит и
завешивает машину, то выключаем его (вот для чего нужен отдельный блок питания)
и продолжаем загрузку, или перезагружаемся, если все зависло наглухо.
Следует обратить внимание на то, что по умолчанию DOS пытается читать имеющийся МБР и
монтировать разделы с FAT. Причем при проблемах, связанных с логикой, в том числе из-за имеющихся
дефектов на винчестере, возможны довольно длительные зависания ОС на старте. Поэтому, в
некоторых случаях, даже корректно определяющийся BIOS'ом винчестер есть смысл прогрузить в DOS
выключенным.
Даём загрузиться операционке, запускаем MHDD (рекомендуется заранее настроить её
на исследуемый порт, а не топтать Shift+F3 на ходу), включаем винчестер и
наблюдаем за регистрами состояния и ошибок. Долговременный BUSY без раскрутки
двигателя говорит о проблемах на плате контроллера. Если двигатель раскрутился, но
BUSY не сбрасывается, то есть смысл подозревать головы в проблемном чтении, либо
же предположить разрушение микропрограммы на диске. Автоматизировать процесс
наблюдения сброса BUSY можно командой wait. Если нормально выходит на
готовность и подымает DRSC и DRDY, то тут же софт-ресетим его через F3. Seagate с
глючными головами любят в этом месте подвиснуть. Если ресетится чисто, тут же
получаем паспорт по F2. Обращаем внимание на наличие установленных HPA и
пароля.
b) SMART
Если паспорт отдал, пытаемся получить SMART по F8. Внимание: SMART должен быть
включен в BIOS материнской платы, иначе, в некоторых случаях, возможна ошибка
получения атрибутов. Чтобы обойти это без перезагрузки, перед F8 введем smart on.
Проблемные WD и Samsung зачастую портят себе часть микропрограммы, отвечающей
за SMART, и по F8 могут выдавать ошибку. По получении атрибутов читаем их и
пытаемся интерпретировать.
Пример SMART нового винчестера:
HDD: SAMSUNG HD161HJ; FW: GF10007; SN: S0V3JDWQ549412
Name Val Worst Raw
Att # 1 : Read error rate : 252 252 0
Att # 3 : Spin up time : 252 252 0
Att # 4 : Number of spinup times : 252 252 0
Att # 5 : Reallocated sectors count : 252 252 0
Att # 7 : Seek error rate : 252 252 0
Att # 8 : Seek time performance : 252 252 0
Att # 9 : Poweron time : 99 99 1
Att # 10 : Spinup retries : 252 252 0
Att # 11 : Calibration retries : 252 252 0
Att # 12 : Start/stop count : 252 252 0
Att # 184 : Unknown : 252 252 0
Att # 187 : Unknown : 252 252 0
Att # 188 : Unknown : 252 252 0
Att # 190 : Unknown : 193 193 20
Att # 194 : HDA Temperature : 193 193 20
Att # 195 : Hardware ECC recovered : 252 252 0
Att # 196 : Reallocate event count : 252 252 0
Att # 197 : Current pending sectors : 252 252 0
Att # 198 : Offline scan UNC sectors : 252 252 0
Att # 199 : Ultra ATA CRC Error Rate : 200 200 0
Att # 200 : Write error rate : 252 252 0
Att # 201 : Unknown : 252 252 0
Нельзя однозначно выделить «важные» или «неважные» для диагностики атрибуты.
Все они имеют свою информационную ценность. Но в первую очередь обратим
внимание на:
1 - Read error rate, сигнализирующий об ошибках чтения;
3 - Spin up time, говорящий о проблемах либо с питанием, либо с управлением
двигателя, либо с самим двигателем;
5 - Reallocated sectors count, отмечающий уже сремапленные сектора;
7 - Seek error rate говорит о проблемах с позиционированием, что в свою очередь
может быть вызвано как проблемами питания, так и деградирующей поверхностью
или головками;
194 - HDA Temperature - полезная штука, позволяющая узнать не только текущую
температуру, но и прикинуть, насколько был перегрет винчестер в работе;
197 - Current pending sectors показывает количество кандидатов в очереди на ремап;
198 - Offline scan UNC sectors - количество бэдов, найденных в оффлайновом смарт-
тесте;
200 - Write error rate фиксирует ошибки записи, что также может говорить о
дефектных поверхностях, деградирующих головах.
Несмотря на огромное количество программ смарт-мониторинга, наблюдается
нездоровая тенденция к прогрессирующему непониманию пользователем, зачем этот
SMART нужен :) . Как следствие, неумение пользоваться столь полезной функцией и
интерпретировать результаты смарт-диагностики. На вышеуказанном примере мы
видим, что у теоретически исправного винчестера текущие (value) значения и
наихудшие (worst) должны быть максимально близки, а сырое (raw) значение быть
как можно ближе к нулю, за некоторыми исключениями (HDA Temperature, Power-on
time, Number of spin-up times).
При изучении винчестера с периодически возникающими проблемами, либо вообще с
непонятной историей болезни, крайне важное значение имеет изучение наихудших
(worst) параметров, сигнализирующих о том, насколько винчестеру было плохо в
какой-то промежуток времени. Вот интересный пример Samsung'а, с периодически
вылетающей по прогреву на записи 2-й головой. Обнаружить этот плавающий глюк
помог нам анализ худших параметров.
HDD: SAMSUNG HD401LJ; FW: ZZ10015; SN: S0HVJ1WL901029
Name Val Worst Raw
Att # 1 : Read error rate : 253 93 0
Att # 3 : Spin up time : 100 100 8064
Att # 4 : Number of spinup times : 100 100 32
Att # 5 : Reallocated sectors count : 253 253 0
Att # 7 : Seek error rate : 253 253 0
Att # 8 : Seek time performance : 253 253 0
Att # 9 : Poweron time : 253 253 4
Att # 10 : Spinup retries : 253 253 0
Att # 11 : Calibration retries : 253 253 0
Att # 12 : Start/stop count : 100 100 31
Att # 190 : Unknown : 63 62 37
Att # 194 : HDA Temperature : 127 124 37
Att # 195 : Hardware ECC recovered : 253 100 159
Att # 196 : Reallocate event count : 253 253 0
Att # 197 : Current pending sectors : 253 90 0
Att # 198 : Offline scan UNC sectors : 253 253 0
Att # 199 : Ultra ATA CRC Error Rate : 200 200 0
Att # 200 : Write error rate : 253 90 0
Att # 201 : Unknown : 253 100 0
Att # 202 : Unknown : 253 253 0
Интересны худшие значения Read error rate, Current pending sectors и Write error rate.
По прогреву пишущая головка начинает глючить (Write error rate) и садить софт-бэды,
которые и отобразились в Write error rate и Current pending sectors. После довольно
продолжительного бездействия головка на время восстанавливает работоспособность
и прекрасно убирает дефекты записью, но с нагревом всё начинается снова.
Или пример разгерметизированного WD. Целостность уплотнителя была
восстановлена, но нормальной работы под нагрузкой, разумеется, достичь не удалось.
HDD: WDC WD4000AAKS00YGA0; FW: 12.01C02; SN: WDWCAS86084683
Name Val Worst Raw
Att # 1 : Read error rate : 193 1 789
Att # 3 : Spin up time : 214 179 4291
Att # 4 : Number of spinup times : 100 100 29
Att # 5 : Reallocated sectors count : 200 195 0
Att # 7 : Seek error rate : 199 197 52
Att # 9 : Poweron time : 100 100 26
Att # 10 : Spinup retries : 100 253 0
Att # 11 : Calibration retries : 100 253 0
Att # 12 : Start/stop count : 100 100 23
Att # 192 : Poweroff retract count : 199 199 809
Att # 193 : Load/unload cycle count : 200 200 818
Att # 194 : HDA Temperature : 128 101 22
Att # 196 : Reallocate event count : 200 190 0
Att # 197 : Current pending sectors : 200 198 0
Att # 198 : Offline scan UNC sectors : 200 200 0
Att # 199 : Ultra ATA CRC Error Rate : 200 200 0
Att # 200 : Write error rate : 200 200 0
Worst Read error rate говорит нам, что винт одно время пребывал просто в ауте, когда
его дырявого пытались мучить. Плюс к тому, подваленный worst Spin up time говорит
об эксплуатации на плохом блоке питания. Worst Reallocated sectors count поведал
нам о том, что бэды от разгерметизации наличествовали, но ушли после записи. Seek
error rate показал проблемы с позиционированием - грязные головы либо плохо видят
сервометки, либо некоторые сервометки повреждены. Worst Current pending sectors
зафиксировал бывшие в очереди дефекты, которые убрались записью. В целом,
текущее значение Read error rate означает, что чтение не нормализовалось (что
неудивительно на такой плотности) и винт не жилец.
На закуску однозначный пример полудохлого Quantum AS, совершенно непригодного
к эксплуатации.
HDD: QUANTUM FIREBALLP AS20.5; FW: A1Y.4500; SN: 792125276721
Name Val Worst Raw
Att # 1 : Read error rate : 100 253 0
Att # 3 : Spin up time : 79 79 2663
Att # 4 : Number of spinup times : 97 97 2573
Att # 5 : Reallocated sectors count : 14 14 431
Att # 7 : Seek error rate : 100 100 0
Att # 9 : Poweron time : 86 86 9363
Att # 10 : Spinup retries : 100 100 0
Att # 11 : Calibration retries : 100 100 0
Att # 12 : Start/stop count : 97 97 2559
Att # 13 : Soft read error rate : 100 70 0
Att # 195 : Hardware ECC recovered : 4 1 12822750
Att # 196 : Reallocate event count : 100 253 0
Att # 197 : Current pending sectors : 82 81 94
Att # 198 : Offline scan UNC sectors : 100 253 0
Att # 199 : Ultra ATA CRC Error Rate : 200 200 0
431 сремапленный сектор (Reallocated sectors count), 94 в очереди (Current pending
sectors). А проблема в практически нечитающих головах. Мусор, который поступает с
них, контроллер пока еще в состоянии исправить, но возможности его уже исчерпаны
(Hardware ECC recovered) - винчестер находится в коматозном состоянии.
c) Верификация
| Exit : <ALT+X> |
15:30:51
В регистре ошибок наблюдаем поднятый IDNF.
Типичная картина для ударенного WD с полуживой 0-й (нижней) головой. Участки
зависаний и UNC чередуются с обширными участками нормального чтения живыми
головками. В регистре ошибок периодически наблюдаем UNCR.
50 ERR INDX CORR DREQ DRSC WRFT DRDY BUSY AMNF T0NF ABRT IDNF UNCR
BBK 00
[WDC WD2000JD00HBB0 ] [ 390,721,968] [ 218,535] [ EST:
58:50:45 ]
ACT [ 1106
kb/s]
╟ <3ms :
569
Scan... ╠ <10ms :
32
╠ш╟╡╡ш╟╟╡ш╟╟╟ш╟╟╟╡╟╟╟ш╟╟╟ш╡╟╟ш╡╟шш╠ш╟╟╟ш╟╟╟╡╟╟╟ш╟╟╟ш╡╟╟ш╡╟ш ╡
<50ms : 179
ш╡╟ш╟╟╡ш╟╟╡x╠╟╡ш╟╟╟ш╟╟╟x╡╟╟ш╟╟╟x╠╟╟x╡╟шx╡╟шx╠╡ш╠╟╡x╡╟╡ш╟╟╟x ш <150ms:
3
╡╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟ ш <500ms:
23
╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╠╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟ ш >500ms:
6
╟╟╡╟╟╟╠╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╠╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡ ?
TIME :
╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟ x UNC :
45
╟╡╟╟╟╡╟╟╟╠╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟ !
ABRT :
╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╠╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟ S
IDNF :
╡╟╟╟╡╟╟╟╡╟╟╟╟╠╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╠╟╟╟╟╡╟╟╟╡╟╟ A
AMNF :
╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡ 0
T0NF :
╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╠╟╟xш╟╟xx╡╟xш╡╟x╠╡╟x╠╟╡ш╟╟╡x╡╟шx╠╟╟╡╟╟╟x╠╟x * BBK
:
x╡╟xx╡╟xш╡╟x╠╡╟x╡╟╡x╠╟╡x╠╟xx╠╟╟╡╟╟╟x╠╟xш╟╟x╡╡╟xx╡╟x╠╡╟x╠╟╡ш [ 0.0% ] [
0.0% ]
╟╟╡x╠╟xx╠╟╟╡╟╟╟x╠╟xx╠╟x╡╡╟x╡╡╟x╠╡╟x╠╟╠╡╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡ Error:
185363
╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟ Error:
185465
╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟╡╟╟╟╟╡╟╟╟╡╟╟╟ Error:
186346
Error:
187328
Last scanned LBA: 218789 Error:
188309
| Select a drive : <SHIFT+F3> |
16:37:37
Проблемы с чтением наглядно подтверждает и SMART. Что интересно конкретно в этом
экземпляре, что удар получен сверху по крышке, а издохла нижняя голова. Такие вот
чудеса.
HDD: WDC WD2000JD00HBB0; FW: 08.02D08; SN: WDWCAL82186788
Name Val Worst Raw
Att # 1 : Read error rate : 1 1 3743
Att # 3 : Spin up time : 146 146 5200
Att # 4 : Number of spinup times : 100 100 17
Att # 5 : Reallocated sectors count : 123 123 1230
Att # 7 : Seek error rate : 200 200 0
Att # 9 : Poweron time : 100 100 16
Att # 10 : Spinup retries : 100 253 0
Att # 11 : Calibration retries : 100 253 0
Att # 12 : Start/stop count : 100 100 14
Att # 194 : HDA Temperature : 116 93 34
Att # 196 : Reallocate event count : 1 1 348
Att # 197 : Current pending sectors : 200 174 0
Att # 198 : Offline scan UNC sectors : 100 253 0
Att # 199 : Ultra ATA CRC Error Rate : 200 253 0
Att # 200 : Write error rate : 100 253 0
Для наглядности результат верификации абсолютно исправного винчестера:
50 ERR INDX CORR DREQ DRSC WRFT DRDY BUSY AMNF T0NF ABRT IDNF UNCR
BBK 00
[Hitachi HDP725050GLA36] [ 976,773,168] [ 2,983,500] [ EST:
1:53:08 ]
╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟ ACT [ 86038
kb/s]
╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟ ╟ <3ms :
11696
╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟ ╠ <10ms :
4
╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟ ╡
<50ms :
╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟ ш
<150ms:
╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟ ш
<500ms:
╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟ ш
>500ms:
╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟ ?
TIME :
╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟ x UNC
:
╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟ !
ABRT :
╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟ S
IDNF :
╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟ A
AMNF :
╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟ 0
T0NF :
╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟ * BBK
:
╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟ [ 0.3% ] [
0.3% ]
╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟
╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟
╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟
Last scanned LBA:
2983754
| MHDD 4.6 (c) Dmitry Postrigan | FREEWARE |
17:05:46
f) Linux
У нас всё точно - вон винт на полке лежит. В данном конкретном случае ничего очища
кроме гермокамеры , не пришлось - бэды в кандидатах значились и на записи ушл