Сложный случай восстановления данных с поврежденного жесткого диска WD10JMVW: Часть 1

Приветствую всех. Сегодня в работе — сложный случай с жестким диском WD серии FBLite форм-фактора 2.5 дюйма.

Предыстория и первичный осмотр

Судя по всему, накопитель подвергся механическому воздействию — его роняли. После этого устройство отправили в местный сервисный центр, где его вскрыли. Специалисты аккуратно сняли защитную пленку с крепежных болтов и, вероятно, даже заменили основной контроллер. Однако диск по-прежнему неисправен: при работе слышны характерные стуки. Клиент, Сергей из Хабаровска, нуждается в данных, хранящихся на нем.

Первым делом я заменяю родную плату с интерфейсом USB на совместимую плату с SATA для удобства подключения к профессиональному оборудованию. При этом данные из микросхемы ПЗУ (ROM) переносятся на оригинальную плату. Теоретически, можно было припаять разъем SATA напрямую, но это более трудоемко, а учитывая полную совместимость плат, в этом нет необходимости.

Вскрытие гермозоны и оценка повреждений

Вскрываю герметичный блок (гермозону). На поверхности виден мелкий мусор — явный признак того, что предыдущее вскрытие проводилось не в идеально чистых условиях. Аккуратно снимаю блок магнитных головок (БМГ) и сразу замечаю проблему: на одной из четырех головок (второй по счету) видны пятна. Это тревожный сигнал, требующий полной разборки пакета пластин для детального осмотра их состояния.

Осмотр подтверждает худшие опасения. На одной из четырех рабочих поверхностей пластины обнаружена глубокая царапина. Критично, что она расположена именно в области служебной информации (Service Area), в том секторе, где головка начинает чтение при старте диска. Чтобы избежать дальнейшего повреждения, необходимо исключить контакт головки с этим дефектом. Для этого я отключаю одну из головок на донорском БМГ, собираю пакет пластин, тщательно очищаю все поверхности от следов предыдущего «ремонта» и устанавливаю подготовленный блок головок в накопитель заказчика.

Диагностика и работа с служебной информацией

Запускаю специализированное программное обеспечение для диагностики и восстановления данных.

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

Результаты сканирования модулей неутешительны. Обнаружено значительное количество поврежденных служебных модулей. Некоторые из них уникальны для данного экземпляра диска и критически важны для доступа к пользовательским данным.

В первую очередь пытаюсь прочитать ключевые модули, игнорируя ошибки чтения. Модуль 25 удалось прочитать, в нем обнаружена всего одна ошибка.

Программа создала файл с расширением .BAD, содержащий поврежденный сектор.

Открываю этот файл в HEX-редакторе. В поврежденном участке видна последовательность байт DE AD, окруженная нулями (00).

Выдвигаю предположение, что изначально на этом месте должны были быть нули. Заменяю DE AD на 00 00.

Сохраняю исправленный файл под именем 25.rpm и пытаюсь записать его обратно на диск, в то же место служебной зоны, откуда был считан оригинальный модуль. Копию модуля на резервной дорожке (копию 1) не трогаю, так как головка для ее чтения отключена.

Запись проходит успешно. После повторного чтения модуль проверяется без ошибок — это обнадеживает. Перехожу к восстановлению других поврежденных модулей.

Таким методом удается восстановить несколько модулей с похожими повреждениями.

Однако не все ошибки столь тривиальны. Например, в модуле 4E поврежденный участок (DE AD) не окружен нулями. В таком случае приходится использовать встроенные в программный комплекс средства для ремонта модулей.

После ремонта модуля пересчитываю его контрольную сумму (CRC), проверяю целостность и записываю обратно на диск.

Обратите внимание: ?Как нагибать в Brawl Stars ? Вторая часть?.

После восстановления всех критичных модулей ситуация улучшается: все записанные модули читаются. Мне не пришлось переносить их в новые места служебной зоны. Правда, у некоторых модулей контрольные суммы все еще не сходятся, но это вторичная проблема.

Попытка инициализации диска

Подаю питание, запускаю утилиту. Загружаю загрузчик из резервной копии, затем загружаю служебные модули (включая модуль 02) в оперативную память диска. Диск определяется корректно — отображается правильный серийный номер, хотя объем пока равен 0.

Но при попытке доступа к пользовательской зоне возникает ошибка ABR (Address Boundary Error, ошибка границы адреса).

Возвращаюсь к анализу модулей. Переписываю некритичные модули с диска-донора, имеющего такую же версию прошивки (FW). Модули записываются и читаются, даже несмотря на несовпадение контрольных сумм у некоторых — это допустимо на данном этапе.

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

Доступ к данным и новые сложности

Проверяю чтение поверхности в пользовательской зоне (User Area) — все работает.

Захожу в Data Extractor, строю карту головок, исключая поврежденную головку 1. Удается построить дерево каталогов и файлов. Данные доступны для просмотра.

Клиенту нужны все файлы. Строю карту занятых секторов. Общий объем данных оценивается в 929,66 ГБ. Однако, учитывая отсутствие головки 1, фактический объем, который можно прочитать головками 0, 2 и 3, составляет 701,87 ГБ. Начинаю процесс посекторного копирования.

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

Проверяя промежуточные результаты, замечаю, что сектора в конце диска заполнены нулями — данных там нет. Чтение этой пустой области можно пропустить. Пытаюсь прочитать файл $Bitmap (29 МБ), который полностью находится в зоне головки 3. Чтение идет с большим количеством ошибок, отменяю эту задачу.

Пытаюсь прочитать главную файловую таблицу MFT (объемом 161 МБ). Ее фрагменты разбросаны по головкам 0 и 3, и в ней также есть пробелы. Усиленно пытаюсь вычитать сохранившиеся заголовки метаданных файлов.

Продолжение следует...

PS: В постах используется не более 25 медиафайлов.

[мин]Ремонт оборудованияВосстановление данныхЖесткий дискДлинный пост 5 Support Emotions

Больше интересных статей здесь: Гаджеты.

Источник статьи: WD10JMVW с царапиной, восстановление данных для Сергея из Хабаровска. Часть 1.