Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Восстановление информации.doc
Скачиваний:
131
Добавлен:
10.12.2013
Размер:
893.95 Кб
Скачать

Проблемы с оборудованием

Ремонт жестких дисков требует специального оборудования и практически невозможен в домашних условиях. Так, например, только для вскрытия герметичного контейнера, необходима особо чистая от пыли комната. Казалось бы, положение безнадежно и нечего и помышлять восстановить поломанный диск в домашних условиях. Но к счастью не все поломки настолько серьезны, и во многих случаях можно обойтись для ремонта подручными (а иногда чисто программными средствами).

Термокалибровка

Одним из самых частых отказов винчестеров фирмы Western Digital (а так же и некоторых других) выглядит следующим образом - жесткий диск не опознается BIOS, а головки при этом отчетливо стучат. Скорее всего, по какой-то причине не работает блок термокалибровки, и устройство не может обеспечить нужный зазор между головкой и рабочей поверхностью "блина". Обычно это происходит при отклонении от температурного режима эксплуатации, например в зимнее время, когда жесткие диски в плохо отапливаемых помещениях "выстывают" за ночь (при температуре 18°-21° жесткий диск часто может исправно функционировать и с испорченным механизмом термокалибровки)

Попробуйте дать поработать винчестеру в течение нескольких часов, что бы он мог прогреться, при этом рано или поздно последний попадет в необходимый диапазон температур и работоспособность (возможно временно) восстановиться. Разумеется, что первым делом нужно скопировать всю информацию, поскольку работоспособность такого диска уже не гарантируется, хотя на винчестере с нерабочей системой термокалибровки иной раз можно поработать достаточно длительное время, но все же лучше не рисковать. (То же относится и к устаревшим моделям без термокалибровки; часто они оказываются зависимыми от температурного режима, что с ростом износа винчестера становиться заметно все сильнее и сильнее)

Отказ модуля диагностики

Вторым по распространенности отказом является выход из строя модуля диагностики при полной исправности остальных компонентов. Как бы это не было парадоксально, но это факт - полностью рабочий винчестер не проходит диагностику. При этом в регистре ошибок (порт 0х1F1 для первого жесткого диска) могут содержаться следующие значения:

Бит

Содержимое

Источник ошибки

7

0

Ошибка master диска

7

1

Ошибка slave диска

2-0

011

Ошибка секторного буфера

2-0

100

Ошибка контрольной суммы, не устранимая избыточным кодированием

2-0

101

Ошибка микроконтроллера

При этом разные BIOS-ы могут по различно реагировать на такую ситуацию, которая, однако, сводится к одному - жесткий диск не определяется и не "чувствуется". Однако на уровне портов ввода \ вывода устройство функционирует отлично. Заметим, что существуют такие материнские платы (особенно среди новых моделей), которые, обнаружив ошибку микроконтроллера винчестера, просто отключают питание жесткого диска. Несложно написать драйвер для испорченного таким образом диска, который обеспечит работу с ним через высокоуровневый интерфейс Int 0x13. Например, следующая процедура обеспечивает посекторное чтение и запись через порты ввода вывода для первого жесткого диска в CHS режиме. LBA mode для упрощения понимания не поддерживается. Необходимую техническую информацию обычно можно найти на сайте производителя вашего жесткого диска.

HDD_IO:

MOV DX, 1F2h ; Число секторов MOV AL, 1 ; Читаем один сектор OUT DX, AL ; ^ INC DX ; Номер сектора (считая от 1) OUT DX, Sector ; Какой сектор читать INC DX ; Младший байт номера цилиндра (считая с 0) MOV AL, CylLow ; ^ OUT DX, AL ; ^ INC DX ; Старший байт номера цилиндра OUT DX, AL ; ^ MOV AL, 10100000B ; Режим - диск #0, CHS mode OR AL, Head ; Головка (считая от 0) INC DX ; ^ OUT DX, AL ; ^ INC DX ; Командный регистр MOV AL, command ; операция #2 чтение\#3 запись OUT DX, AL ; ^ MOV DX, 1F0h ; Регистр данных MOV CX, Sector_size; Размер сектора LEA SI, Buffer ; Указывает на буфер данных MOV AL,command ; Код команды. AND AL,1 ; Четный (чтение) или нет (запись) JNZ write ; --> пишем REP MOVSB ; Читаем данные RET ; --/ Write: REP STOSB ; Записываем RET ; --/

BIOS

IDE

Результат

Максимальное число секторов на дорожке

63

255

63

Максимальное число головок

255

16

16

Максимальное число цилиндров

1024

65536

1024

Максимальный размер диска

8.4 ГБ

136.9 ГБ

528 МБ

 

Этот фрагмент может служить вполне работоспособным ядром для драйвера 16-ти разрядного режима. Для упрощения понимания не включена задержка, после каждого обращения к порту. (Вообще-то, в зависимости от соотношений скорости вашего процессора и контролера диска эта задержка может и вовсе не потребоваться; в противном случае рекомендуется читать регистр статуса 0x1F7 дожидаясь готовности контроллера)

При этом даже не будет особой нужны спешить менять такой жесткий диск на новый и с подобной неисправностью можно успешно проработать не год и не два. Последнее, правда, лишь при условии, что все используемое вами ПО не будет конфликтовать с нестандартным драйвером. Учитывая, что писать его, скорее всего, придется вам, поскольку не известно ни одной коммерческой разработки в этом направлении, а все любительские страдают большой забитостью "под себя". Так, например драйвер от KPNC hddFix3a поддерживает только Primary Master до пятисот мегабайт и не работает в среде Windows 95 (поскольку был разработан на год раньше ее появления). Более легкий, но не всегда осуществимый путь - запретить тестирование жестких дисков BIOS-ом или, по крайней мере, игнорировать результаты оного. Как это осуществить, можно прочесть в руководстве на Вашу материнскую плату (или обратится за помощью к технической поддержке фирмы производителя, поскольку в руководствах пользователя такие тонкости нередко опускают). Например, попробуйте установить 'Halt on' в 'Never' или перезаписать Флеш-Биос, модифицировав его так, что бы тот не выполнял подобную проверку. Если Вам повезет, жесткий диск заработает!

Соседние файлы в предмете Защита информации