Восстановление Seagate методом перепрошивки

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

Итак анамнез: HDD ST500DM002 семейства Pharaoh при подаче питания раскручивает шпиндельный двигатель, в терминале без криминала:

Boot 0x10M
 Spin Up[0x00000000][0x0000BDA4][0x0000C138]
 Trans.

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

RAW OFF
 PASS

однако попытка подать любую команду по АТА, в том числе и Get ID, приводит к вот такому состоянию регистров:

Ошибка в регистрах при запросе паспорта накопителя

Ошибка в регистрах при запросе паспорта накопителя

Первым делом подозрение на плату, конечно. А ну как интерфейс битый? Однако плата отдельно от гермоблока вполне себе по АТА функционирует, и тот же запрос паспорта отрабатывает без проблем:

Паспорт диска ST500DM002 в safe mode (плата без гермоблока)

Паспорт диска ST500DM002 в safe mode (плата без гермоблока)

Очевидно, что проблема в служебной области, в микрокоде. Что-то при чтении поднимается такое, что приводит к печальным последствиям для работы по интерфейсу. Не смотря на то, что некоторые коллеги, из числа "умников", критиковали метод "разрушить до основания, а затем", если есть в голове знания и опыт за плечами, то метод форматирования служебной области является наиболее действенным в ситуациях когда не ясно, с какими именно модулями проблема, а времени на исследования нет - требуется восстановление данных за которые платят по тарифу "экстренный".

В результате форматирования SA всё служебной области прописывается паттерном 00h, после чего можно записать назад только то, что нужно для чтения user area, исключив всякое глючное и кривое.

По диагностическому терминалу диск работал без проблем, всё читалось и писалось. Первым делом я сохранил все модули, описанные в FID таблице, для перестраховки. Хотя объективно для работы данного конкретного диска Pharaoh нужны следующие модули: 03h, 28h, 93h, оверлеи 0,1,4,5, дискварь 20Eh, и на всякий пожарный, 35h.

Самый правильный способ следующий: после сохранения всего, чего можно, из микрокода, в память поднимаются оверлеи, как минимум 4-5, чтобы TrTw было доступно, потом командой форматируется служебная область, и после:

System Partition Format Successful - Elapsed Time 0 mins 18 secs        

F3 T>

не переподключая питания, назад записываются вышеупомянутые модули.

Причём, если попытаться записать по АТА, то получится:

ASCII Online mode

 ABORT!
SenseCode = 03310000
ReadyStatusFlags = 0002A1E1

поэтому писать надо по терминалу, да ещё и на дефолтной скорости, чтобы не поймать

Terminal, modem transfer: Out of sync!

Кроме того с диском, описываемым в текущей заметке работа по АТА и так исключалась.

Что будет, если не записав всё нужное, или не дописав того что надо, дёрнуть питание? Диск упадёт в такую позицию:

Boot 0x10M
 Spin Up[0x00000000][0x0000BDA4][0x0000C138]
 Trans.

LED:000000BB FAddr:00004254
LED:000000BB FAddr:00004254
LED:000000BB FAddr:00004254

Картина печальная, но при условии бэкапа всех необходимых потрошков, легко поправимая. Для лечения понадобится командой 92h залить дискварь и оверлеи в память и на поверхность. Для этого подаём питание на диск, и сразу лепим заглушку на диагностический порт. Диск встанет после:

Boot 0x10M
 Spin Up[0x00000000]

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

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

(DOS) FWR Done

(DOS) File Save

 Dither

и с диска без проблем читается вся нужная информация. Весь процесс организации доступа к UA путём "перепрошивки Сигейта" занимает пару минут!

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

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

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

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

К этой новости нет комментариев.

Возможно, ваш будет первым?

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

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

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

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