Статьи

Как пришлось прошить жесткий диск Seagate чтобы получить доступ к информации

Artem Makarov aka Robin
09.11.2013
31271 просмотр

Еще одна непростая проблема с сигейтами, которую удалось решить с помощью так называемой прошивки HDD Seagate (загрузки микрокода по интерфейсу).

Прошивка HDD Seagate

На сей раз - ноутбучный HDD ST9500325AS при подаче питания на слух рекалибруется, висит в BUSY, в диагностический порт выдает только:

 Rst 0x08M

И всё. Терминального функционала после старта нет, так как диск зависает. До меня диск был в другом месте, где ему поменяли блок головок (обычно так всегда, если не понимают, что с винчестером не так, сразу меняют головы - на всякий случай). Само собой, в деле восстановления пользовательских файлов замена голов чтения\записи в данной ситуации никак не помогла и диск принесли в СЦ "Хардмастер".

Терминальный функционал на данной линейке накопителей заложен производителем в код ПЗУ, включается после подачи питания на интерфейс. Выглядит это таким вот образом:

 Rst 0x08M RW cmd 002F req = 18 F0 9F E5 18 F0 9F E5 18 F0 9F E5 18 F0 9F E5 18 F0 9F E5 00 00 A0 E1 opts = 00000000 RW Err = 84150180 ASCII Diag mode F3 T>

Т.е. ошибка позиционирования по сервометкам, остановка шпиндельного двигателя и готовность в регистрах с готовностью отвечать на терминальные запросы. В такой позиции можно командой раскрутить двигатель, поднять с поверхности diag ovl и прочитать по АТА все описанные по id модули, а так же все модули, описанные в system volume. Все модули считались без ошибок, и на первый взгляд не содержали в себе ничего крамольного, что могло бы приводить к зависанию накопителя при штатном старте.

Сразу возникло подозрение на сбой в таблицах трансляции, но попытка пересчёта привела к такому результату:

 Max Wr Retries = 00, Max Rd Retries = 00, Max ECC T-Level = 14, Max Certify Rewrite Retries = 2DF8 DiagError 0000500D User Partition Format Failed - Elapsed Time 0 mins 00 secs R/W Sense 00000002, R/W Error 843200A2, File Error 00000000 Blk Addr AD6F0001, Blk Addr Type D0, Cyl FFFF0000, Hd EC

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

 System Partition Format Successful - Elapsed Time 2 mins 00 secs

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

 Unable to load Diag Cmd Processor Overlay

Для того, чтобы получить полный функционал в такой ситуации, требуется записать оверлеи на поверхность, чтобы диск их считал. А для того, чтобы получить возможность произвести запись на поверхность диск должен их прочитать ранее. Замкнутый круг. Как найти выход из такой ситуации?

Вариант, учитывая что в ситуации с отформатированной служебкой диск выходит в готовность по интерфейсу штатно, один - используя команду id92h загрузить в HDD лоадер, т.е. пакет микрокода, содержащий в том числе и требуемые оверлеи, и тем самым, как говорят, перепрошить жесткий диск Seagate.

После этой операции пересчет транслятора завершился успешно

 Max Wr Retries = 00, Max Rd Retries = 00, Max ECC T-Level = 14, Max Certify Rewrite Retries = 2DF8 User Partition Format Successful - Elapsed Time 0 mins 00 secs 

И, финальный штрих - запись ранее сохраненного транслятора (id2Bh). После переподачи питания диск выдал привычное:

 Rst 0x08M (P) SATA Reset

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

Оставьте комментарий
Антон
22 мая 2014, 18:18

Артём, если не затруднит подскажите команду формата SA. То что m1 ... понятно, но значения переменных мне не известны( описания их нагуглить не смог, но оно и понятно, вендор дока как никак.

Artem Makarov aka Robin
23 мая 2014, 09:37

К сожалению, по правилам группы Sherwood Team data recovery распространять такую информацию я не в праве

Василий
23 января 2015, 16:34

А на каком моменте Плист обратно вливался? И чем свеже-пересчитанный транслятор не устроил?

Artem Makarov aka Robin
23 января 2015, 16:48

P-List пишется до пересчета транслятора. Потому что «свеже-пересчитанного транслятора» без P-list не получить.

игорь
19 февраля 2015, 00:51

походу, обслуживание диска выполняется по рс323. а он по юсб не эмулируется? т.е. на машине дома в юсб ом кармане невозможно достать до терминала и загрузить прошивку?

Artem Makarov aka Robin
19 февраля 2015, 10:28

Для подключения к диагностическому порту используется разъем, отличный от SATA интерфейса и питания. Т.е. на USB мост он не выведен никаким боком.

Нужна консультация?

Мы одна из немногих лабораторий в России, которая восстанавливает данные самостоятельно.

Для этого у нас есть все необходимое:
Важно – кто будет первым!
восстанавливать
информацию