Особенности восстановления данных с дисков Hitachi A7A, A9 и им подобных

Достаточно часто распространенная проблема на современных ноутбучных жестких дисках производителя Hitachi, построенных на "новом" процессоре ARM, например HTS543232A7A384 или HTS547550A9E384 (HTS547575A9E384) либо HTS723232A7A364 ну и им подобные, — выход из строя блока магнитных голов. Если требуется восстановление данных с жесткого диска, то решение с одной стороны простое и старое, как мир — замена блока голов в сборе. Однако после этой несложной для нормального специалиста операции часто встречается "подводный камень" в виде неполной инициализации жесткого диска.

В чем это выражается? При подаче питания диск на слух рекалибруется нормально (ну, или почти нормально), выходит в готовность по состоянию АТА регистров, но на запрос паспорта выдается ошибка ABRT. Доступа к пользовательской области, соответственно, так же нету. Паспорт можно увидеть только подав диску super-on команду (техноключ), доступ к LBA тоже появляется, но увы, лишь до первого дефекта, описанного в PSHT модуле. Причина проста — в результате того, что диск не прошел комплексную инициализацию, в памяти не полностью сформировались таблицы трансляции.

Причина такого поведения диска кроется в том, что на этапе отработки микрокода накопителя одним из стартовых шагов является тест голов чтения\записи путем прописывания в служебной зоне логов WRT по всем указанным в NVRAM головкам. Если замененные головки не полностью совпадают по геометрическим параметрам (а такое встречается довольно часто), то закономерным итогом будет невозможность записать и перечитать лог по одной или нескольким головкам. А значит микропрограмма "понимает", что диск не полностью исправен и завершает свою работу с ошибкой.

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

Но, если на ранних дисках Хитачи ARM это можно было довольно просто сделать — надо было лишь сравнить что из модулей "не доехало" в память и дописать недостающее (как я описывал в этой заметке), то в более поздних дисках этот метод не работает. Как же быть?

На помощь приходит старый добрый лоадер, т.е. специально подготовленная микропрограмма, содержащая в себе коды оврелеев и NVRAM. Метод решения следующий - запускаем диск, подаем s-on, читаем оригинальные модули винчестера по любой из доступных копий, с платы читаем содержимое ПЗУ (нврам), собираем в специализированном редакторе нужный лоадер и загружаем его по 92h в диск.

После окончания загрузки лоадера в память, частично прогруженный до того, диск дает доступ ко всем LBA секторам, описанным в max lba, без ограничений.

Специальное предложение для коллег по цеху — соберу из модулей "пациента" лоадер за скромное вознаграждение. Ну, или высылайте (приносите) диск для выполнения работ к нам. Подробности по эл. почте.