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

Еще одна непростая проблема с сигейтами, которую удалось решить с помощью так называемой прошивки 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, описанным в паспорте. Если бы до того, как диск попал ко мне, пытливые ручки не залезли бы в гермозону, то с помощью описанных выше манипуляций можно было бы произвести ремонт жесткого диска с сохранением информации.

P.S. Продолжение темы на примере Seagate Pharaon.

Оставить комментарий

Читать комментарии к статье

Оставить комментарий:

Текст на изображении: Дайте понять, что вы не спамер Если вам не понятен текст на изображении обновите страницу, нажав F5

Антон
Артём, если не затруднит подскажите команду формата SA. То что m1 ... понятно, но значения переменных мне не известны( описания их нагуглить не смог, но оно и понятно, вендор дока как никак.
Robin
К сожалению, по правилам группы Sherwood Team data recovery распространять такую информацию я не в праве
Василий
А на каком моменте Плист обратно вливался? И чем свеже-пересчитанный транслятор не устроил?
Robin
P-List пишется до пересчета транслятора. Потому что "свеже-пересчитанного транслятора" без P-list не получить.
игорь
походу, обслуживание диска выполняется по рс323.
а он по юсб не эмулируется?
т.е. на машине дома в юсб ом кармане невозможно достать до терминала и загрузить прошивку?
Robin
Для подключения к диагностическому порту используется разъем, отличный от SATA интерфейса и питания. Т.е. на USB мост он не выведен никаким боком.

Заметки схожей тематики:

Проблемы с HDD Seagate Surveillance 4000 GB

Сигейт ST32000645NS не могу обновить прошивку

ST31000333AS определяется как ST_M13FQBL