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

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

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

SSHD ST1000LX015 FireCuda не стартует - как исправить?

Artem Makarov aka Robin
28.08.2020
7108 просмотров

Новые гибридные диски Seagate FireCuda семейства Rosewood 8C принесли за собой те же проблемы, что были и со старыми Seragate Kahuna. Не смотря на рекламные уверения, диски от Сигейтов со временем лучше не становятся. Все болячки уверенно кочуют от старых моделей к свежим, по пути обрастая новыми багами.

Восстановление и ремонт SSHD ST1000LX015 FireCuda

Итак, поломка, как и на «кахунах» выражается в том, что при подаче питания диск не раскручивает двигатель не издавая при этом никаких звуков, в регистрах состояния взведён бит BUSY, в диагностический порт выдаётся сообщение:

Boot 0x80M DensityList:0x0000
PrgF
LED:0x000000BD FAddr:0x000059D8

LED:0x000000BD FAddr:0x000059D8

LED:0x000000BD FAddr:0x000059D8

Прошивка Сигейт ST1000LX015 FireCuda

Замена платы на PCB с другого диска проблему не решит, т.к. в NAND пишется вся важная часть микрокода, включая ПЗУ, и с чужой платой даже заменив м\с ПЗУ на ней, диск работать не будет. Корректным решением проблемы в таком случае является переинициализация NAND из safe mode, но на момент написания заметки такая возможность ещё не исследована в полной мере. Тем не менее мною найдено следующее решение:

С неисправного диска через SDLD или на программаторе читается ПЗУ, в один из модулей вносятся правки буквально в несколько байт, с последующим пересчётом контрольной суммы, которые отключают NAND вообще, превращая диск в негибридный. Найти это место совсем не сложно, если побайтно сравнить дампы ПЗУ гибридного и не гибридного диска. Дополнительно добавляется патч на прерывание старта после загрузки технологических оверлеев. После рестарта получаем следующее:

Boot 0x80M!
Tech Unlock Handshake: 0x015F77F6
Reply:
Srv DETCR init 0x0000
MCMTBufferPtr->Header.MCMTHeader.MCMTExtentCount = 0x00003817
MediaTableExtentCount = 0x00003814
MCMTBufferPtr->Header.MCMTHeader.MediaCacheExtentCount = 0x00001AE0
MediaCacheExtentCount = 0x00001AE0
DensityList:0x0000
LED:0x000000BD FAddr:0x000059D8

LED:0x000000BD FAddr:0x000059D8

LED:0x000000BD FAddr:0x000059D8

На первый взгляд ничего не изменилось, диск так же падает в «LED», тем не менее строчка «Tech Unlock Handshake» свидетельствует о том, что хард перестал обращаться к NAND чипу при старте, а читает непосредственно со служебной области на пластинах. Таким образом становится понятно, что на диске сперва слетел MCMT, потом всё это записалось дублем в NAND, и винчестер встал колом.

Далее после остановки загрузки на «Tech Unlock Handshake» и ожидания ответа «Reply» следует отключить чтение микрокода. Этого можно добиться либо закоротив контактную группу канала чтения на плате электроники, либо замкнуть обмотки HDD, для остановки двигателя с парковкой БМГ с последующим отключением всей контактной группы на гермоблок.

Дождавшись готовности диагностического порта подаём команду на раскручивание шпиндельного двигателя, после чего терминалом читаем FID-ы заводского дефект-листа, модуля транслятора и медиа-кеша. После их резервного копирования сбрасываем медиакеш

 MCInitialize: Start:  Host VBM Size (Bytes): 00000210 Metadata VBM Size (Bytes): 
 MCInitialize:  MCMTBufferPtr->Header.MCMTHeader.MediaCacheDiscStateFlags = 0000000A
 MCInitialize:  MCMTBufferPtr->Header.MCMTHeader.MCStateFlagsDisc = 00000001
 MCInitialize:  MCStateFlags = 00000001

 WB Ptr Initialization Complete
 MCInitialize: Init complete: 
