Как пришлось прошить жесткий диск 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, описанным в паспорте. Если бы до того, как диск попал ко мне, пытливые ручки не залезли бы в гермозону, то с помощью описанных выше манипуляций можно было бы произвести ремонт жесткого диска с сохранением информации.
Читать так же:
Решение проблемы SIM Error 2040 No HOST FIS-ReadyStatusFlags 2002A1A5
Непростая задача: при старте диск Seagate выдает в терминал сообщение: SIM Error 2040 No HOST FIS-ReadyStatusFlags 2002A1A5 Как решить эту проблему?
Лоадеры для жестких дисков Seagate
Иллюстрации решения проблем со служебной областью на жестких дисках Seagate архитектуры ArchF3 с помощью лоадеров.
Артём, если не затруднит подскажите команду формата SA. То что m1 ... понятно, но значения переменных мне не известны( описания их нагуглить не смог, но оно и понятно, вендор дока как никак.
К сожалению, по правилам группы Sherwood Team data recovery распространять такую информацию я не в праве
А на каком моменте Плист обратно вливался? И чем свеже-пересчитанный транслятор не устроил?
P-List пишется до пересчета транслятора. Потому что «свеже-пересчитанного транслятора» без P-list не получить.
походу, обслуживание диска выполняется по рс323. а он по юсб не эмулируется? т.е. на машине дома в юсб ом кармане невозможно достать до терминала и загрузить прошивку?
Для подключения к диагностическому порту используется разъем, отличный от SATA интерфейса и питания. Т.е. на USB мост он не выведен никаким боком.
А описать какие команды использовались можно пожалуйста?
Это не команды, это комплексная методика, включающая в себя процесс записи т.н. «прошивки», а на самом деле служебных модулей, подразумевающая наличие умения читать писать по SDLD протоколу, и понимания что и как делается. Никаких методик для чайников в духе нажмите на кнопку тут нет и быть не может.