SSHD ST1000LX015 FireCuda не стартует - как исправить?
Новые гибридные диски Seagate FireCuda семейства Rosewood 8C принесли за собой те же проблемы, что были и со старыми Seragate Kahuna. Не смотря на рекламные уверения, диски от Сигейтов со временем лучше не становятся. Все болячки уверенно кочуют от старых моделей к свежим, по пути обрастая новыми багами.
Итак, поломка, как и на «кахунах» выражается в том, что при подаче питания диск не раскручивает двигатель не издавая при этом никаких звуков, в регистрах состояния взведён бит BUSY, в диагностический порт выдаётся сообщение:
Boot 0x80M DensityList:0x0000
PrgF
LED:0x000000BD FAddr:0x000059D8
LED:0x000000BD FAddr:0x000059D8
LED:0x000000BD FAddr:0x000059D8
Замена платы на 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
Огромное спасибо, очень помогло.
Добрый день, подскажите где в ПЗУ правка нужна?
Батенька вы так сами себе усложняете задачу. Во первых сначала просто ставим флаг в ром для выбора чтения служебной зоны. И диск начинает обращаться к блинам а не к нанду. Далее меняем ром на инженерный который даст нам возможность обойти проблемы при зависании и выключаем Аппаратную выгрузку данных из медиакеш причём медиакеш при этом полностью не отключаем и запись не отключаем. Восстанавливаем медиакеш таблицу используя внутренние возможности диска или утилиты. Копируем область медиакеш флешь и область данных. Строим транслятор и использованием двух областей данных на основе таблиц медиакеш. Затем по таблицам медиакеш читаем валидные данные медиакеш и используем их вместе с данными из пользовательской области. Все данные восстановлены.
Вот интересно, а человек, который ниразу не крутил хдд
э сможет это проделать, есть гибрид st4000dx001 данные на нём не нужны, нужны только его 4тб, без нанда… можно это как-то сделать? у гибрида умер нанд кэш…
Здравствуйте Артем. Именно этот похоже диагноз с моим гибридным жестким диском. Хотелось бы к вам попасть на его перепрограммирование. Восстанавливать файлы не нужно. Хотя бы отключить программно NAND, чтоб осталось его механическая часть. Мой диск Seagate Laptop Thin SSHD 500GB SGB NAND Flash