ALF Parametric Tables Preserved
 WB Ptr Initialization Complete
 MCInitialize: Start:  Host VBM Size (Bytes): 00000210 Metadata VBM Size (Bytes): 
 MCInitialize:  MCMTBufferPtr->Header.MCMTHeader.MediaCacheDiscStateFlags = 0000000A
 MCInitialize:  MCMTBufferPtr->Header.MCMTHeader.MCStateFlagsDisc = 00000001
 MCInitialize:  MCStateFlags = 00000001

 MCInitialize: Start:  Host VBM Size (Bytes): 00000210 Metadata VBM Size (Bytes):   Starting LBA 007480F858, Count 00006270.
 ClearMC:  Completed, Last LBA 0074815AC8  Starting LBA 00747B05D8, Count 00052DA0.
 ClearMC:  Completed, Last LBA 0074803378
 MCInitialize:  MC Cleared 
 MCInitialize:  MCMTBufferPtr->Header.MCMTHeader.MediaCacheDiscStateFlags = 0000000A
 MCInitialize:  MCMTBufferPtr->Header.MCMTHeader.MCStateFlagsDisc = 00000001
 MCInitialize:  MCStateFlags = 00000001

 WB Ptr Initialization Complete
 MCInitialize: Init complete: 
(MC POR Duration): 00000007D9

Flash was erased and ALF Tables have successfully been initialized

и содержимое NAND:

 WB Ptr Initialization Complete
 MCInitialize: Start:  Host VBM Size (Bytes): 00000210 Metadata VBM Size (Bytes): 
 MCInitialize:  MCMTBufferPtr->Header.MCMTHeader.MediaCacheDiscStateFlags = 00000022
 MCInitialize:  MCMTBufferPtr->Header.MCMTHeader.MCStateFlagsDisc = 00000001
 MCInitialize:  MCStateFlags = 00000001

 MCInitialize: Start:  Host VBM Size (Bytes): 00000210 Metadata VBM Size (Bytes):   Starting LBA 007480F858, Count 00006270.
 ClearMC:  Completed, Last LBA 0074815AC8  Starting LBA 00747B05D8, Count 00052DA0.
 ClearMC:  Completed, Last LBA 0074803378
 MCInitialize:  MC Cleared 
 MCInitialize:  MCMTBufferPtr->Header.MCMTHeader.MediaCacheDiscStateFlags = 0000000A
 MCInitialize:  MCMTBufferPtr->Header.MCMTHeader.MCStateFlagsDisc = 00000001
 MCInitialize:  MCStateFlags = 00000001

 WB Ptr Initialization Complete
 MCInitialize: Init complete: 
(MC POR Duration): 00000007DE

Flash and Parametric Table was erased and ALF Tables have successfully been initialized

диск после рестарта выходит в готовность с возможностью чтения пользовательских данных. В случае полного выхода нанд-кэша из строя, для замены платы электроники на донорскую применяется следующая методика: на донорском диске очищается mcmt и nand, и сразу же записывается донорская ПЗУ, с правкой обращения к кешу, после чего плату можно ставить на диск-пациент. При первом рестарте важные части service area подтянутся в новый кэш.

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

Почему опасно включать HDD с повреждениями голов

Наглядное пояснение - почему опасно включать диск с повреждениями голов

Восстановление информации с самошифрующегося Seagate SED

Особенности получения доступа к файлам на заблокированном «самошифрующемся» Seagate SED YarraX HP Secure Hard Disk

Оставьте комментарий
Андрей
12 сентября 2020, 19:11

Огромное спасибо, очень помогло.

Николай
04 февраля 2021, 22:32

Добрый день, подскажите где в ПЗУ правка нужна?

Оливер
05 апреля 2021, 21:51

Батенька вы так сами себе усложняете задачу. Во первых сначала просто ставим флаг в ром для выбора чтения служебной зоны. И диск начинает обращаться к блинам а не к нанду. Далее меняем ром на инженерный который даст нам возможность обойти проблемы при зависании и выключаем Аппаратную выгрузку данных из медиакеш причём медиакеш при этом полностью не отключаем и запись не отключаем. Восстанавливаем медиакеш таблицу используя внутренние возможности диска или утилиты. Копируем область медиакеш флешь и область данных. Строим транслятор и использованием двух областей данных на основе таблиц медиакеш. Затем по таблицам медиакеш читаем валидные данные медиакеш и используем их вместе с данными из пользовательской области. Все данные восстановлены.

Сергей
26 июля 2021, 11:23

Вот интересно, а человек, который ниразу не крутил хдд
э сможет это проделать, есть гибрид st4000dx001 данные на нём не нужны, нужны только его 4тб, без нанда… можно это как-то сделать? у гибрида умер нанд кэш…

Владимир
17 ноября 2023, 18:20

Здравствуйте Артем. Именно этот похоже диагноз с моим гибридным жестким диском. Хотелось бы к вам попасть на его перепрограммирование. Восстанавливать файлы не нужно. Хотя бы отключить программно NAND, чтоб осталось его механическая часть. Мой диск Seagate Laptop Thin SSHD 500GB SGB NAND Flash

Нужна консультация?

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

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