Академический Документы
Профессиональный Документы
Культура Документы
10 - Seagate Arch F3 (2010-20xx)
10 - Seagate Arch F3 (2010-20xx)
Архитектура F3 0111011110
111101
011
11
Оглавление
1
1. Введение ....................................................................................................................................................................... 3
3. Запуск утилиты........................................................................................................................................................... 9
3.1. Определение семейства HDD. ........................................................................................................................... 12
4. Неисправности, встречающиеся наиболее часто ............................................................................................... 16
4.1. Заклинивание двигателя ..................................................................................................................................... 16
4.2. «Залипание» головок .......................................................................................................................................... 16
4.3. Накопитель не определяется в системе, постоянно находится в состоянии BSY......................................... 16
4.4. Неисправности гибридных накопителей. Семейство Kahuna, модели STxxxLM014, STxxxLM000........... 17
4.4.1. Дополнение................................................................................................................................................. 20
4.5. Накопитель отдаёт паспорт (детектируется в системе), но при этом имеет ёмкость = 0 ............................. 20
4.6. Rosewood / Crawford / SMR HDD, ёмкость = 0. ............................................................................................... 22
4.6.1. Проверка транслятора. .............................................................................................................................. 22
4.6.2. Проверка MCMT. ....................................................................................................................................... 26
4.7. Накопитель распознаётся в системе, видно начало диска, но, начиная с некоторого LBA, непрерывно до
конца диска идут ошибки UNC ................................................................................................................................ 32
4.7.1. Автоматическое восстановление транслятора (на всём пространстве LBA) ........................................... 34
4.7.2. Автоматическая коррекция положения конкретного LBA (начиная с некоторого LBA) .................... 35
4.7.3. Задача в Data Extractor ............................................................................................................................... 36
4.7.4. Ручное восстановление транслятора ........................................................................................................ 36
4.7.4.1. «Тонкая» работа с Non Resident G-List. ........................................................................................... 40
4.8. RW subfile error 201F при пересчёте транслятора. .......................................................................................... 41
4.9. DiagError 00000027 при просмотре Alt-List (G-List). ...................................................................................... 41
4.10. Sim Error 1009 / RW Error 00000080. .............................................................................................................. 42
4.11. Sim Error 2041 / RW Error 00000080. .............................................................................................................. 42
4.12. Sim Error 2042 / RW Error 00000080. .............................................................................................................. 42
4.13. Sim Error 3005 / RW Error 00000080. .............................................................................................................. 43
4.14. Диагностика по списку последних 32 / 48 исполненных RW команд.......................................................... 43
4.14.1. Вручную. Рекомендуется для изучения и углубления понимания....................................................... 43
4.14.2. При помощи средства автоматизации утилиты..................................................................................... 46
5. Меню «Тесты»........................................................................................................................................................... 49
5.1. Состояние утилиты ............................................................................................................................................. 49
5.2. Подать Utl Tech mode Unlock с задержкой в 15 секунд. ................................................................................. 50
5.3. Лоадер.................................................................................................................................................................. 50
5.4. Создать лоадер. ................................................................................................................................................... 50
5.5. Download Microcode. .......................................................................................................................................... 50
5.6. Работа с терминалом .......................................................................................................................................... 53
5.7. Служебная информация ..................................................................................................................................... 53
5.7.1. Резервирование ресурсов HDD ................................................................................................................. 54
5.7.2. Работа с ПЗУ .............................................................................................................................................. 55
5.7.2.1. Подготовка к разблокировке Tech Mode (patch)............................................................................. 56
5.7.3. Работа с ОЗУ .................................................................................................................................................... 56
5.7.3.1. Карты головок накопителей Seagate F3 ........................................................................................... 58
5.7.4. Работа со служебной зоной ............................................................................................................................ 59
5.8. Логическое сканирование .................................................................................................................................. 61
5.9. Таблицы дефектов. ............................................................................................................................................. 63
5.10. Очистка S.M.A.R.T. .......................................................................................................................................... 63
5.11. Пользовательские команды ............................................................................................................................. 63
12. Приложение 5. Расположение контрольных точек канала чтения на платах HDD Barracuda F3 3.5” .... 84
12.1. PCB 100466725 REV A (DLAJ-4) .................................................................................................................... 84
12.2. PCB 100466824 REV A (UJAJ-6) ..................................................................................................................... 85
12.3. PCB 100466824 REV B (UJAJ-6) ..................................................................................................................... 86
12.4. PCB 100466824 REV C (UJAJ-6) ..................................................................................................................... 87
12.5. PCB 100496208 REV A ..................................................................................................................................... 88
12.6. PCB 100504364 REV B ..................................................................................................................................... 89
12.7. PCB 100512588 REV A ..................................................................................................................................... 90
12.8. PCB 100475720 REV A (ZKAJ-7) .................................................................................................................... 91
13. Приложение 6. Расположение контрольных точек на платах HDD Barracuda F3 2.5” ........................... 94
13.1. PCB 100536286 REV E ..................................................................................................................................... 94
13.2. PCB 100513573 REV B ..................................................................................................................................... 95
13.3. PCB 100774000 REV С ..................................................................................................................................... 92
13.4. PCB 100797092 REV А ..................................................................................................................................... 93
13.5. PCB 100771588 REV А ..................................................................................................................................... 96
13.6. PCB 100809471 REV А ..................................................................................................................................... 97
1. Введение
1011010101100110011010101011010101111010111
11010101101101010100111110
1101110110110011
0111011110
111101
К 2008 году компания Seagate перешла от производства HDD классической концепции (3.5” Barracuda - 011
11
… 7200.7, 7200.8, 7200.9, 7200.10, Barracuda ES; 2.5” Momentus - … 5400.2, 5400.3, 5400.4 …) к новой 1
архитектуре F3, которая была призвана объединить производства ATA и SCSI накопителей. В новой
архитектуре механика и программное ядро преимущественно были перенесены из жестких дисков с
интерфейсом ATA, но значительная часть архитектуры микропрограммы была перестроена по схеме,
принятой для SCSI накопителей Seagate. ПЗУ было расширено и дополнено набором кода, позволяя плате
контроллера функционировать в ATA режиме без гермоблока. Кроме того, в ПЗУ была перенесена
адаптивная информация, информация о паспорте накопителя. Благодаря этому плата без гермоблока для
многих семейств возвращает по ATA паспорт с корректной информацией о HDD. В ПЗУ некоторых FW
семейств HDD Seagate присутствует стандартный паспорт, корректируемый данными с поверхности дисков.
Кроме того, в случае, когда служебная информация с поверхности дисков недоступна по той или иной
причине, HDD может возвращать шаблон паспорта с фиксированным именем модели и серийным номером
(при этом в структурах данных ПЗУ хранится «родной» серийный номер). К примеру, при невозможности
загрузки с поверхности микропрограммы, некоторые HDD отдают SN = “QNR_BFW”.
Рис. 1.1. Пример паспорта HDD Seagate F3, не прочитавшего микропрограмму с поверхности SA
(шаблон).
2. Подготовка к работе
1011010101100110011010101011010101111010111
11010101101101010100111110
1101110110110011
0111011110
111101
Подробно о подготовке к работе с утилитой и подключении HDD к комплексу см. в главе 3 первой части 011
11
документации Seagate. 1
Внимание! Имейте в виду, что в случае «неродной» платы контроллера любые действия, связанные с записью
на поверхность дисков, могут привести к необратимому повреждению служебной информации и, как следствие,
к недоступности пользовательских данных.
3. Запуск утилиты
После запуска утилиты выводится окно выбора семейства HDD. Семейство определяется автоматически на
основе данных паспорта накопителя – полученный код выводится под списком семейств –
Идентифицированный Fam ID.
Рис. 3.1
Family ID: 8С
Tech Key...
LBA alignment........................... : 0
Сбор DT Infos...
ROM:
ID MemOffs Длина
===========================
0 80200000 230400 Read Adaptive Parameters File (RAP)
...
RAM:
ID MemOffs Длина
===========================
0 80200000 230400 Read Adaptive Parameters File (RAP)
...
Сбор DT Infos завершён
После окончания процесса запуска и инициализации станет доступно основное рабочее окно утилиты
(включая терминал) (Рис. 3.2).
Рис. 3.2
Здесь можно выбрать чтение из Boot code в случае считывания из исправного контроллера, либо из файла в
случае, если оригинальный контроллер физически повреждён и ПЗУ считано из микросхемы
программатором. Далее для определения кода семейства можно нажать на кнопку – флаги управления
SAP, после чего будет выведен диалог, содержащий код ПЗУ.
Здесь мы видим – семейство Crawford, код 0x7901. Из этого кода используется старший байт 0x79.
Также можно получить этот код из объектов ПЗУ CAP или SAP.
Если заклинило двигатель, то при исправной плате контроллера (проверяется заменой на исправную плату
того же семейства той же ревизии) и обмотках двигателя (см. раздел 11 «Приложение 3. Тестирование обмоток
двигателя») жесткий диск не в состоянии раскрутить диски. На ощупь эту неисправность можно обнаружить по
характерной вибрации гермоблока при подаче питания. При вскрытии гермоблока и отсутствии «залипания»
головок вручную провернуть диски очень трудно либо невозможно.
Чтобы решить проблему, перенесите пакет дисков в гермоблок-донор. При этом плата контроллера, головки,
магниты можно взять от повреждённого накопителя (при повреждении «родных» головок их необходимо заменить).
1 – Media Cache – кэш данных накопителя в быстрой его области. Изначально появился в гибридных HDD и
располагался на NAND Flash на плате контроллера. В процессе удешевления технологии переносился на
внешние треки поверхности HDD, где линейная скорость обмена данными максимальна. Изначально
фактически был кэш чтения, в современных SMR накопителях выполняет также функции кэш записи и
промежуточного буфера при обновлении “лент”.
Рис. 4.1
После получения доступа к терминалу следует при необходимости подгрузить в ОЗУ накопителя
технологические оверлеи (если они не считываются с поверхности SA), проверить работоспособность записи
системных головок на соответствующих файлах микропрограммы, зарезервировать критичные модули/файлы
микропрограммы 1, проверить читаемость / корректность критичных для загрузки накопителя файлов.
Отдельно следует рассмотреть зависание при запуске гибридных накопителей, в частности, Kahuna. Для
них кроме стандартного для HDD набора неисправностей добавляются проблемы, специфичные для
накопителей на NAND памяти. Подробнее о работе с гибридными накопителями будет рассказано в главе 4.4
Неисправности гибридных накопителей. Семейство Kahuna, модели STxxxLM014, STxxxLM000.
Рис. 4.2
1Либо при помощи специального режима резервирования ресурсов, либо вручную, адресно, используя
доступ к файлам микропрограммы из мастера просмотра объектов SA.
Clump Parametrics:
Clump = 0008
DataType = 00FF
ModeFlag = 03
EraseCount = FFFFFFFF
EraseFailCount = 07
ProgramFailCount = 07
WeakReadCount = 1F
UncorrectableECCError = 07
Далее могут выводиться ещё какие-либо данные, касающиеся NAND cache, но в итоге, не выходя в готовность,
накопитель зависнет и по терминалу.
Обе ситуации характерны тем, что с накопителем невозможно работать ни по ATA, ни по терминалу. Для
решения этой проблемы нами был разработан механизм настройки ПЗУ, позволяющий получить доступ к терминалу
накопителя и попытаться проинициализировать NAND.
Этот механизм доступен из мастера Инструменты – Расширения утилиты – Работа с образом Flash ПЗУ.
Вначале следует прочитать из Boot Code mode ПЗУ накопителя. Хотя утилита сохраняет его в профиль накопителя с
именем, содержащим серийный номер HDD, извлечённый из образа, и хэш данных образа, рекомендуется
зарезервировать его в отдельное хранилище, так как информация в ПЗУ уникальна и критична для запуска HDD. При
этом в протокол утилиты будет выведена информация, аналогичная приведённой ниже.
Сохранение ПЗУ в папку
Файл : ...
Parsing container segment....... Flash ROM image
Segment: CFW
Parsing segment....... CFW
End parsing segment... CFW
Segment: IAP
Parsing segment....... IAP
End parsing segment... IAP
Segment: SFW
Parsing segment....... SFW
End parsing segment... SFW
Segment: SHELL
Parsing segment....... SHELL
End parsing segment... SHELL
Segment: CAP
Parsing segment....... CAP
End parsing segment... CAP
Segment: RAP
Parsing segment....... RAP
End parsing segment... RAP
Здесь следует обратить внимание на строку “Parsing segment....... CFW”. Если вместо неё будет “Parsing segment.......
11
1
BFW”, для работы с этими накопителями следует применить другую схему, которую опишем ниже.
Далее следует воспользоваться функцией настройки ПЗУ “Kahuna CFW patch 1”.
Рис. 4.3
F3 T>
В случае, если получить приглашение командного режима T> не удаётся, скорее всего, проблемы с NAND
имеют аппаратный характер и для работы потребуется донорский контроллер, в который следует записать
настроенную ПЗУ пациента.
Далее, следует подать накопителю в терминале команду
F3 O>I1
Flash and Parametric Table was erased and ALF Tables have successfully been initialized
F3 O>
Если команда отработала без ошибок, записываем в накопитель оригинальную ПЗУ пациента и пытаемся его
запустить. Если сброс данных NAND flash прошёл успешно, то SSHD запустится и можно приступить к работе со
служебной зоной и данными пользователя. Если после переключения питания накопитель по-прежнему проявляет
признаки проблем с NAND flash, следует повторно записать настроенное “Kahuna CFW patch 1” ПЗУ пациента и после
получения доступа к терминалу попытаться проинициализировать данные NAND flash при помощи второй группы
команд, приведённых ниже.
F3 N>I0
F3 N>B0
F3 N>E0,1,f,1
F3 N>
В случае если команды отработали без ошибок, следует записать в контроллер оригинальное ПЗУ пациента,
переключить питание и проанализировать поведение накопителя. Если SSHD вышел в готовность, работаем со
служебной зоной и пользовательскими данными. Если в ходе выполнения команд возникли ошибки, после
переключения питания накопитель по-прежнему проявляет признаки проблем с NAND, следует воспользоваться
донорским контроллером.
4.4.1. Дополнение.
Ситуация 1. Если при помощи родной микропрограммы не получается проинициализировать NAND, можно
попытаться заменить микропрограмму ПЗУ на донорскую, импортировав в ПЗУ донора адаптивы пациента. Далее
следует проверить, что донорское ПЗУ умеет работать с ALF bridge имеющегося в наличии контроллера, записав в
него полученное ПЗУ и проанализировав сообщение после переключения питания. Если ALF bridge поддерживается,
следует загрузить лоадером через терминал в ОЗУ оверлеи донорской микропрограммы и проделать описанные выше
манипуляции по инициализации NAND.
Ситуация 2. Если при чтении оригинального ПЗУ в протокол будет выведено “Parsing segment....... BFW”, это
значит, что микропрограмма данного накопителя содержит DISK FW и описанный механизм к ней неприменим. Что
не означает тупика. Для решения проблемы можно попытаться воспользоваться сменой микропрограммы на версию
без DISK FW. При этом критерий допустимости: адаптивы перенеслись из ПЗУ пациента в ПЗУ донора и после
записи полученного образа накопитель не выводит в терминал сообщения о неверном или неподдерживаемом ALF
bridge. Далее ситуация аналогична ситуации 1 данного дополнения.
♦ нарушение контакта между платой контроллера и гермоблоком в разъёме подключения коммутатора- 1011010101100110011010101011010101111010111
11010101101101010100111110
предусилителя (окисление контактов и т.д.), Рис. 4.4; 1101110110110011
0111011110
♦ повреждение служебной информации (SMART, G-List, транслятор, MCMT, логи HDD…). 111101
011
11
1
Рис. 4.4
Рис. 4.5
В разделе 3 приведен метод проверки того, что плата «родная». На данный момент не существует методик
восстановления накопителя при потере родной платы (при этом теряется ПЗУ с уникальными адаптивами).
Если нарушен контакт, попробуйте очистить разъём, например, при помощи канцелярского ластика (см. Рис. 4.5).
Если повреждены магнитные головки, то HDD обычно «стучит» при подаче питания. Рекомендуется
заменить неисправный блок головок.
Внимание! Перед тем, как писать что-либо в служебную информацию на поверхности дисков, следует
убедиться, что запись функционирует корректно. Для этого следует модифицировать по системным головам модули
или служебные файлы, помеченные как “Drive Self Test (DST), Head xx”, либо “Data Integrity Check (DIC), Head xx”.
Если изменения записались и после этого прочитались, можно дальше работать с модификацией SA.
Для диагностики повреждений служебной информации следует проверить следующие объекты:
• Файл служебной информации vol 0x03, FIF 0x301. Если он не читается, либо вписать его из
ресурса другого HDD, либо создать файл соответствующего размера, заполненный нулями (0x00),
и вписать его.
• Файл служебной информации vol 0x03, FIF 0x132. Если он не читается, следует вычитать его с
игнорированием ошибок чтения, и не прочитавшиеся сектора заполнить нулями и вписать обратно.
1 SMR – Shingled Magnetic Recording – “Черепичная запись”. На данный момент наиболее яркие
представители таких накопителей – HDD семейств Rosewood 8C/A5, Crawford
Рис. 4.6
Для вычитывания транслятора в мастере “Просмотр объектов SA” считываем его либо по ATA как модуль
0x2B / файл vol 3 FID 0x28, либо по терминалу как файл vol 3 FID 0x28 в режиме игнорирования ошибок
чтения. При этом в протокол будут выведены все номера не считавшихся физ. секторов, а их содержимое в
дампе hex редактора будет заполнено паттерном DE AD. Далее, пользуясь закладкой “SA LBA” 1 этого же
мастера производим вычитывание не прочитавшихся ранее секторов в режиме Error recovery / Ignore read error.
Необходимо обратить внимание, стабильно ли читаются вычитываемые области, соответствуют ли они
структурам модуля. Если чтение нестабильно, следует путём анализа данных и статистической обработки
собрать соответствующие блоки. Полученные данные следует вставить вместо соответствующих областей
вычитанного ранее модуля транслятора. Необходимо иметь в виду, что некорректно собранный модуль может
вызвать зависание накопителя. Кроме того, после записи некорректно собранного модуля повторно попытаться
его вычитывать по понятным причинам бессмысленно.
Рис. 4.7
Рис. 4.8
Рис. 4.9
После вычитывания и первоначальной сборки модуля транслятора следует перейти к его коррекции на
уровне логической структуры (восстановление функционирования). Для этого следует проверить его
контрольную сумму. Как было указано выше это – сумма слов (word) по всему объёму модуля. Если она равна
нулю, переходим к записи модуля транслятора. Если нет, необходимо её восстановить. Для этого в поле
контрольной суммы сначала вписываем word 0x0000, затем выделяем все данные и вызываем плагин “Сумма
слов (только выделенное)”
Рис. 4.10
Рис. 4.11
И вписываем его в поле контрольной суммы в порядке байт small endian (младший - старший). Так как
контрольная сумма достаточно простая, в качестве неё можно использовать любую незанятую область,
относящуюся к G-List (визуально определяется как значительная область, заполненная байтом 0xFF). При этом
при разрушении заголовка G-List можно первые 32 его байта заполнить нулями, а далее разместить поле
подгонки контрольной суммы.
Рис. 4.12
Рис. 4.13
Запись модуля транслятора. Следует иметь в виду, что у некоторых накопителей, в частности семейства
rosewood, технологическая команда записи системных файлов изъята их микропрограммы как при работе по
ATA, так и по терминалу. Вследствие этого транслятор следует записывать как модуль (либо для записи как
файл – в режиме indirect для ATA, фактически, работающей с командой записи модулей, которой опосредовано
подсовывается дескриптор необходимого файла).
4.6.2. Проверка MCMT.
Необходимо проверить читаемость MCMT (Media Cache Management Table) - модуля 0x50 (файл
служебной информации vol 3 FID 0x348 1). Если он читается, пропускаем действия по вычитыванию и
переходим к восстановлению его функционирования.
Если модуль MCMT не читается, пытаемся его вычитать.
Наиболее часто повреждается начальная область модуля MCMT, содержащая его заголовок. Для быстрого
вычитывания можно попытаться прочесть файл MCMT (vol 3 FID 0x348) от смещения 0x1000 = 4096 до конца.
Рис. 4.14
Рис. 4.15
Рис. 4.16
Рис. 4.17
После вычитывания и первоначальной сборки модуля MCMT следует перейти к его коррекции на уровне
логической структуры (восстановление функционирования). Для этого следует воспользоваться плагинами
Hex редактора – MCMT \ Parser, MCMT \ Edit, MCMT \ Import extents info.
Рис. 4.18
♦ MCMT \ Parser.
Рис. 4.19
Предназначен для разбора считанного модуля MCMT. Выводит в протокол цепочку экстентов (ещё не
выгруженные в пользовательскую область данные), возможно сохранение информации об экстентах в формате
карты DE. Выводит в протокол список записей MCMT с флагом, означающим, что эти данные ещё не выгружены
в пользовательскую область (помогает проконтролировать цепочку экстентов – в обоих списках должны быть
одни и те же записи), возможно сохранение информации об экстентах в формате карты DE. Выводит в протокол
список записей MCMT с флагом, означающим, что эти данные уже выгружены в пользовательскую область,
возможно сохранение информации об экстентах в формате карты DE. Анализирует записи MCMT и выводит в
протокол возможные цепочки описателей – стартовая запись / финишная запись.
Вывод в протокол списка экстентов позволяет оценить его целостность до того, как он будет записан в
накопитель, что позволяет в случае сомнений ещё раз перечитать повреждённые области и избежать
завешивания HDD в случае повреждённой цепочки. Сохранение списка в формате карты DE позволяет
разделить вычитывание пользовательской области по регионам, ещё находящимся ТОЛЬКО в Media Cache
• Отключить Media Cache и вычитать данные без него, а затем включить и дочитать адресно то,
111101
011
11
1
что находится в Media Cache. Полезно в случае повреждённых накопителей, в том числе
зависающих при работе Media Cache. Как минимум, карта экстентов позволяет оценить, какие
области и, соответственно, какие данные будут некорректными при отключении Media Cache.
В идеале позволяет быстро вычитать интересующие регионы пользовательской области,
сориентироваться по картам необходимых объектов и, построив их пересечение с картой
экстентов, включив Media Cache, получить адресный доступ данным, хранимым только в нём.
• Вычитать данные, хранящиеся только в Media Cache, как самые уязвимые на повреждённом
диске, а затем отключив Media Cache, дочитать остальное. Этот подход позволяет в начале
процедуры скопировать наиболее уязвимые данные, после чего зафиксировать их состояние в
отключённом Media Cache. Кроме того, его отключение благотворно влияет на стабилизацию
состояния накопителя в процессе вычитывания оставшихся данных, как и отключение
Autoreassign – отключаются механизмы, могущие привести к сбоям в работе HDD,
исключается излишняя запись в SA
• Различные комбинации описанных выше двух вариантов в объединении с оптимальными
стратегиями вычитывания данных, описанными в документации к DE.
Сравнение списка описателей MCMT с флагом “ещё не выгружено”, как уже отмечалось выше,
позволяет оценить валидность цепочки экстентов. Начальная запись и количество звеньев цепочки
фиксируется в заголовке MCMT, каждая запись указывает на последующую. Таким образом, отсутствие
“ещё не выгруженных” записей, не включённых в цепочку экстентов, говорит в пользу её целостности.
В случае, когда мы имеем дело с сильно повреждённой MCMT может случиться так, что в цепочке из-
за повреждений будет разрыв. Режим поиска возможных цепочек позволяет найти потенциальные
“обрывки” цепочки экстентов и осуществить их ручное сшивание (оконный редактор описателя единичного
экстента будет добавлен в ближайшее время). Также возможно подключение в качестве цепочки экстентов
цепочки описателей данных Media Cache, уже когда-то выгруженных в пользовательскую зону. Хотя,
фактически, это уже “прошлая жизнь”, и данные уже, скорее всего, невалидны, такая возможность может
быть полезна как для Forensics (извлечение когда-то целенаправленно стёртых данных), так и при попытке
восстановления после срабатывания вирусов (шифровальщиков / удаляющих данные). Подключение
цепочек возможно через плагин MCMT \ Edit.
♦ MCMT \ Edit.
Рис. 4.20
Предназначен для модификации заголовка MCMT. Позволяет указать число экстентов, номер
стартового описателя цепочки экстентов, привести описатель-валидатор в конце MCMT в соответствие с
заголовком MCMT. Для чего может потребоваться изменить номер стартового экстента, было описано в
части документации, описывающей MCMT \ Parser. При восстановлении MCMT часто встречается
ситуация, когда заголовок не читается. При этом заголовок и тело MCMT, фактически, были записаны в
разные сессии. Заголовок и тело MCMT имеют поля с временной меткой сессии. Если метки времени /
сессии не совпадают в заголовке и теле MCMT микропрограмма фиксирует его повреждение и перестаёт
работать по ATA (на все команды выдаётся ABR). В этом случае следует вычитать и починить MCMT,
после чего командой терминала инициализировать ТОЛЬКО управляющую таблицу, не очищая хранилище
данных Media Cache, что позволит в дальнейшем получить к ним доступ. Данная команда - “C>U10” -
подаётся в терминале в командном режиме:
1 Внимание! Цепочки сохраняются в Host LBA – размере логического сектора из паспорта дтска.
MCMT Save:Pass
MCInitialize: Init complete:
F3 C>
После инициализации MCMT и переключения питания в случае отсутствия иных повреждений работа в
технологическом режиме по ATA будет восстановлена.
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
MCMT Save:Pass
MCInitialize: Init complete:
F3 C>
Внимание! Использование для инициализации Media Cache команды команда - “C>U2” – приведёт как к
инициализации MCMT, ТАК И К ПОЛНОМУ СТИРАНИЮ ПОЛЬЗОВАТЕЛЬСКИХ ДАННЫХ,
НАХОДЯЩИХСЯ В Media Cache! В связи с этим, использовать её при работе с SMR накопителями СТРОГО
НЕ РЕКОМЕНДУЕТСЯ!
После инициализации MCMT и переключения питания в случае отсутствия иных повреждений работа в
технологическом режиме по ATA будет восстановлена.
После записи MCMT и переключения питания следует проверить корректность работы накопителя по
поведению (зависает или нет, доступен ли командный терминальный режим), по доступности технологических
ATA команд, по доступности данных в LBA в начале и конце пользовательской зоны. Также следует проверить
работу Media Cache, запросив командой информацию о его содержимом.
MediaTableExtentCount 00000002
F3 C>
Здесь видно, что в Media Cache хранится цепочка данных, описываемая двумя экстентами, Host LBA адреса
которых соответственно 0x747067FF и 0x0074706D8F. Для Host LBA размер логического сектора соответствует
описанию в паспорте накопителя. Для Native LBA размер единичного сектора соответствует размеру
физического сектора поверхности. Это следует учитывать при работе с картами и адресным чтением данных.
Рис. 4.21
При выборе режима «Первый запуск» будет выведен запрос на сохранение резервной копии служебной
информации (что и в какую папку сохранять; с последующим резервированием), будут отключены в SA
Autoreassign, отложенное скрытие дефектов, Offline самотест, определён тип команды скрытия дефектов и
пересчитан базовый транслятор. Далее будет осуществлён старт сканирования поверхности, начиная с LBA = 0.
При выборе режима «Продолжить (с LBA)» сканирование будет продолжено начиная с LBA, введённого в
диалоге. Если прервать процесс тестирования, утилита запоминает в данных профиля LBA, на котором
сканирование было остановлено, и при последующем запуске предложит начать с него.
Переключатель «Учитывать P-List» должен быть в отмеченном состоянии, если P-List накопителя
корректен. Если P-List искажён (к примеру, ошибочными переносами из G-List), его следует разотметить.
Переключатель «При неоднозначности скрывать «левый» UNC» позволяет автоматически обрабатывать
ситуации, когда алгоритм не может достоверно опознать тип «вилки» ввиду того, что области с расхождением
трансляции непосредственно предшествует некоторое количество нечитаемых (UNC) секторов (их содержимое
недоступно для анализа алгоритмом).
Переключатель «Обрабатывать “32 byte tail” bug» указывает утилите не анализировать последние 32 байта
каждого сектора, которые искажаются некоторыми FW при технологическом чтении.
Переключатель «Подавать Reset после скрытия» указывает утилите, что после каждого добавления
дефектов в транслятор для актуализации его состояния следует подавать Soft Reset.
Также в диалоге задаётся имя файла с «вилками трансляции», куда в процессе сканирования будут
сохраняться найденные узлы. В случае необходимости в дальнейшем пересчёта транслятора только с учётом
P-List этот список позволит восстановить пользовательскую трансляцию, выполнив на нём операцию скрытия
дефектов в транслятор.
Алгоритм действует полностью автоматически и потребует вмешательства оператора только в том случае,
если не сможет однозначно определить тип скрываемого в транслятор узла. В этом случае будет выдано
соответствующее сообщение с предложением разрешить неоднозначность вручную 1.
По окончании работы алгоритма будет выведен список найденных «вилок» трансляции. ЕГО НЕ СЛЕДУЕТ
СКРЫВАТЬ В ТРАНСЛЯТОР! Он предназначен ТОЛЬКО для двух целей – ознакомительной и быстрого
восстановления состояния в том случае, если по какой-то причине результат работы алгоритма потерян.
1 – Не забудьте при этом дополнить список найденных узлов. Это позволит в будущем корректно
автоматически продолжить восстановление транслятора.
Рис. 4.22
Данная функция необходима в случае, когда корректное полное восстановление трансляции по всей
поверхности накопителя по тем или иным причинам невозможно или осложнено. В частности, при
многочисленных BAD-ах до области, в которой расположены искомые данные (например, чтением «через
утилиту» найден искомый второй раздел, либо тело необходимого файла). В этом случае возможно, постоянно
отслеживая требуемую позицию поверхности, постоянно скрывать перед ней сектора до тех пор, пока она не
станет читаемой «по логике». Для этого и предназначена описываемая здесь функция. После того как она
успешно отработает, мы получим ситуацию, когда начало необходимой нам области уже читается. Далее можно
попытаться восстановить дальнейшую трансляцию в автоматическом режиме, воспользовавшись описанной в
предыдущем пункте функцией 1.
Переключатель «Сброс транслятора» позволяет при запуске режима пересчитать транслятор в исходное
состояние. Это необходимо в том случае, если режим запускается в первый раз и необходимо удалить
результаты предыдущих неудачных попыток восстановления.
Переключатель «Учитывать P-List» указывает, использовать ли при работе режима информацию из P-List.
Позволяет в случае существенных расхождений в имеющемся P-List с рабочим исключить его из рассмотрения
и далее использовать такой же режим при использовании автомата полного восстановления транслятора.
Переключатель «Подавать Reset после скрытия» указывает утилите, что после каждого добавления
дефектов в транслятор для актуализации его состояния следует подавать Soft Reset.
«LBA для проверки» задаёт положение контролируемой в процессе работы режима точки.
«Предельная длина цепочки дефектов» задаёт предельный размер непрерывной скрываемой области.
Данный параметр необходим для предотвращения автоматического скрытия накопителем трека при
определённом количестве скрытых LBA, что нарушило бы работу алгоритма. При наборе соответствующего
числа скрытых LBA утилита автоматически сдвинет область скрытия LBA (перед контролируемой) на «Шаг
между цепочками» влево.
1– Для этого её надо будет запустить в режиме работы продолжения с LBA, уже поставленного на его
исходную позицию.
с промежуточной трансляцией в PCHS, причём обращения к данным будут идти в по-секторном режиме 2. В
результате чтение данных будет идти существенно медленнее, чем в UDMA режиме!
После описанной выше настройки задачи можно приступить к восстановлению данных, руководствуясь
документацией Data Extractor, описывающей режим восстановления транслятора.
Внимание! Некоторые версии FW некорректно возвращают данные при технологическом чтении. В частности,
могут быть повреждены последние 32 байта каждого сектора. Для HDD с физическим сектором в 4096 байт данные
могут отдаваться со сдвигами и частичным повреждением “мусором’.
1– SCT (SMART Command Transfer) – передача дополнительных команд через сектора данных стандартных
ATA команд работы с логами SMART (подробнее см. ATA спецификацию).
2– В связи со спецификой чтения при нарушенном трансляторе – каждый сектор будет читаться отдельно с
возвратом состояния ошибки – нарушение трансляции.
3 SMR – Shingled Magnetic Recording – “Черепичная запись”.
4 – При чтении сектора с ошибкой микропрограмма накопителя выдаёт в терминал сообщения с кодами:
03110081 – реальный UNC сектор; 04090082 – ошибка адресации (транслятор «разошёлся»). Данных о номере
LBA, под которым сектор был записан, большинством микропрограмм не выводится (IOEDC error).
Рис. 4.23
После того как положение скрываемой области относительно UNC определено, следует занести
информацию о ней в транслятор, используя редактор дефектов утилиты.
Следует создать в списке запись о дефекте с соответствующими началом и длиной, после чего вызвать из
контекстного меню команду «Скрыть в Slip-List» (Рис. 4.24). По завершении операции при условии правильного
выбора скрываемой области чтение пользовательских данных станет доступно до следующей «вилки».
Рис. 4.24
Внимание! Записи в Non Resident G-List могут описывать как единичные сектора, так и их цепочки. Причём
длина такой цепочки может покрывать до нескольких треков 4. В связи с этим с одной стороны следует перед
любыми операциями с транслятором резервировать Non Resident G-List, с другой стороны нельзя однозначно
рекомендовать его очистку перед восстановлением, т.к. это может привести к длительному процессу скрытия
тысяч секторов дефектного трека, а то и невозможности полноценного восстановления.
Так как случаи скрытия в Non Resident G-List треков нередки, опишем ниже методику их определения и
быстрого скрытия. В случае, если автоматическое восстановление останавливается в связи с достижением
максимальной длины скрытой цепочки, можно предположить два варианта – “лишний дефект” и длинная,
зачастую трековая цепочка. Рассмотрим последний вариант. Предположим, транслятор разошёлся на LBA =
10 000 000. Для дальнейшей диагностики нам потребуется перевести это число в шестнадцатеричный вид. LBA
= 10 000 000 = 0x00989680. Во-первых, определим физические координаты данного LBA, для чего
воспользуемся командой терминала A>Faaaa,bbbb,,10, т.е. команда F с уровня A>, параметры которой – aaaa и
1– Здесь следует говорить о записях с флагом, отличным от 0 (чаще всего 0x20), т.к. записи с флагом, равным 0
удаляются при пересчёте транслятора по P-List.
2В последнем случае соответствующая запись P-List находится и удаляется, исходный “вырез”
компенсируется добавлением соответствующей записи в Non Resident G-List.
3 – Либо пересчитать транслятор по P-List, удалить файл FoundForks.lba и запустить автомат с LBA = 0.
4В частности, у накопителей Rosewood в Non Resident G-List присутствуют цепочки длиной в несколько
тысяч треков.
A>F98,9680,,10
Приведём пример её исполнения накопителем:
F3 A>F98,9680,,10
Track Info:
Partition PhyCyl LogCyl NomCyl RadiusMils LogHd Zn LogicalTrack FirstLba
User 0000111B 0000111B 00001068 +1.771750E+3 04 01 FFFFFFFFFFFF 0000009895D9
Sector Info:
LBA PBA LogSec PhySec Wdg SFI Split Burst
000000989680 00000098AF27 00A7 00A7 011E 000C84DF 06D8:0513 011F
000000989681 00000098AF28 00A8 00A8 011F 000C9123 05C5:0626 0120
000000989682 00000098AF29 00A9 00A9 0120 000C9D67 04B2:0739 0121
000000989683 00000098AF2A 00AA 00AA 0121 000CA9AB 039F:084C 0122
000000989684 00000098AF2B 00AB 00AB 0122 000CB5EF 028C:095F 0123
000000989685 00000098AF2C 00AC 00AC 0123 000CC233 0179:0A72 0124
000000989686 00000098AF2D 00AD 00AD 0124 000CCE77 0066:1(0AF1):0094 0125
000000989687 00000098AF2E 00AE 00AE 0126 000CDAFB 0A44:01A7 0127
000000989688 00000098AF2F 00AF 00AF 0127 000CE73F 0931:02BA 0128
000000989689 00000098AF30 00B0 00B0 0128 000CF383 081E:03CD 0129
00000098968A 00000098AF31 00B1 00B1 0129 000CFFC7 070B:04E0 012A
00000098968B 00000098AF32 00B2 00B2 012A 000D0C0B 05F8:05F3 012B
00000098968C 00000098AF33 00B3 00B3 012B 000D184F 04E5:0706 012C
00000098968D 00000098AF34 00B4 00B4 012C 000D2493 03D2:0819 012D
00000098968E 00000098AF35 00B5 00B5 012D 000D30D7 02BF:092C 012E
00000098968F 00000098AF36 00B6 00B6 012E 000D3D1B 01AC:0A3F 012F
F3 A>
Здесь мы видим, что искомый LBA лежит на треке PhyCyl = 111B, головке 4, сектор Log Sec = A7, причём
на данном треке логических секторов LogSecs = 165. Произведём анализ полученной информации. Если до
точки расхождения транслятора на протяжении 0xA7 LBA (т.е. от LBA = 0x9895D9 до LBA = 0x989680)
прописаны нули, а за один LBA до этого (LBA = 0x9895D8) – данные, то с высокой вероятностью мы нашли
скрытый Post Process-ом трек. Для дальнейшей проверки сложим LBA начала трека с его длиной 0x9895D9 +
0x165 = 0x98973E. Если полученный LBA прочитать «через утилиту»2, то мы должны увидеть продолжение
пользовательских данных 3.
Приведём ещё один пример. Предположим, ненулевые данные пользователя идут до LBA = 9999832, после
чего идёт нечитаемая область, либо короткая область, заполненная нулями, после чего идёт расхождение
трансляции. Произведём анализ. LBA = 9999832 = 9895D8. Подадим соответствующую команду трансляции
LBA «в физику»:
F3 A>F98,95D8,,10
Track Info:
Partition PhyCyl LogCyl NomCyl RadiusMils LogHd Zn LogicalTrack FirstLba
User 000010E0 000010E0 0000107B +1.771687E+3 03 01 FFFFFFFFFFFF 000000989428
Sector Info:
1 – Параметр 10 задаёт количество LBA для трансляции в шестнадцатеричной форме. В данном случае 10
означает, что будет оттранслировано 0x10 = 16 секторов.
2 – Следует помнить, что в командном режиме терминала HDD не может исполнять ATA команды, поэтому его
следует переключить командой [Ctrl] + [R] или [Ctrl] + [T].
3– Если скрыт не один трек, для проверки может потребоваться заглянуть и дальше. Критерий поиска – шаг на
размер трека, причём данные должны начаться сразу в его начале.
Sector Info:
LBA PBA LogSec PhySec Wdg SFI Split Burst
0000009895D9 00000098AE80 0000 0000 0067 000480BF 0AF1:00FA 0068
0000009895DA 00000098AE81 0001 0001 0068 00048D03 09DE:020D 0069
0000009895DB 00000098AE82 0002 0002 0069 00049947 08CB:0320 006A
0000009895DC 00000098AE83 0003 0003 006A 0004A58B 07B8:0433 006B
0000009895DD 00000098AE84 0004 0004 006B 0004B1CF 06A5:0546 006C
0000009895DE 00000098AE85 0005 0005 006C 0004BE13 0592:0659 006D
0000009895DF 00000098AE86 0006 0006 006D 0004CA57 047F:076C 006E
0000009895E0 00000098AE87 0007 0007 006E 0004D69B 036C:087F 006F
0000009895E1 00000098AE88 0008 0008 006F 0004E2DF 0259:0992 0070
0000009895E2 00000098AE89 0009 0009 0070 0004EF23 0146:0AA5 0071
0000009895E3 00000098AE8A 000A 000A 0071 0004FB67 0033:1(0AF1):00C7 0072
0000009895E4 00000098AE8B 000B 000B 0073 000507EB 0A11:01DA 0074
0000009895E5 00000098AE8C 000C 000C 0074 0005142F 08FE:02ED 0075
0000009895E6 00000098AE8D 000D 000D 0075 00052073 07EB:0400 0076
0000009895E7 00000098AE8E 000E 000E 0076 00052CB7 06D8:0513 0077
F3 A>
Здесь мы видим, что единственный читаемый LBA лежит на одном треке, а следующие 15 – на
следующем. Это является одним из признаков скрытого трека. Как и в предыдущем примере, проверим наличие
данных через трек – в LBA = 0x9895D8 + 0x165 (LogSecs) = 0x98973D.
Соответственно, воспользовавшись редактором Non Resident G-List, мы можем добавить запись о треке – от
PBA = (FirstPba начала трека) 0x98AE80 длиной (Log Secs) = 165, после чего очистить G-List и пересчитать
транслятор «с учётом G-List» для применения изменений в Non Resident G-List. Для упрощения работы можно все
дефекты отмаркировать флагом 20. В этом случае они не будут стёрты при пересчёте транслятора по P-List. Далее
следует переключить HDD в ATA режим и подать Soft Reset или переключить питание накопителя.
В случае, если в районе расхождения транслятора ненулевые пользовательские данные не записаны, данная
методика, к сожалению, неприменима.
Внимание! Все используемые выше LBA представлены в секторах накопителя, т. о., если сектор накопителя
вмещает 4096 байт, т.е. 8 хост-секторов, то ATA LBA следует привести к Native LBA делением на 8. Кроме
того, если сектор накопителя не 512 байт, LBA = 0 может быть смещён на так называемый фактор
выравнивания (или 1 или 0) и на размер Media Cache при его размещении в начале пользовательской зоны.
F3 T>m0,6,2,,,,,22
F3 T>V4
Reassigned Sectors List Enabled
Entries: 2BE0, Alts: 01D3, Removed: 0000,
Pending: 2A31 Host Pending: 5188
Idx LBA PBA LLLCHS of LBA Wdg PLPCHS of PBA SFI Hours Msecs ...
0000 0000026574B3 00000E9A2285 00AC6E.0.0056 000 054806.0.00BD 02E3F1 02335 15712C ...
0001 0000026574BF 00000E9A226D 00AC6E.0.0062 000 054806.0.00A5 01B754 02335 1081AF ...
...
0063 00000A586A5B 00000A58D68A 033C84.0.008D 000 033C84.0.008D 075F06 022C7 1F9B86 ...
DiagError 00000027
DiagError 00000027
...
Означает повреждение структуры Alt-List (G-List). В этом случае следует зарезервировать модуль
транслятора (0x2B, “R/W Operating Parameters (translator, etc)”), проверить работоспособность записи по
системным головам на модулях проверки записи (0x22, “Drive Self Test (DST), Head 0”; 0x23, “Drive Self Test
(DST), Head 1”), подать команду очистки Alt-List “T>i4,1,22” и переключить питание накопителя.
SATA Reset
следует проверить читаемость файла служебной информации vol 0x3, fid 0x17A. Если он не читается,
необходимо либо вписать его из ресурса другого HDD, либо создать файл соответствующего размера,
заполненный нулями (0x00), и вписать его.
Rst 0x10M
RW: Disc Ctlr Initialization Completed.
SATA Reset
Внимание! Пересчёт транслятора как и сброс G-List (командой терминала - “T>i4,1,22”) на SMR дисках
может привести к фатальным для доступа к данным последствиям (в числе прочего, произойдёт инициализация
Media Cache, что может привести к обширной потере критичных данных). Следует использовать все доступные
возможности восстановления модуля, не прибегая к пересчёту или инициализации.
Rst 0x10M
RW: Disc Ctlr Initialization Completed.
SATA Reset
свидетельствует о повреждении контрольной суммы супер-файла транслятора. Как правило, это происходит в
результате попадания мусора у область хранения G-List. В большинстве случаев помогает коррекция контрольной
суммы. Если это не помогло, см. рекомендации из главы 4.11 Sim Error 2041 / RW Error 00000080.
1 Один из методов ручной коррекции – восстановление контрольной суммы файла. При этом
предполагается, что повреждение КС вызвано данными, некритичными для жизнеспособности диска.
2 Подробнее о сращивании и коррекции контрольной суммы см в главе 4.6.1 Проверка транслятора.
свидетельствует о том, что было произведено изменение паспорта накопителя в момент, когда HDD находился в
состоянии Format Corrupt. Для решения этой проблемы необходимо либо записать эталонный Saved Mode
Pages 1 из донорского ресурса 2, либо сначала убрать состояние Format Corrupt любым доступным способом (к
примеру, воспользовавшись пунктом меню Тесты – Работа со служебной зоной – Транслятор – Сбросить
флаг “Format Corrupt”), а затем изменить паспорт через команду T>F,,22 3.
ATA 15 Cmds
Ts(ms) dT(ms) Op Cnt LBA
0 99999999 00 0000 000000000000
0 0 00 0000 000000000000
...
0 0 00 0000 000000000000
RW 32 Cmds
Ts(ms) dT(ms) xT(ms) Type Option Mode St EC Info
1098 99999999 1 04 005041 000000 1 00000080 SRV_MEM Type 8 Addr 04001998 Cnt 0004
1099 1 0 04 005041 000000 1 00000080 SRV_MEM Type 6 Addr 0000001D Cnt 0001
1099 0 0 04 005041 000000 1 00000080 SRV_MEM Type 8 Addr 040019A0 Cnt 0004
1099 0 0 04 005041 000000 1 00000080 SRV_MEM Type 6 Addr 000000E7 Cnt 0001
1099 0 1 04 005041 000000 1 00000080 SRV_MEM Type 8 Addr 040019A8 Cnt 0004
1100 1 0 04 005041 000000 1 00000080 SRV_MEM Type 6 Addr 0618003B Cnt 0001
1100 0 0 04 005041 000000 1 00000080 SRV_MEM Type 6 Addr 00000025 Cnt 0001
1100 0 0 04 005041 000000 1 00000080 SRV_MEM Type 8 Addr 04001930 Cnt 0004
1100 0 1 04 005041 000000 1 00000080 SRV_MEM Type 6 Addr 00000007 Cnt 0001
1101 1 0 04 005041 000000 1 00000080 SRV_MEM Type 8 Addr 04001940 Cnt 0004
1101 0 0 04 005041 000000 1 00000080 SRV_MEM Type 6 Addr 000000A6 Cnt 0001
1101 0 0 04 005041 000000 1 00000080 SRV_MEM Type 8 Addr 04001958 Cnt 0004
1101 0 1 04 005041 000000 1 00000080 SRV_MEM Type 6 Addr 000000A7 Cnt 0001
1102 1 0 04 005041 000000 1 00000080 SRV_MEM Type 8 Addr 04001968 Cnt 0004
1112 10 8 12 005041 000000 1 00000080 TEMP 28 degC
1121 9 8 02 005041 000000 1 00000080 XFR WR SYS LBA B 0000000075AA L 00000001 …
1129 8 3 02 002241 000000 1 00000080 XFR RD SYS LBA B 000000008E55 L 00000001 …
В нём нас интересует последний блок – RW 32 Cmds. При его анализе следует обратить внимание на
колонку EC. В ней выводится код завершения команды: 80 соответствует успеху, другие коды – ошибке. В
колонке Info выведен тип операции: XFR – передача данных, RD – чтение, WR – запись, SYS – работа со
служебной зоной, USR – пользовательской. После слова LBA выводится адрес в LBA пространстве,
соответственно, служебной или пользовательской зоны. Для определения повреждённых системных файлов (sys
file) следует выделить ошибочно завершившиеся операции «XFR RD SYS». Располагая LBA координатой
завершившейся с ошибкой операции (поле LBA), следует выявить, к какому системному файлу она относится.
Это можно сделать двумя способами.
1) По команде терминала T>y 1. После подачи данной команды накопитель выдаст в терминал отчёт,
подобный приведённому ниже.
F3 T>y
Колонка Location содержит информацию о расположении файла, Size – о его размере. Нас интересуют
списки файлов vol 0 и vol 3. Выявив по информации о положении и размере необходимый файл, мы
получим информацию о его файловом дескрипторе (колонка FD) и разделе, в котором он
находится(Vol). Последние три символа дескриптора – файловый идентификатор (FID).
2) Также для выявления повреждённого sys file можно воспользоваться возможностями утилиты из
диалогового окна просмотра объектов служебной информации 1.
Рис. 4.25
Пункт выпадающего меню «Найти файл SA по LBA» позволит выяснить, каким файлам принадлежит выбранный LBA.
Рис. 4.26
1 Для генерации этой части отчёта признак ошибки сгенерирован искусственно (код 80 означает “прочитано успешно”) с целью показа функционала
5. Меню «Тесты»
1011010101100110011010101011010101111010111
11010101101101010100111110
1101110110110011
0111011110
111101
Меню содержит набор групп действий, необходимых для работы с HDD. Рассмотрим некоторые из них. 011
11
Вызывает диалоговое окно, отображающее состояние утилиты, позволяющее перечитать версию комплекта
служебной информации диска, списки DT из ОЗУ и ПЗУ, список модулей, перезапустить автонастройку и
изменить некоторые параметры работы утилиты (Рис. 6.1). При нажатии кнопок «обновить» произойдёт
перечитывание утилитой служебной информации накопителя. Это необходимо в том случае, если HDD
запускается не штатно (через изолирование контроллера или закорачивание канала).
Рис. 5.1
Группа данных о Media Cache включает MC State – состояние работы с Media Cache – включён / отключён /
не поддерживается, MC Size – размер области, отведённый под Media Cache, MCMT Ver – версия модуля
поддержки Media Cache.
Поле «Выравнивание физ. LBA» используется для накопителей с физ. сектором пользовательской
ёмкостью более 512 байт (например, 4096) и используется для сопоставления USER LBA = 0 с физическим
native LBA 1. В подавляющем большинстве случаев утилита верно определяет значение для этого поля. Однако
если оно определено неверно, возможно вручную выставить нужное число и зафиксировать галкой Lock.
1 – Например, некоторое время стандартом считалось такое выравнивание данных, что USER LBA = 63
приходился на начало физ. сектора при его размере 4096 байт. В этом случае фактор выравнивания = 1. При
этом USER LBA = 8 попадал на начало 8-го физ. сектора.
5.3. Лоадер
Подменю содержит две команды – Создать лоадер и Download Microcode.
1 Для того, чтобы попасть в Boot FW необходимо зажать на клавиатуре кнопку ESC и подать питание.
Накопитель выдаст сообщение вида “ESC - Remaining in BootFW” и выйдет в готовность. Внимание, в Boot
FW микропрограмма не поддерживает командный режим терминала (только ESLIP-MCT download), также
набор ATA команд ограничен командами получения паспорта накопителя, загрузки микрокода.
Рис. 5.2
Диалог предлагает выбрать файл-источник в профиле или базе данных. Для загрузки по ATA можно
выбрать режим загрузки – mode 7 1 – загрузка одним блоком или mode 3 – несколькими. Последний режим
введён в ATA стандарт для поддержки больших файлов обновлений, которые диск не может применить
целиком за один раз. Поддержка этого режима обозначается в паспорте накопителя, в соответствии с которым
утилита разрешает или нет режим блочной загрузки. Для загрузки по терминалу можно выбрать из списка
скорость работы с COM портом. Внимание! Поддержка возможности переключения скорости передачи
микропрограммой накопителя не гарантирована.
Кроме того, данный диалог позволяет вызвать редактор содержимого *.lod файла накопителей Seagate Arch
F3 (кнопка отмечена красным кругом). Пример диалога редактирования файла обновления микропрограммы
накопителя 7200.12 Pharaoh на версию СС49 приведён ниже.
Рис. 5.3
Рис. 5.4
После этого утилита добавляет в лоадер в начало и конец два блока – блок настройки и блок подписи (шаблон).
Рис. 5.5
Для того, чтобы лоадер, содержащий шаблон подписи, был загружен накопителем, уже работающим под
управлением Disk FW (есть доступ к командному режиму терминала), следует предварительно выполнить из мастера
работы с ПЗУ, прогруженного образом Disk FW команду отключения расширенного контроля загрузки лоадера.
1 Для того, чтобы аутентичность подписи не проверялась при загрузке в накопитель, воспользуйтесь функцией
отключения расширенной проверки лоадера в мастере работы с ПЗУ, загрузив в него Disk FW накопителя (см гл.
6.2 Работа с образом Flash ПЗУ.
Рис. 5.6
Функция «Переподключить COM порт» позволяет произвести пересоединение с выбранным в настройках
COM портом в случае переинициализации USB Terminal (отключением от USB и повторным подключением)
после его «зависания». Функции изменения скорости работы COM порта позволяют изменить скорость, на
которой идёт взаимодействие с терминалом накопителя.
Рис. 5.7
Рис. 5.8
Данное меню содержит набор функций, предназначенных для работы со служебной информацией
накопителя, расположенной как на плате контроллера, так и на поверхности дисков в гермоблоке.
Рис. 5.9
Данное действие доступно из основного меню «Тесты» → «Служебная информация». Его выбор позволяет
сохранить резервную копию служебной информации накопителя в его профиле в выбранной папке (по
умолчанию SABackup).
последних зафиксирован как vol 3, FID = 0x35). Оверлеи накопителя не являются уникальными и могут быть
взяты с другого HDD. То же можно сказать и о модулях конфигурации – Saved Mode Pages (module 0x2A),
Registry (module 0x13).
В случае выбора операции, работающей через Boot Code, будет предложено выполнить некоторые
действия, необходимые для инициализации HDD.
Рис. 5.10
Для переключения в автоматическом режиме достаточно нажать OK. В том случае, если утилита
автоматически не сможет переключить HDD в Boot Code, следует либо закоротить указанную на рисунке ламель
технологического разъёма контроллера накопителя на «землю» HDD, либо указанные выше (см. Рис. 6.8) ножки
ПЗУ между собой. На необходимость принудительного переключения может указывать сообщение об ошибке,
выводимое в протокол, содержащее текст Bogus ISR.
Запись ПЗУ...
Flash size is: 0x00080000
Flash type is: STM
Erasing...
Bogus ISR
CPSR = 0x600000D3
R14 = 0x00100A83
Рис. 5.11
Внимание! Владельцам PC USB Terminal версий 1 и 2 следует выбрать скорость работы не более 921600. Для
PC USB Terminal 3 в соответствующих семействах доступны более высокие скорости.
Параметр “размер образа не менее…” позволяет задать размер образа ПЗУ в случае, если автоматическое
определение работает неверно. Также в этом случае полезен параметр “Тип ПЗУ”, позволяющий выбрать
алгоритм чтения-записи ПЗУ вручную.
При запуске алгоритма подготовки утилита спросит режим разблокировки – Force Drive Setup State – ДА
или НЕТ. Если выбрать ответ ДА, накопитель при старте не будет запускать часть высокоуровневых сервисов,
что для повреждённого накопителя повысит шансы получить доступ к технологическому режиму и в итоге
решить проблему. Следует учитывать, что один из этих сервисов – запуск подсистемы шифрования
пользовательских данных, и, если накопитель работал в режиме FDE, данные при чтении не будут
декодироваться. В этом случае следует после решения основных проблем накопителя повторно произвести
разблокировку без Force Drive Setup State.
После того, как подготовка к разблокировке отработает, после каждой подачи питания накопитель будет
ожидать в терминале Tech Unlock handshake после загрузки с поверхности Disk FW, но до её запуска.
Внимание! Это позволяет на HDD без блокировки облегчить процедуры, связанные с корочением канала
чтения – ожидание происходит в момент, оптимальный для закорачивания (микрокод загружен,
конфигурационные данные из SA ещё не считаны).
Далее для получения доступа к технорежиму будет необходимо вызывать процедуру Handshake из
стартового диалога, или из меню действий на панели справа от основного окна (вручную), или из диалога
состояния утилиты (как ручной вызов, так и настройка для авто-обработки), или из действий утилиты для DE.
Чтение и запись DT позволяют, собственно, читать и писать Drive Tables 1. Операции модификации карт
головок в ОЗУ позволяют изменить в оперативной памяти накопителя соответствующие карты головок 2.
Функция «Изменение карты головок в ОЗУ» позволяет (если FW HDD это поддерживает) на лету в ОЗУ
изменить активную карту и при необходимости осуществить спаривание головок. Функция «Изменение карты
логических головок в ОЗУ» позволяет (если FW HDD это поддерживает) изменить карту соответствия
логических и физических головок и при необходимости осуществить спаривание.
Рис. 5.12
В случае если FW HDD не поддерживает карту трансляции логических головок в физические и вместо
указателя на активную таблицу трансляции физ. головок в коды коммутатора возвращает указатель на массив
карт для всех типов коммутаторов, следует использовать функцию «Изменение карт головок в ОЗУ». Она
откроет диалог редактирования всех доступных карт трансляции физ. головок в коды коммутатора в ОЗУ. При
этом для спаривания головок над каждой таблицей (строкой) следует производить одинаковые действия
(например, для спаривания – копирование i-той ячейки в j-тую).
Функция изменения флагов управления SAP в ОЗУ позволяет модифицировать такие управляющие
переменные SAP, как флаги режима позиционирования (Seek Mode), номер максимальной логической головки,
режим RRO (Repeatable Runout).
Рис. 5.7.11
Пример:
логических головок в физические заменить число 4 на число, соответствующее живой головке (к примеру, 1 =
0111011110
111101
лог. головка 1), либо в карте выбора кодов коммутатора заменить код e на код от живой головки (к примеру, b = 011
11
физ. головка 1 = лог. головка 1). То есть финальные карты головок будут выглядеть следующим образом: 1
Внимание! При работе с картами головок следует иметь в виду, что служебная информация локализована на
0й и 1й головках. Соответственно, исключать их обе нельзя, т.к. это нарушит функционирование HDD.
Также следует иметь в виду, что в то время, как присутствие в карте некоторой головки может
препятствовать прохождению калибровки при старте диска, чтение с неё после этого может быть и
допустимым. Для работы с такими HDD следует запускать накопитель с модифицированной в ПЗУ картой
головок, а после его инициализации возвращать исходную карту в ОЗУ накопителя – см. картинки
соответствующих диалогов ниже.
Рис. 5.15
Очистка паролей позволяет разблокировать HDD, защищённый паролем. В связи с продолжающимся
прогрессом в сфере индивидуальной защиты информации, производители HDD переходят к все более сложным
схемам инициализации накопителей, препятствующим несанкционированному доступу к данным пользователя.
В частности, HDD Seagate архитектуры F3 при установленном пароле блокируют технологические команды, что
осложняет процесс снятия пароля 2.
При создании утилиты были разработаны и реализованы три метода доступа к служебной информации: с
закорачиванием канала чтения, с изолированием разъёма шпиндельного двигателя, доступ к подсистеме
безопасности через терминал. Наиболее простым в использовании и не требующем дополнительных
манипуляций методом является разблокирование через терминал, в связи с чем он выбран в качестве
рекомендованного (в других методах потребуется в соответствующие моменты закоротить канал чтения или
отсоединить плату контроллера HDD). При его запуске с накопителя считывается некоторый объём служебной
информации, производится его анализ и предпринимается попытка использования полученной информации для
разблокировки накопителя.
1 – Результат изменений сохраняется в служебной зоне, и если при записи не были повреждены
соответствующие конфигурационные модули, новые настройки применятся после переключения питания HDD.
2 – HDD серий FDE – Full Data Encryption остаются за рамками статьи, это тема для отдельного исследования.
Рис. 5.16
Рис. 5.17
Во всех случаях утилита открывает HDD и снимет пароль штатными ATA командами («открыть
накопитель», «снять пароль»), используя найденные данные о пароле в автоматическом режиме. В том случае,
если утилита не смогла найти блок парольной информации, пользователю предлагается сохранить в файл
модуль реестра для последующего индивидуального ручного исследования.
Внимание! Для FDE накопителей разработка метода снятия пароля с сохранением пользовательских данных
находится в разработке. Кроме проблем блокировки доступа, ведётся поиск решения проблемы шифрования.
Рис. 5.18
При выборе соответствующего пункта меню запускается комплексный тест универсальной утилиты, по
результатам которого будет сформирован список найденных дефектов.
Рис. 5.19
Рис. 5.20
По завершении тестирования в отдельную закладку «Дефекты» будет выведен список найденных дефектов
и областей замедления. После этого в контекстном меню списка (появляется по нажатию правой кнопки мыши)
можно выбрать скрытие найденных дефектов в транслятор HDD. При этом модуль P-List не будет изменён.
Дефекты будут скрыты именно в трансляторе (как реализовано на конечном шаге заводского тестирования).
Для скрытия найденных дефектов выберите пункт меню «Скрыть в Slip-List» (Ctrl+1).
Рис. 5.21
редактор с полученным списком дефектов, который можно изменить и сохранить в файл или в накопитель.
Рис. 5.22
Рис. 5.23
Рис. 6.1
Закладка «Модуль» предоставляет доступ на чтение/запись модулей служебной информации HDD.
Возможен доступ как «по таблице» – из списка отсканированных (при старте или из диалога состояния утилиты)
модулей, так и непосредственно по идентификаторам модулей – «по ID». В последнем случае возможно
обращение к конкретной копии («1-я» и «2-я»). Возможно по-секторное чтение для вычитывания
повреждённых модулей.
После выбора модуля он считывается в стандартный hex редактор для просмотра и правки как вручную, так
и с помощью плагинов. Работа с ресурсами во встроенном hex редакторе утилит унифицирована и описана в
основной части документации.
Рис. 6.2
Рис. 6.3
Возможен доступ как «по таблице» – из списка отсканированных (при старте или из диалога состояния
утилиты) DT, так и непосредственно по идентификаторам модулей – «по ID». В последнем случае
дополнительно выбирается источник DT – ПЗУ или ОЗУ.
Закладка «ОЗУ» предоставляет доступ к объектам оперативной памяти контроллера.
Рис. 6.4
При этом различаются следующие адресные пространства:
Рис. 6.5
Закладка «System File» позволяет обращаться к файлам служебной информации накопителя.
Рис. 6.6
Рис. 6.7
Рис. 6.8
При выборе функции сканирования выводится диалог, предлагающий задать том (volume) и диапазон File
ID для сканирования и задать список пропускаемых File ID (при запросе информации о некоторых файлах в FW
может возникнуть исключение LED: xxxx, приводящее к зависанию микропрограммы, что при автоматическом
сканировании нежелательно). Список пропускаемых файлов сохраняется в запрашиваемый ini файл.
Кроме того, современные версии микропрограмм (в частности FW накопителей Barracuda LP Green) умеют
выводить в терминал список доступных файлов по команде «T>y». Пример списка, выводимого этой командой:
F3 T>y
File Vol FD Location Size Cylinder Hd Sector
---- --- -------- ------------ -------- -------- -- ------
0000 000 fd000000 0000000246df 0000000c 0002a4ab 00 00001f
0001 000 fc001203 00000002900f 00000009 0002a4bd 00 00026f
0002 000 fc002204 000000029020 00000003 0002a4bd 00 000280
…
Здесь FD = File Descriptor. Формат FD = xxYxxZZZ, где Y = Volume, ZZZ = File ID.
Также возможно распечатать представленный в диалоге список Sys Files в протокол утилиты и по Sys LBA
выяснить, какому файлу он принадлежит. Это позволяет осуществить быструю идентификацию повреждённых
файлов по отчёту о последних выполненных накопителем rw-командах. Подробнее о методике диагностики см в
разделе 4.14 «Диагностика по списку последних 32 / 48 исполненных RW команд.».
Рис. 6.9
Рис. 6.10
Закладка «SA LBA» позволяет обращаться к файлам служебной информации накопителя по их адресам
в служебной зоне, коме того, возможно вычитывание повреждённых блоков.
Рис. 6.11
ATA / Terminal, text (доступ к данным через команды, выводящие дамп буфера чтения в ASCII HEX виде) /
Terminal, ESLIP (работа с накопителем в ESLIP режиме – передача технологических команд по бинарному
протоколу через терминал) – выбирается в зависимости от доступности в текущем состоянии
восстанавливаемого накопителя. Error recovery mode – переключает стратегии поведения микропрограммы
при обработке ошибок чтения. Ignore read error – разрешает микропрограмме передачу данных даже в
случае, если микропрограмма считает их невосстановимо повреждёнными (в частности, в ситуации
корректных данных и несовпадающего маркера Block Address – адреса Sys LBA). Ниже расположен
справочник известных координат системных файлов, построенный на основе опроса накопителя или
настройки по образу ПЗУ / Disk FW.
Закладка «YModem» позволяет работать с данными, передаваемыми из накопителя или в него по
протоколу YModem. В частности, так работают команды читающие и пишущие Sys Files в терминале –
“T>r…” и “T>w…”.
Рис. 6.12
Выбор этой закладки и нажатие OK активизирует забор данных из HDD. Также это происходит по
нажатию кнопки “перечитать / отменить” в hex редакторе. Для передачи данных в накопитель
следует нажать кнопку “записать в HDD”. Следует иметь в виду, что данный режим – только
реализация “обвязки” транспортного протокола. Сами команды, работающие с ним, следует вводить
в терминал вручную.
♦ коррекция карты головок при работе с повреждённым БМГ или запиленной поверхностью
(спаривание головок) 3;
♦ коррекция счётчика доступных головок на этапе диагностики повреждений;
♦ коррекция имени модели / серийного номера и т.д. при ремонте;
♦ перенос адаптивной информации из поврежденной ПЗУ в донорскую живую;
♦ перенос адаптивной информации из ПЗУ с программной ошибкой, признанной производителем,
мешающей HDD выйти в готовность (или дать доступ к терминалу и т.д.), в донорскую обновлённую
ПЗУ из библиотеки микропрограмм;
♦ перенос адаптивной информации о головках при пересадке донорского блока голов.
Для решения этих задач предназначен инструмент «Работа с образом Flash ПЗУ», доступный из меню
«Инструменты» → «Расширения утилиты».
Рис. 6.13
Рис. 6.14
Данный мастер при запуске загружает из файла или накопителя образ ПЗУ (возможна и загрузка по ходу
работы кнопкой – диалог загрузки см. выше) и позволяет как вручную, так и при помощи комплексных
инструментов осуществить коррекцию информации в ПЗУ. Опишем ниже инструменты мастера:
Рис. 6.15
Рис. 6.16
– коррекция паспортной информации в ПЗУ HDD. Выводит диалог, позволяющий править серийный
номер гермоблока, контроллера, WWN, дату производства, имя модели, ёмкость (при хранении данного поля в ПЗУ).
Рис. 6.17
– изменение флагов управления SAP в образе ПЗУ. Функция аналогична соответствующей функции
для работы в ОЗУ. Подробнее смотрите в главе 5.7.3 «Работа с ОЗУ».
– импорт адаптивной информации – при выборе этой функции утилита запрашивает имя файла образа
ПЗУ, из которого следует осуществить импорт, и переносит из него в текущий редактируемый образ ПЗУ блоки
адаптивных параметров - CAP, RAP, SAP, либо адаптивную информацию о головках – по выбору пользователя.
Рис. 6.18
После манипуляций с образом ПЗУ его следует записать в накопитель либо с помощью утилиты (в режиме
Boot Code по терминалу), либо используя программатор (предварительно сохранив в файл). Сохранение образа
ПЗУ в файл или накопитель возможно при каждом нажатии кнопки применения изменений . Также
возможно сохранение выбранного объекта ПЗУ в файл при использовании кнопки сохранения содержимого hex
редактора в файл .
QNR Revisions:
Flash ROM image.......... : 1
GLOB_FLASH_DIR........... : 1
BOOTFW_CONT_0............ : 0
GLOB_FLASH_DIR........... : 2
BOOTFW_CONT_1............ : 0
CAP
###
Validation Key........... : 0x00000020
Fam ID................... : 0x8C (Rosewood_8C)
Fam Member............... : 0x3
Head count............... : 2
Date..................... : 08 мар 2016
SN....................... : XXXXXXXX
PCB SN................... : 0000XXXXXXXX
PCB PN................... :
WWN...................... : XXXXXXXXXXXXXXXX
RAP
###
Format revision.......... : 0x0208
Contents revision........ : 0x3F950100
Number Sys Zones......... : 1
Number User Zones........ : 150
Heads count.............. : 4
FW Implementation Key.... : 0x1E
SAP
###
Fam ID................... : 0x8C, (Rosewood_8C)
Fam Member............... : 0x3
SN....................... : XXXXXXXX
Servo FW rev code........ : 0x8ACE
Max head................. : 1
Seek mode................ : 2000
Flags.................... : 0A89
RRO mode................. : 0005
Bank 1
ProdType................. : RW07.SDM2QBF
Controller FW Rev........ : 69730001
Customer Release......... : SBM3
Changelist............... : 00997909
Build date / time........ : 15.02.2016 16:29:13
Package Global ID........ : 00080603
Package Builder ID....... :
Build Rev................ :
Package Rev.............. : AA6973
Pkg P/N.................. : ---------
Servo FW................. : 8ACE / ---- / ---- / ----
Package Version.......... : RW07.SDM2QBF.AA6973.SBM3
Pkg CFW Ver.............. : RW07.SDM2QBF.00997909.00080603
– инициализация утилиты на основании загруженного образа ПЗУ или CFW оверлея. На основании
предоставленных данных утилита находит и загружает таблицу модулей, таблицы разделов (volumes) служебной
информации 0 и 3, а также некоторые другие необходимые утилите данные.
– эта кнопка предоставляет доступ к списку модификаций кода ПЗУ, доступных в данной версии
утилиты. На данный момент доступны следующие модификации:
♦ «Init SMART Fail». Некоторые версии FW после исполнения команды пересчёта транслятора требуют
сброс SMART (например, для семейства Pharaoh). При этом, если модуль 35 не читается, очистка SMART
завершится ошибкой и HDD перейдёт в цикл вывода ошибки LED: 000000CC 1. В том случае, если
перезаписать модуль 35 невозможно, следует применить правку «Init SMART Fail», отключающую
функцию сброса SMART в микропрограмме накопителя.
♦ «No HOST…», BSY (type 1) / (type 2). При старте накопитель предпринимает попытки проверки
корректности ключевых файлов микропрограммы, и если они повреждены, выдаёт в терминал сообщение
«No HOST PhysReadyStatusFlags…» и останавливает инициализацию. Накопитель остаётся в состоянии
BSY по ATA. При этом возможен доступ к командам терминала. Данная правка отключает контроль за
разрушениями микропрограммы, в результате зачастую можно получить доступ к технологическим
командам и анализу диска по ATA. В том числе доступна команда Download Microcode (92h), которая
может быть использована для загрузки CFW / Diag / Tech Overlays. Что позволит загружать указанные
выше оверлеи и получать доступ к диагностическому технологическому режиму по ATA, даже если они
разрушены на поверхности SA (в текущей версии доступна и загрузка лоадера по терминалу).
♦ SenseCode = 87270000. Состояние ошибки Write Protect. В этом состоянии накопитель не позволяет 1011010101100110011010101011010101111010111
11010101101101010100111110
читать пользовательские данные, но позволяет работать с SA. Правка применяется к образу Disk FW. 1101110110110011
0111011110
Позволяет обойти контроль указанной ошибки и получить доступ к чтению по Host LBA. 111101
011
♦ Подготовка к разблокировке Tech Mode, (patch) – позволяет получить доступ к технологическому 11
1
режиму у накопителей с блокировкой по типу Grenada. Подробнее см 5.7.2.1 ”Подготовка к
разблокировке Tech Mode (patch).”
♦ “Tech Mode Unlock (patch)” удаление – удаление из кода ПЗУ системы разблокировки технорежима.
♦ Yeti SoC (Pharaoh, Moose, etc…) Disk FW start pause – для накопителей на ядре Yeti (семейства Pharaoh,
Moose и т.д.) позволяет добавить паузу после загрузки Disk FW перед её запуском. Это позволяет более
комфортно использовать алгоритмы работы с накопителем, включающие закорачивание канала чтения.
Перед запуском Disk FW накопитель ожидает в терминале нажатия любой клавиши.
♦ “Yeti SoC (Pharaoh, Moose, etc…) Disk FW start pause” удаление – удаление из ПЗУ соответствующей правки.
♦ Kahuna CFW patch 1 – модификация, позволяющая получить доступ к терминалу у гибридных
накопителей Kahuna для анализа состояния и сброса (подробнее см. 4.4 “Неисправности гибридных
накопителей. Семейство Kahuna, модели STxxxLM014, STxxxLM000.”)
♦ Отключить расширенную проверку LOD (ОЗУ). У накопителей с подписанными лоадерами, находящихся
под управлением Disk FW (доступен командный режим терминала) отключает проверку корректности
подписи. При этом в лоадер должен быть интегрирован шаблон подписи. См гл. 5.5 Download Microcode.
♦ 7200.11 для FW c CD04 по CD15, SD1A, AD14 включительно, ES.2, FW c SN01 по SN04 включительно – в
случае подачи питания контроллер выходит в готовность, терминал и технологические команды доступны.
♦ 7200.11 более новых версий FW и ES.2 начиная с версии SN05 – при инициализации с отключенным
двигателем контроллер выходит в готовность, но терминал и технокоманды недоступны.
♦ 7200.12 и новее (некоторые прошивки) в готовность не выходит, в терминале выводит сообщение No
HOST Fis-ReadyStatusFlags 4…
1 – Накопители Barracuda классической и F3 архитектур легко различить по виду версии FW. В то время, как
FW накопителей классической архитектуры содержит точку (например, 3.06, 3.AAD), версия FW накопителей
архитектуры F3 точки не содержит (например, SD15, 0002BSM1)
2 – Описанная в данной главе LED: CC блокировка развивается в связи с переполнением CE Log файла
накопителя. Однако используемый утилитой механизм может быть использован для решения проблемы
блокировки и по другим причинам.
3 – Допустимо изолировать лишь разъём шпиндельного двигателя, не откручивая плату контроллера целиком.
4 – Для данного семейства блокировка Led: CC по переполнению SMART не наблюдается, в то же время
возможна при проблемах с трансляцией. Механизм вывода в готовность исследуется.
Внимание! В реализованной ранее в нашей утилите схеме разблокировки HDD, схемах, выложенных в Internet,
схеме, реализованной в комплексе Salvation Data, не резервируется служебная информация и производится
пересчет транслятора, что может привести к некорректному построению транслятора! Это связано с тем,
что известная команда «T>m0,6,2,,,,,22» и ее альтернативные варианты производят пересчет транслятора
исключительно по P-List. В то же время последние годы большинство накопителей перед выпуском с завода
проходят так называемый пост-процесс – дополнительное внешнее логическое сканирование со скрытием
дефектов по сдвигающей схеме. При этом информация о дефектах заносится напрямую в транслятор, но не в P-
List, и при пересчете по указанной выше команде теряется (логи процесса тоже, как правило, стираются как
часть предпродажной подготовки). Это приводит к тому, что начиная с произвольного LBA (самого маленького
номера LBA, скрытого в пост-процессе) поверхность перестает читаться – возвращается ошибка UNC.
Реализованный на данный момент в утилите алгоритм разблокировки резервирует служебную
информацию и восстанавливает модуль трансляции в исходное состояние, тем самым предотвращая
использование потенциально опасной операции пересчёта транслятора.
Далее рассмотрим подробно два способа вывода HDD в готовность и получения терминального
командного режима для использования в штатном разблокировщике. Начнем с наиболее простого, но, к
сожалению, не всегда доступного метода изоляции разъема ШД.
♦ При отключенном питании откручивается винт, фиксирующий плату контроллера в районе разъема
двигателя, разъем изолируется (например, листком плотной бумаги или пластиковой картой).
♦ Через некоторое время накопитель выходит в готовность (видно по индикаторам регистра состояния
на панели утилиты).
♦ Без выключая питания удаляется изолирующий элемент и закручивается назад винт, фиксирующий
плату контроллера в районе разъема двигателя.
♦ После этого отрабатывается основной алгоритм разблокировки.
♦ Выбрать пункт меню «Решение проблемы "Блокировка HDD (LED: 000000CC) "».
♦ Подтвердить свое решение запуска данного режима.
♦ Задать папку резервирования служебной информации.
♦ Выбрать метод разблокирования – «Изоляция разъема шпиндельного двигателя».
♦ Следовать рекомендациям основной формы режима.
Рис. 7.1
Перед появлением этого окна питание соответствующего канала PC3000 отключается; т.о., открутить
винт и изолировать разъем можно сразу после прочтения инструкций. После изолирования разъема и
нажатия кнопки «Начать процедуру», утилита проделает комплекс необходимых действий, в том числе в
некоторый момент попросит убрать изолятор и закрутить винт. По окончании обработки алгоритма
накопитель будет разблокирован.
Рис. 7.2
В случае, если инструмент удовлетворяет указанным требованиям, при закорачивании HDD стучит и
выходит через некоторое время в готовность с остановленным двигателем. Соответствующий инструмент
рекомендуется подобрать заранее, замыкая канал чтения исправного накопителя и подавая на HDD питание.
Алгоритм разблокировки HDD через закорачивание канала чтения выглядит следующим образом:
1– В конце данной статьи приведены фотографии плат контроллеров с указанием точек замыкания. В то же время,
их поиск достаточно прост. Это – переходные отверстия линий дифференциальной пары канала чтения на
внешнюю сторону платы. Сама дифф. пара – два параллельных проводника, выходящих из разъёма коммутатора в
направлении процессора, поперёк которых напаян резистор (на паре канала записи резистора нет).
♦ Питание HDD включается и в терминал подается сигнал активации терминального командного режима.
1101110110110011
0111011110
111101
011
11
♦ Как только терминал отдает приглашение F3 T>, необходимо закоротить канал чтения, как указано выше.
1
♦ Через некоторое время HDD выйдет в готовность с остановленным двигателем (перед тем, как
накопитель остановит шпиндель и выйдет в готовность, он должен стучать).
♦ После этого отрабатывается основной алгоритм разблокировки.
Рис. 7.3
Здесь следует нажать кнопку «Начать процедуру», наблюдать за выводом терминала 1, когда HDD выдаст
приглашение F3 T>, замкнуть соответствующие точки на плате контроллера. Когда накопитель выйдет в
готовность – убрать замыкание и нажать кнопку «Готово».
Также данный режим удобно использовать для преодоления некоторых других LED блокировок. При этом после
получения доступа к терминалу следует нажать кнопку «отмена», после чего приступить к анализу состояния
накопителя через терминал.
1 – Удобнее всего следить не за окном терминала, а за индикатором RxD переходника PC USB Terminal: когда
он часто заморгает, это будет означать, что накопитель отдаёт приглашение командного режима. При этом
удобно расположить переходник рядом с HDD, в пределах поля зрения при рассмотрении точек замыкания.
Рис. 7.4
Следует иметь в виду, что в случае отсутствия упомянутого выше резистора на дифф. паре канала чтения
возможно выявить её опытным путём. Для этого в первую очередь следует выделить на плате контроллера две
дифф. пары – чтения и записи. Далее следует накоротко замкнуть одну из них и попытаться запустить накопитель.
Внимание! Во время тестового запуска следует постоянно держать выбранную дифф. пару
закороченной во избежание повреждения служебной информации! В случае, если закорочен искомый канал
чтения, после подачи питания накопитель раскрутит двигатель и будет некоторое время стучать, после чего
остановит шпиндельный двигатель. В случае, если при закорачивании накопитель не стучит, данная дифф. пара
относится к каналу записи.
1 – Следует упомянуть также тот факт, что разрушение транслятора вследствие дополнения G-List при
проблемах с записью приобретает в данный момент всё большее распространение и встречается независимо от
LED: CC блокировки по причине переполнения CE Log. При этом проблема может изначально проявляться как
0я ёмкость в паспорте.
Следует учесть, что если нужно восстановить накопитель с «неродной» платой контроллера, при запуске
жесткий диск будет неспособен обратиться к служебным данным на поверхности. Это может быть ошибочно
трактовано как проблема головок или канала чтения, поэтому внимательно проверьте, соответствует ли плата
контроллера гермоблоку. Для этого можно воспользоваться тем, что даже отключённая от гермоблока плата
возвращает по ATA паспорт. Прочитав паспорт HDD, можно сравнить имя модели и серийный номер с тем, что
напечатано на наклейке гермоблока 1.
Внимание! Имейте в виду, что в случае «неродной» платы контроллера любые действия, связанные с записью
на поверхность дисков, могут привести к необратимому повреждению служебной информации и, как следствие,
к недоступности пользовательских данных.
1 – К сожалению, как отмечалось выше, некоторых FW семейства Barracuda ES.2 паспорт в ПЗУ содержит
одинаковые для всех HDD данные, что осложняет идентификацию.
должно установиться соединение с SATA переходником. О том, что соединение установлено, говорит свечение
индикатора PHY RDY на адаптере PC PATA – SATA. Если индикатор не светится, плата неисправна. Также
следует обратить внимание на то, что исправная плата, будучи отсоединённой от гермоблока, после подачи
питания через некоторое время приходит в состояние готовности и отдаёт паспорт (для семейства 7200.11
отдаётся и корректный SN). Кроме того, для анализа состояния платы контроллера можно воспользоваться
методом перестановки плат. Переставлять следует платы одинаковой ревизии (Рис. 9.1).
Уже в данном состоянии донорская плата пригодна к первичной оценке состояния накопителя – есть
ли SATA соединение, раскручивается ли двигатель, есть ли реакция терминала. Для дальнейшего анализа,
в том числе анализа служебной информации, следует перенести на донорскую плату адаптивную
информацию с неисправной платы. Для этого необходимо перепаять ПЗУ (см. раздел 8. «Приложение 1.
Замена плат контроллера»).
Рис. 10.1
Внимание! Пред любыми модификациями зарезервируйте ПЗУ! ПЗУ хранит уникальные настройки
накопителя, потеря или повреждение его содержимого приведёт к необратимой поломке HDD.
Также для подбора донорских головок можно воспользоваться значениями “Preamp type”, “Flags”, “ Heads
polarity” из блока параметров “SAP” отчёта о ПЗУ (см гл. 6.2, “Работа с образом Flash ПЗУ”, информация о
загруженном образе ПЗУ).
Здесь “Heads: 6” – число головок, используемых накопителем. “Preamp type: CC 36” следует интерпретировать как
последовательность байт в Small Endian формате, что даёт нам шестнадцатеричное число 0x36CC. Его старший
символ (здесь - “3”) – номер головки, к которой накопитель обращается в данный момент – следует исключить из
кода. Таким образом, для приведённого примера Preamp type = 0x6CC.
1 – Допустимо использование накопителей меньшей ёмкости, но того же семейства, но при этом необходимы
некоторые действия, связанные как с модификацией информации в ПЗУ, так и работы с механикой гермоблока.
При отсутствии соответствующей практики на высоком уровне использование донорских HDD с меньшим, чем
у HDD пациента, числом магнитных головок настоятельно не рекомендуется.
Рис. 12.2. Вид с внешней стороны. Желтым цветом выделены точки закорачивания.
Рис. 12.4. Вид с внешней стороны. Желтым цветом выделены точки закорачивания.
Рис. 12.6. Вид с внешней стороны. Желтым цветом выделены точки закорачивания.
Рис. 12.8. Вид с внешней стороны. Желтым цветом выделены точки закорачивания.
Рис. 12.10. Вид с внешней стороны. Желтым цветом выделены точки закорачивания.
Рис. 12.12. Вид с внешней стороны. Желтым цветом выделены точки закорачивания.
Рис. 12.14. Вид с внешней стороны. Желтым цветом выделены точки закорачивания.
Рис. 12.16. Вид с внешней стороны. Желтым цветом выделены точки закорачивания.
Рис. 12.18. Вид с внешней стороны. Желтым цветом выделены точки закорачивания.
Рис. 12.20. Вид с внешней стороны. Желтым цветом выделены точки закорачивания.
Рис. 13.2. Вид с внешней стороны. Желтым цветом выделены точки закорачивания.
Рис. 13.4. Вид с внешней стороны. Желтым цветом выделены точки закорачивания.
Рис. 13.6. Вид с внешней стороны. Желтым цветом выделены точки закорачивания.
Рис. 13.8. Вид с внешней стороны. Желтым цветом выделены точки закорачивания.
Рис. 15.1