Восстановление SMR транслятора на дисках Western Digital

После Новгородского сервиса, где не смогли достать данные, в нашу лабораторию прислали 4-х терабайтный съёмный Western Digital семейства SpyGlass. При подключении выдает два неприятных щелчка и останавливает двигатель. Как обычно, с поломанного харда очень нужно восстановить файлы.

Первым делом меняем USB плату на SATA. Снимаем родную плату и используя игольчатую контактную группу на гибком проводнике плотно подсоединяем каретку ридера к чипу. Сперва читаем оригинальное ПЗУ, потом пишем его на SATA-шный аналог USB-контроллера.

Подключаем его к аппаратно-программному комплексу, подаём питание и видим, что после двух щелчков диск «гасит» регистры состояния. При запросе GET ID в паспорте видна только модель. Диск находится в так называемом режиме ядра — kernel mode.

Блокируем загрузку микрокода путём смещения адреса размещения служебной области в ПЗУ, и видим, что после рестарта в регистрах уже состояние готовности. Загружаем оверлеи, и диск переходит в safe-mode, паспорт изменяется на заводской псевдоним с нулевым объёмом. Уже в памяти, не в ПЗУ, возвращаем сдвиг регионов на место, читаем модуль SMR транслятора и очищаем его. Модуль не защищён контрольной суммой и в этом одна из причин поломки диска, по сути, недочёт инженеров Western Digital.

Записываем очищенный транслятор назад в служебную область. Убираем блокировку загрузки микрокода и после рестарта диск больше не стучит и определяется нормальным паспортом. Однако при чтении пользовательской области данных ждёт сюрприз — все сектора будут читаться как заполненные нулями. Никаких данных на диске с очищенным транслятором прочитать не получится! Для решения этой проблемы на диск нужно записать пересобранный сжатый SMR транслятор, записанный в id190.

Для ремонта и восстановления повреждённого SMR транслятора, когда диск, как в описанном примере, стучит либо определяется нормально, но при чтении отдаёт нули, нужно иметь в виду, что сам модуль состоит из двух частей: непосредственно таблиц трансляции и описание их размещения. Сам SMR транслятор в свою очередь состоит из ссылок на SMR зонное распределение, номера лент и смещение, а так же размер данных в ленте. И даже если сам узел не побит и не потерян, то наличие в нём несуществующей ленты или ссылки за пределы её размера будет приводить к невозможности пользовательского чтения данных.

У описываемого диска, скорее всего из-за нестабильного питания на разъём (кабель кривой, как вариант) засбоила ОЗУ, в результате в буфер кэша попала одна(!) битовая ошибка, в результате чего диск перестал адресовать всего два(!) сектора размера фрагмента в ленте и сумма размеров перестала совпадать с размером узла. Дальше эта ошибка записалась «на поляну». т.е. в служебку. Раньше такие проблемы касались только данных пользователя, но инженеры WD не подкачали, и теперь те же грабли мы можем наблюдать в т.н. «кривой прошивке WD», т.е. в микропрограмме в результате чего, по сути из-за плохого USB кабеля или разъёма, может накрепко поломаться весь хард.

После рестарта паспорт диска не изменился, а вот результат чтения пользовательской области кардинально другой, всё читается как надо, информация доступна для копирования.

Не забудьте подписаться на наш канал в Youtube, чтобы не пропускать новых роликов.