Конвертер
Конвертер можно купить (в продаже есть USB-TTL и COM-TTL) или сделать самому (привожу несколько схем ниже).
Для тех, у кого есть Arduino: соединяем GND
и RESET
, используем контакты RX
и TX
.
Для проверки схемы можно замкнуть RX и TX , - в результате все, что мы введем, должно вернуться.
Подключение
Подключаем RX и TX , как на рисунке ниже, отключаем SATA-кабель, подключаем питание.Для работы с COM-портом я использовал PuTTY , с задачей также отлично справится ваша любимая программа. Итак, открываем PuTTY, выбираем тип подключения Serial
, вводим порт и остальные настройки:
Speed | 38400 |
Data Bits | 8 |
Stop Bits | 1 |
Parity | None |
Flow Control | None |
F3 T>
Чтобы увидеть список команд и описание к ним для вашего жесткого диска, необходимо ввести /C , а затем Q .
Восстановление
Пришло время приступить к восстановлению.Важно : соблюдайте регистр при вводе команд!
- Перейдем на уровень 1, введя /1
- Очистим S.M.A.R.T. командой N1
- Выключаем питанием и ждем, когда остановится двигатель (~10 сек)
- Включаем питание и снова нажимаем Ctrl+Z
- Очищаем список bad-блоков: вводим i4,1,22
- Повторяем пункты 3-4
- Вводим в консоли: m0,2,2,0,0,0,0,22 (для жестких дисков «Made in China» - m0,2,2,22 )
- Переходим на уровень 2: /2
- Останавливаем двигатель: вводим Z
- Выключаем питание
Сейчас я описал ситуацию, когда все работает, как надо, но так получается редко. В процессе восстановления возникло несколько трудностей, с которыми, я уверен, вам тоже предстоит столкнуться. Поэтому, все у кого что-то не получилось, ищите решение в последнем разделе этой статьи.
О том, что осталось за кадром
Поскольку эта статья - результат собственных экспериментов, основаных на различных материалах по восстановлению HDD, далее я опишу те проблемы, с которыми столкнулся сам.Проблема | Решение |
Шум в консоли | Подключите контакт GND к «земле» на блоке питания. Я использовал провод от клавиши включения. Также вытяните джампер SATA I из жесткого диска. |
На экране после нажатия Ctrl+Z ничего не появляется | Скорее всего, неправильно подключены RX и TX . |
При первом включении появляется ошибка LED:000000CC FAddr:0025BF67 или LED:000000CC FAddr:0024A7E5 | Сначала попробуем отключить головки. Для этого откручиваем плату (заодно можно и почистить контакты ластиком: у меня там было очень много грязи), подкладываем изолятор (бумага, изолента и т.д.) на контакты, ведущие к головкам, и обратно прикручиваем плату (не всеми винтами, а так, чтобы было питание на мотор). Включаем питание, нажимаем Ctrl+Z
, вводим /2
, потом Z
. Ждем сообщение об успешной остановке. Spin Down Complete
Elapsed Time 0.138 msecs
Не отключая питания, откручиваем плату, достаем наш изолятор и прикручиваем обратно плату, вводим команду запуска двигателя: U
. Если не помог метод отключения головок, нужно замкнуть контакты на плате острым пинцетом или тонким проводком. На фото (доступны по ссылкам ниже) показаны точки замыкания на разных жестких дисках. |
Artem Makarov aka Robin
09.11.2013
38824 просмотра
Еще одна непростая проблема с сигейтами, которую удалось решить с помощью так называемой прошивки HDD Seagate (загрузки микрокода по интерфейсу).
На сей раз - ноутбучный HDD ST9500325AS при подаче питания на слух рекалибруется, висит в BUSY, в диагностический порт выдает только:
Rst 0x08M
И всё. Терминального функционала после старта нет, так как диск зависает. До меня диск был в другом месте, где ему поменяли блок головок (обычно так всегда, если не понимают, что с винчестером не так, сразу меняют головы - на всякий случай). Само собой, в деле восстановления пользовательских файлов замена голов чтения\записи в данной ситуации никак не помогла и диск принесли в СЦ "Хардмастер".
Терминальный функционал на данной линейке накопителей заложен производителем в код ПЗУ, включается после подачи питания на интерфейс. Выглядит это таким вот образом:
Rst 0x08M RW cmd 002F req = 18 F0 9F E5 18 F0 9F E5 18 F0 9F E5 18 F0 9F E5 18 F0 9F E5 00 00 A0 E1 opts = 00000000 RW Err = 84150180 ASCII Diag mode F3 T>
Т.е. ошибка позиционирования по сервометкам, остановка шпиндельного двигателя и готовность в регистрах с готовностью отвечать на терминальные запросы. В такой позиции можно командой раскрутить двигатель, поднять с поверхности diag ovl и прочитать по АТА все описанные по id модули, а так же все модули, описанные в system volume. Все модули считались без ошибок, и на первый взгляд не содержали в себе ничего крамольного, что могло бы приводить к зависанию накопителя при штатном старте.
Сразу возникло подозрение на сбой в таблицах трансляции, но попытка пересчёта привела к такому результату:
Max Wr Retries = 00, Max Rd Retries = 00, Max ECC T-Level = 14, Max Certify Rewrite Retries = 2DF8 DiagError 0000500D User Partition Format Failed - Elapsed Time 0 mins 00 secs R/W Sense 00000002, R/W Error 843200A2, File Error 00000000 Blk Addr AD6F0001, Blk Addr Type D0, Cyl FFFF0000, Hd EC
Т.е. закончилась с ошибкой. После некоторых раздумий было принято решение кардинальное. Учитывая, что все необходимые части служебной информации были успешно зарезервированы ранее, я решил полностью отформатировать служебную область. Получив по окончании процесса:
System Partition Format Successful - Elapsed Time 2 mins 00 secs
я передернул питание, и диск вышел в готовность с "пустым" заводским паспортом. В такой позиции любая операция чтения\записи служебной информации приводит к сообщению о неготовности к процессу, по причине отсутствия "расширенных" команд в "базовом" микрокоде ПЗУ.
Unable to load Diag Cmd Processor Overlay
Для того, чтобы получить полный функционал в такой ситуации, требуется записать оверлеи на поверхность, чтобы диск их считал. А для того, чтобы получить возможность произвести запись на поверхность диск должен их прочитать ранее. Замкнутый круг. Как найти выход из такой ситуации?
Вариант, учитывая что в ситуации с отформатированной служебкой диск выходит в готовность по интерфейсу штатно, один - используя команду id92h загрузить в HDD лоадер, т.е. пакет микрокода, содержащий в том числе и требуемые оверлеи, и тем самым, как говорят, перепрошить жесткий диск Seagate.
После этой операции пересчет транслятора завершился успешно
Max Wr Retries = 00, Max Rd Retries = 00, Max ECC T-Level = 14, Max Certify Rewrite Retries = 2DF8 User Partition Format Successful - Elapsed Time 0 mins 00 secs
И, финальный штрих - запись ранее сохраненного транслятора (id2Bh). После переподачи питания диск выдал привычное:
Rst 0x08M (P) SATA Reset
и полный доступ ко всем LBA, описанным в паспорте. Если бы до того, как диск попал ко мне, пытливые ручки не залезли бы в гермозону, то с помощью описанных выше манипуляций можно было бы произвести ремонт жесткого диска с сохранением информации.
Служебная информация жесткого диска
- аналог операционной системы компьютера. Служебная информация расположена в специально отведенном месте (Service Area, SA), в секторах с отрицательными номерами и доступна для работы только специализированным утилитам
.
Модули служебной информации - это не MBR, не Boot-сектор, и не MFT
, все перечисленное относится к категории "пользовательсткие данные" и доступно для работы любой утилите, работающей с диском минуя файловую систему (например, "редактор сектора"). В служебной зоне накопителя могут быть свои: транслятор, таблица дефектов, каталог и прочее (в зависимости от производителя и семейства).
В состав служебной информации входят:
Оврелеи микрокода - модули, содержащие в себе загружаемую часть микропрограммы, необходимые для старта HDD;Листы дефектов: P-List; G-List; Relo-list и другие, в зависимости от производителя и архитектуры;
S.M.A.R.T. и его логи;
Модули самотестирования , применяемые в производстве диска
Транслятор, паспорт - при наличии отдельного модуля, или в виде суперфайлов.
Отличительной особенностью данной неисправности является то, что диск может правильно определяеться в BIOS, а может и не определяться. Также неправильная паспортная информация тоже может свидетельствовать о проблемах в служебной зоне накопителя. В отличие от других неисправностей жестких дисков, для неисправностей служебной информации имеет огромное значение изготовитель жесткого диска, так как отличия встречаются не только в архитектуре, но и в самой идеологии служебной информации.
Учитывая расположение служебной зоны накопителя - на поверхности магнитных пластин, повреждение служебной информации может свидетельствовать о серьезных проблемах жесткого диска. Неквалифицированное вмешательство, необдуманные действия начинающих мастеров могут привести к полной невозможности восстановить данные.
Структура служебной информации жесткого диска
Критичные модули - части служебной информации, без которых жесткий диск не сможет запуститься и работать "по логике" (то есть когда становится доступной пользовательская зона). В свою очередь, критичные модули могут быть как уникальными (для конкретного экземпляра жесткого диска), так и неуникальными (одинаковыми в семейств или модели).
К уникальным модулям
относятся: дефект-листы (особенно заводской, P-List), транслятор (при его наличии);
К неуникальным модулям
относятся: оверлеи микрокода, совместимые в рамках семейства и версии firmware.
Важно помнить:
Любая ошибка при работе со служебной зоной накопителя чревата необратимыми последствиями. Так, запуск пересчета трансялтора с чужой платой электроники способен сделать невозможным восстановление данных.
Повреждение критичных модулей жесткого диска делает запуск накопителя невозможным, однако, неуникальные и критичные можно подобрать совместимые. Гораздо сложнее обстоит дело, когда повреждены уникальные критичные модули: если не удается вручную собрать их из доступных копий, то восстановить данные невозможно . Также для некоторых накопителей есть универсальные методики восстановления некоторых уникальных модулей, например, пересчет транслятора накопителей Seagate. Но несмотря на такие варианты решение проблем в служебной зоне накопителя - задача нетривиальная, ведь служебная информация у жестких дисков может быть повреждена по-разному. Единых методик восстановления данных с жесткого диска с повреждением служебной информации, как и типовых неисправностей, не существует; кроме того, в служебной зоне накопителя абсолютно равновероятно могут быть поврежденными любые модули.
Восстановление данных с жесткого диска
с поврежденной служебной информацией
Для определения путей решения проблем в служебной зоне накопителя необходимо в первую очередь провести тщательную диагностику в соответствии с архитектурой накопителя. Так, искать повреждения в трансляторе накопителей с динамической трансляцией (например, Samsung или Hitachi) так же безрассудно, как и пересчитывать транслятор для восстановления паспортного объема накопителя Western Digital.
Частный случай №1. Не определяется диск Seagate 7200.11
Получившая широкую известность и обросшая не только "кучей методик", но и разных "панацей с одной кнопкой" неисправность служебной зоны одного семейства накопителей Seagate (давно уже снятых с производства) до сих пор будоражит умы начинающих мастеров.
Суть проблемы:
Диск, например ST3500320AS, не определяется в BIOS, на порту, куда он подключен, взведен регистр BSY (проверяется программой типа Victoria), при этом из гермозоны не слышно посторонних звуков, диск крутится.
Диагностика неисправности:
Как и для всех накопителей производства Seagate, диагностика производится через диагностический терминал (COM-port). В диалоговом окне терминала появляется сообщение:
LED:000000CC FAddr:0024A051
LED:000000CC FAddr:0024A051
Конечно, сленг не обошел и эту неисправность, и ее прозвали "мухой ЦЦ" из-за особенностей произношения содержимого терминала. Как и при других неисправностях, данное сообщение в терминале сигнализирует проблемы с какой-то частью служебной информации. В данном случае - переполнение логов, причем такое переполнение зачастую связано с неустойчивой работой жесткого диска, либо дефектами поверхности
Решение проблемы:
Прерывание процесса стартовой инициализации накопителя и последующий пересчет транслятора с учетом P-List , проверка доступности данных и обязательная посекторная копия на исправный накопитель. Методика "как в киоске на рынке" зачастую приводит к "вилкам" в трансляции (когда начиная с определенного LBA все сектора становятся недоступными).
Запуск процедуры автоматического персчета транслятора на дисках более поздних моделей, не подверженных таким проблемам, не только бесполезен, но и деструктивен!
Частный случай №2. Не определяется жесткий диск Western Digital WD20EZRX
Суть проблемы:
Диск, например WD20EZRX не определяется в BIOS, при этом он раскручивается и не издает посторонних звуков. Перед тем как окончательно сломаться, диск довольно сильно "тормозил", предпринимались неудачные попытки восстановить с него данные при помощи R-Studio. Сигналом, что пора принести диск в лабораторию, стало состояние диска "раскручивается, но не определяется в BIOS компьютера".
Диагностика неисправности:
Учитывая, что накопители семейства WD Marvell не пишут диагностических сообщений в терминал, накопитель подключается по SATA-интерфейсу к комплексу PC-3000Express. В регистрах состояния есть сигнал о готовности ("горят" регистры DRD и DSC); при любом обращении, в том числе чтении паспорта, взводится перманентный сигнал BSY, двигатель не останавливается, посторонних звуков нет.
С целью доступа в служебную зону накопителя, диск переводится в технологический режим (установкой соответствующих джамперов), что позволяет с ним работать специализированной утилитой. В этом режиме производится блокировка доступа к служебной информации и перезагрузка диска. Аварийно вышедший в готовность накопитель (из-за невозможности чтения служебной зоны по ложным адресам) позволяет загрузить в ОЗУ необходимые для работы с модулями служебной информации оверлеи микрокода. После чтения и диагностики служебной зоны диагноз уточнен: дефекты в служебной зоне.
Решение проблемы:
1. Сборка модулей, необходимых для запуска трансляции неисправного накопителя (уникальные критичные модули), то есть для обеспечения возможности экспорта пользовательских данных на исправный накопитель.
2. Подбор совместимого (по семейству, карте голов и версии предусилителя-коммутатора) диска-донора для выполнения процедуры "hot-swap".
3. Запись в служебную зону "донора" модулей от "пациента", необходимых для трансляции
4. Инициализация стартовой информации в ОЗУ накопителя с последующим стартом на гермоблоке "пациента"
5. Вычитывание информации: создание посекторной копии на исправный накопитель с использованием PC-3000 DataExtractor
Описываемый в примере случай блокировки диска при самостоятельных попытках восстановления данных - из реальной ежедневной практики. В данном случае информация восстановлена полностью несмотря на 1877 нестабильных секторов, из-за которых произошла блокировка HDD.
При любых повреждениях служебной зоны жесткого диска в нашей лаборатории производится посекторное клонирование пользовательских данных на исправный накопитель. Только такой подход может дать гарантию полного и безопасного восстановления данных. Типовых и шаблонных решений в восстановлении данных при повреждениях служебной информации нет и не может быть.