Диагностика и ремонт неисправного HDD Seagate ST250DM000

На диагностику поступил винчестер Seagate ST250DM000-1BD141 семейства Pharaon с анамнезом — при подаче питания раскручивает двигатель, распарковывает головы, на слух рекалибруется, но в регистрах состояния нет готовности. Необходимо восстановить данные с жесткого диска, желательно сохранив его работоспособность.

Ремонт и восстановление ST250DM000

При подключении к диагностическому порту видим:

Boot 0x10M
 Spin Up[0x00000000]
 Trans.

Rst 0x10M
 MC Internal LPC Process
 Spin Up
(P) SATA Reset

В регистрах взведенный бит BUSY. Терминальные команды неактивны.

В дисках данного семейства особенности микропрограммы таковы, что функционал терминальных команд обеспечивается путем прогрузки оверлеев. Если диск по той или иной причине не в состоянии эти оверлеи прочитать, то сделать с ним ничего нельзя - диагностический порт "молчит" В АТА регистрах вечное "бизи". Судя по тому, что диск добирается до "(P) SATA Reset", штатным образом необходимые оверлеи читаются без ошибок. Для анализа служебной области нужно предотвратить полную отработку микрокода, которая в обычном старте начала приводить к зависанию накопителя, но позволить диску нужные оверлеи прогрузить.

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

Rst 0x10M
 MC Internal LPC Process
 Spin Up
 SIM Error 203F
 RW Error 00000080 PASS
No HOST FIS-ReadyStatusFlags 0002A1A5

И активировав ASCII Diag mode можно исправить ошибку в микрокоде и после рестарта по питанию поломанный HDD ST250DM000 вновь заработал. Вся информация доступна в штатном режиме.