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

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

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

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

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

Новые гибридные диски Seagate FireCuda семейства Roserwood 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 Exos ST1000NM0008

Методики восстановления информации с дисков Seagate семейства Nemo на примере ST1000NM0008

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

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

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

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

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