Выберите Ваш город

Введите название вашего города

  • Абакан
  • Анадырь
  • Арзамас
  • Архангельск
  • Астрахань
  • Барнаул
  • Белгород
  • Биробиджан
  • Благовещенск
  • Братск

Хот-свап или горячая замена платы на WD Palmer

Artem Makarov aka Robin
05.04.2020
7715 просмотров

Сплошь и рядом приходится слышать от «умных» заказчиков — поменяйте мне головы на жёстком диске, а файлы я сам считаю. На эту тему даже видео на нашем Youtube канале было. Сегодня решил описать ещё одну ситуацию, которая встречается после замены блока голов, на примере дисков Western Digital семейства Palmer, о которых уже не раз упоминалось в заметках на сайте.

Из Санкт-Петербурга пришёл HDD WDC WD10SMZW-11Y0TS0 с повреждённым в результате залипания блоком голов. Проблема в том, что после замены БМГ в области служебной информации, там где записан микрокод (прошивка) диска, обнаружились нечитаемые сектора, которые не «лечились» перезаписью, в результате чего диск не мог самостоятельно инициализироваться даже в технологическом режиме. В таких ситуациях используется трюк, именуемый «Hot Swap», или «горячая замена», когда плата электроники инициализируется на не имеющем аппаратных проблем исправном диске, а затем переносится на гермоблок диска, с которого необходимо считать информацию, без снятия с платы (контроллера) питания.

Для проведения операции по хот-свап, очевидно, надо подготовить свап-донора, т.е. записать на исправный диск нужные части служебки (микрокода) диска-пациента и добиться его старта и нужной для чтения пользовательской области инициализации. Не смотря на то, что в ПЗУ Палмеров, в отличии от например WD FBLite, нет критичных для работы адаптивных таблиц (как мы решали эту проблему читать тут), на WD Palmer хватает своих нюансов. Первое, это конечно аппаратно заблокированная на плате электроники (PCB) работа с микрокодом, второе — это особенности построения таблиц трансляции чтения LBA, где из-за применения технологии Shingled Magnetic Recording TRIM, при нарушении взаимосвязей между «классическим» транслятором и таблицами изменений, диск при обращении к любому сектору начинает считать его незаполненным и отдавать сигнатуру 00h, не производя фактического чтения сектора.

Не раз писал, что вопросы в духе «а у вас был опыт решения проблемы с...» не имеет никого смысла. Не важно, был опыт или нет. Куда важнее способность эмпирического приобретения такового. Тут опыта не было, и пришло время его получить.

Для экспериментов было закуплено сперва два, а потом докуплен третий, исправных диска.

Доноры HDD WDC Palmer на исследования

Первым делом считали из служебной области всё, что можно. Модули, треки, ABA регионы (причём размер регионов был выставлен не по SA SPT а по фактическому объему, на всякий случай), ПЗУ. Далее было принято управленческое решение диск с серийным номером WD-WXA1EB79X7XH назначить «пациентом», произвести на него запись всех сезонов сериала The Sopranos, в правильном переводе, само собой, после записи считать изменённые модули SMR транслятора, отформатировать служебную область по обеим головам, физически прописав всю ABA нулями, и начать пытаться прочитать этот диск со свапа.

Пишем на плату диска, который будет «исправным клоном» ПЗУ от «пациента». Диск стартует с пустым паспортом.

WD Palmer Kernel mode passport

При попытке записи в служебку получаем ошибку Device Error Detected: DISK SERVO WRT FLT BAD PARITY DETECTED ERROR. Чтобы её убрать надо прогрузить в ОЗУ оверлеи 10h, 11h и 1Bh. После загрузки диск начинает определяться заводским псевдонимом:

WDC ROM MODEL-PALMER-
WDC-ROM SN# XYZ----

Теперь можно писать в служебку. Но, записав ABA регион (т.е. микрокод или т.н. «прошивку») полностью и передёрнув питание видим, что диск вместо того, чтобы определиться паспортом «пациента», отдаёт пустой. После прогрузки оверлеев определяется-таки паспортом пациента но после переноса платы на пациентскую «банку» и попытке прочитать 0-й сектор MBR видим:

ВД Палмер читает одни нули

Очевидно, транслятор не собрался. Начинаем копать глубже и достаточно быстро выясняется, что в технологическом режиме нет записи, а в ряде случаев и чтения по 1-й голове. Ошибка: Device Error Detected: DISK DAM ERROR. Скорее всего проблема в сбое при инициализации именно в этом. С пониманием причины проблемы пришло и понимание как её обойти.

Записав на диск для swap инициализации всё, что нужно, из служебки пациента, после старта и перед прогрузкой оверлеев нужно аппаратно заблокировать запись и чтение из служебной области. После загрузки оверлеев снять блокировку, изменить карту голов в ОЗУ с 0-1 на 0-0, чтобы избежать «спотыкания» диска на ошибке по 1-й голове, инициализировать изменение командой Soft-Reset, остановить мотор командой Spin Down, не снимая питания и интерфейса перенести плату на гермоблок «пациента», подать команду Spin Up. Если на этом моменте произвести попытку чтения 0-го сектора то вместо отработанного TRIM-ом ответа будет ошибка UNC.

HDD WD ошибка чтения сектора

Так происходит из-за ошибочной с точки зрения диска карты физических голов в ОЗУ. Возвращаем карту на 0-1, как и было, даём Soft-Reset и:

HDD WD доступ к данным получен!

Содержимое сектора валидно, стрелкой указана метка, которая была прописана в MBR «пациента» для дополнительного контроля правильности чтения.

Читать так же:

Убили ПЗУ на WD FbLite - можно ли восстановить данные?

История восстановления данных на внешнем диске Western Digital семейства FbLite с убитой в очередной «Лаборатории №1» микросхемой ПЗУ

WD Rainier RE WD1005FBYZ, WD1005VBYZ, WD2005FBYZ, WD2005VBYZ

Ремонт и восстановление WD Rainier RE Arch7 моделей WD1005FBYZ, WD1005VBYZ, WD2005FBYZ, WD2005VBYZ

Оставьте комментарий
Нужна консультация?

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

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