Как прошить hdd hitachi
Жесткий диск, он же винчестер, не такое уж и простое устройство, каким может показаться на первый взгляд. За всю историю своего существования, начиная с 1956 года, накопители претерпели огромное количество изменений. Теперь это не просто пластина и считывающие головки, а целая система со своей логикой и программным обеспечением, а следовательно, со своими фичами и секретами. В этой статье мы попробуем разобраться, что собой представляет современный жесткий диск, а также попытаемся расширить его стандартные возможности для своих хакерских целей.
WARNING
Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.
Электроника HDD
Конструкция винчестера в какой-то степени наверняка известна каждому. По сути, это несколько пластин, которые вращаются со скоростью 15 000 об/мин, устройство позиционирования и блок управляющей электроники. Добавим к этому систему самоконтроля S.M.A.R.T. и другие интеллектуальные атрибуты. Короче, без пол-литра не разберешься, тем более технология отдельных элементов составляет коммерческую тайну.
Высокой точности позиционирования, плотности записи и прочим тонкостям современных HDD можно посвятить не один десяток статей, но мы, не углубляясь в механику диска и физику процессов, рассмотрим наиболее интересную для нас часть — электронику.
Рис. 1. Плата жесткого диска
В старых моделях жестких дисков часть функций управляющей электроники брал на себя MFM- или RLL-контроллер компьютера. Но со временем из-за высокой скорости передачи данных потребовалось сократить тракт передачи данных, и разработчики отказались от этой идеи.
Пациент
Итак, перед нами плата типичного жесткого диска Western Digital WD5000AAKX объемом в 500 Гб (рис. 1). Что мы имеем:
- Микросхема DRAM. Интереса как такового не представляет, мануал легко можно найти в Сети. Память этих чипов колеблется от 8 до 64 Мб и соответствуют размеру кеша жесткого диска.
- Контроллер двигателя шпинделя. Отвечает за управление механикой, регулирует мощность и имеет некоторые аналоговые/цифровые каналы. На чип Smooth L7251 3.1 мануалы отсутствуют, но можно попробовать поискать похожие микросхемы.
- Флеш-память. На некоторых винчестерах микросхема отсутствует, но флеш-память бывает встроена в чип контроллера диска. Обычно имеет размер в пределах от 64 до 256 Кб. Используется для хранения программы, от которой загружается контроллер жесткого диска.
- И самая любопытная для нас вещь — контроллер жесткого диска. Их производят компании Marvell, ST, LSI и другие. Некоторые компании, производящие винчестеры, делают свои собственные контроллеры, как, например, Samsung и Western Digital.
Контроллер жесткого диска предназначен для управления операциями преобразования и обмена данными от головок чтения/записи к интерфейсу накопителя. К сожалению, компания Marvell не хочет выкладывать документацию на свою продукцию в открытый доступ. Ну что ж, попробуем разобраться сами.
Копнем глубже
Наш зарубежный коллега Джероен «Sprite_tm» Домбург нашел интересный выход из данной ситуации — для исследования контроллера он использовал интерфейс JTAG (от англ. Joint Test Action Group). Этот интерфейс предназначен для тестирования и отладки печатных плат. То есть с помощью JTAG мы можем спокойно подключиться к интересующему нас устройству, поддерживающему стандарт IEEE 1149. В микросхему интегрируется порт тестирования (TAP — Test Access Port), состоящий из четырех или пяти выводов: TDI, TDO, TMS, TCK и, возможно, TRST. Расположение этих выводов для контроллера Marvell нашел некий dex, любезно поделившийся результатами на форуме HDDGURU.
Джероен выяснил, что у контроллеров Western Digital есть ARM-ядро, доступное через JTAG-порт. А также последовательный порт, который обычно не используется, но может быть полезен для наших целей.
Для исследования контроллера жесткого диска использовалась плата FT2232H, которую можно заказать в интернете за 30 евро. Она поддерживает JTAG, связь через последовательный порт, а также SPI. Для работы с ней использовалась программа OpenOCD.
В результате оказалось, что у микросхемы есть целых три ядра. Два Feroceon, которые являются довольно сильными ARM9-подобными ядрами, и Cortex-M3, которое немного слабее. У всех ядер разное предназначение:
- Feroceon 1 обрабатывает физические чтение/запись на жесткий диск;
- Feroceon 2 -обрабатывает SATA-интерфейс, кеш и преобразует LBA в CHS;
- Cortex-M3 — предназначение неизвестно. Можно просто остановить его, но жесткий диск будет продолжать работать.
Так как мы ставили перед собой цель использовать жесткий диск для своих коварных целей, то самое время подумать о модернизации его прошивки. Самый простой и, вероятно, сложный в обнаружении способ — изменять данные на лету. Чтобы сделать это, нужно найти подходящее ядро — ядро, которое имеет доступ к данным, путешествующим между диском и SATA-кабелем.
Для доступа к ядру можно использовать режим DMA (Direct Memory Access). Это такой режим, когда обмен данных происходит непосредственно с головки считывания в память, без активного участия процессора. То же самое относится и к SATA-порту: процессору нужно только указать, где данные, и логика DMA позаботится о чтении информации непосредственно из памяти.
Источником информации в этом случае послужит кеш-память винчестера из-за ее хорошего расположения: данные, считанные с диска, будут в кеше, так что их можно будет сразу оттуда скопировать.
Способ довольно сложный — неудобно каждый раз подключаться через JTAG и ковыряться в кеше во время работы жесткого диска. Вместо этого для сохранения доступа без подключения дополнительной платы можно перепрошить микросхему флеш-памяти, выпаяв и подключив к программатору.
Однако было бы сложно модернизировать код из-за неизвестного алгоритма сжатия, вместо этого можно просто изменить адрес выполнения и добавить специальный блок, который будет прочитан раньше остальных. Это делает положение дел немного проще.
В результате своего исследования Джероен создал инструмент fwtool, который может сбрасывать различные блоки во флеше и переводить код в текстовый файл. Затем можно изменить, удалить или добавить блок и вновь собрать все в одном файле прошивки, который потом спокойно загрузить во флеш.
Меняем прошивку
Подобные манипуляции с жестким диском требуют значительных усилий, и вряд ли кто-нибудь добровольно отдаст свой накопитель для взлома. Поэтому было бы неплохо найти способ перепрошивки винчестера без каких-либо посторонних устройств или снятия чипа.
У компании Western Digital есть специальные программные утилиты для работы с жестким диском — это инструменты, работающие под DOS, которые могут загрузить новую прошивку контроллера, микросхемы флеш-памяти или сервисного раздела. Инструменты используют так называемые Vendor Specific Commands (VSC), впрочем, об этом чуть позже.
Также есть набор инструментов под названием idle3-tools, которые можно взять на вооружение для модификации прошивки жесткого диска. Он также использует VSC, применяя Linux SCSI PassThrough IOCTLs. Джероен взял этот код, изменил его и интегрировал в fwtool. После этой модификации fwtool научился читать и писать на микросхему флеш-памяти.
Теперь если хакер каким-то образом сможет воспользоваться fwtool на удаленной машине, то получит возможность сбросить флеш-память диска, изменить ее и «зашить» обратно. Правда, в конце концов владелец узнает о взломе и, вероятно, переустановит систему, но злоумышленник может внедрить что-нибудь, что проявит себя и после переустановки. Например, подождать, пока машина зачитывает из файла /etc/shadow/ , где хранятся все пароли в системах UNIX/Linux, и изменить содержимое. После чего можно будет просто войти под своим паролем.
Кстати говоря, описанная методика может служить не только для подпольных экспериментов, но и для целей защиты. Например, можно создать неклонируемый жесткий диск, который будет работать нормально, если шаблон доступа секторов, как обычно, окажется случайным. Если же винчестер будет доступен только последовательно, то данные будут испорчены, что сделает клон отличным от оригинала.
Кстати говоря, Джероен решил поделиться результатами своих исследований и выложил почти весь исходный код на своем сайте.
Терминальный режим жесткого диска
При работе в терминальном режиме пользователь может взаимодействовать с жестким диском посредством диагностических команд. Этот метод применяется для диагностики и ремонта накопителей Seagate и Toshiba, в Western Digital такая возможность отсутствует из-за сложности подключения. Терминальный режим фактически предоставляет полный root — управление механикой и логикой устройства. С его помощью можно также обновить или перезагрузить прошивку винчестера. Список команд для большинства накопителей можно посмотреть в интернете. А на плате жесткого диска имеется специальный разъем для подключения через последовательный порт.
Рис. 2. Разъем для подключения через последовательный порт. Одной тайной меньше
Для доступа в терминальный режим понадобится устройство-адаптер, необходимое для преобразования уровней сигналов RS-232 в уровни TTL (такие адаптеры имеются в продаже, но можно собрать и самому — все необходимые схемы находятся в свободном доступе, а в качестве основы можно взять некоторые модели Arduino). Мы же возьмем готовый чип FTDI, который преобразует USB в последовательный интерфейс для микроконтроллера Atmega. Нужно соединить GND и RESET, а для подключения использовать контакты RX и TX.
Рис. 3. Arduino Nano в качестве адаптера
Для работы с COM-портом используем любую понравившуюся программу — например, PuTTY или Hiperterminal. Выбираем тип подключения, вводим номер COM-порта и другие настройки:
Рис. 4. Окно настроек PuTTY
Для проверки работоспособности схемы нужно замкнуть RX и TX между собой. В результате все набираемые символы отобразятся в двойном количестве. Это происходит из-за того, что введенные данные будут передаваться по линии TX, а затем они же вернутся по линии RX. Делается это так: отключив SATA-кабель, соединяем выход TX диска с входом RX адаптера, и наоборот — RX адаптера с TX диска. Подключаем питание. После нажатия клавиш <Ctrl + Z> , получаем приглашение Т> (или F> для неисправных HDD) и вводим команды. Для получения списка команд вводим /C , а затем Q.
Из-за большого количества команд инженеры Seagate разделили их структуру на уровни. Такие команды, как чтение, запись, поиск, лог ошибок, доступны сразу на нескольких различных уровнях. Чтобы переключить жесткий диск для работы на другом уровне, надо воспользоваться командой /x .
Рис. 5. Обнуление S.M.A.R.T.
Кроме этих девяти уровней, есть еще два дополнительных набора команд: сетевые и общие. Основной целью сетевых команд является отображение изменения текущего состояния системы. Общие команды используются для доступа к регистрам, буферной памяти и данным.
Вообще, терминальный режим предоставляет много интересных возможностей. Например, команда низкоуровневого форматирования может не только снести данные подчистую без возможности восстановления, также, если во время форматирования кто-нибудь отключит питание, винчестер сможет сам «доформатироваться» при первом же его включении. В общем, это тема, достойная отдельной статьи. Мы же движемся дальше.
Запись информации в сервисные разделы HDD
В любом жестком диске присутствуют сервисные разделы. Они предназначены для хранения служебных программ винчестера, таких как S.M.A.R.T., модули раннего обнаружения ошибок, модули самодиагностики и так далее. К счастью, все эти данные не занимают выделенное место полностью, а значит, при правильном подходе мы можем использовать это бонусное пространство. Сервисные разделы не следует путать с DCO или HPA, которые могут быть легко обнаружены и доступны через стандартные ATA-команды.
В отличие от остальных методов скрытия информации запись в сервисный раздел не оставляет за собой никаких следов и незаметна для специальных программ поиска, которыми пользуются правоохранительные органы. Одним словом, это место идеально подойдет для хранения текстовых файлов с адресами, паролями, явками и прочего.
Для доступа к информации из сервисных разделов не подойдут стандартные ATA-команды, вместо этого для записи и чтения используются специальные команды VSC (Vendor Specific Commands). Как правило, производители держат в секрете эти команды, но порой выпускают утилиты для работы с сервисными разделами — например, программа wdidle3.exe от компании Western Digital и ее опенсорсный аналог idle3-tools. Еще один пример для WD — программа HDDHackr, меняющая записи в системных разделах HD.
WARNING
Данные в сервисных разделах очень важны для правильной работы винчестера. Повреждение записанной информации ведет к потере работоспособности диска. Восстановить ее будет не так уж и просто — для перезаписи данных в сервисных разделах понадобятся специализированные программы (например, Ace Laboratory PC3000).
Объем сервисного раздела зависит от модели винчестера. Например, в диске WD2500KS-00MJB0 семейства Hawk объемом 250 Гб (прошивка 02AEC) в сервисный раздел записывается две копии файлов, около 6 Мб каждая. Размер зоны на каждой поверхности составляет около 23 Mб (64 трека по 720 секторов на каждом). Поскольку этот диск имеет шесть поверхностей (головки от 0 до 5), модули сервисных разделов располагаются на месте, сопоставленном с головками 0 и 1, а место, закрепленное за головками со 2 по 5, зарезервировано, но не используется. Таким образом, зарезервированный раздел занимает около 141 Мб, из которых 12 Мб находится в использовании.
Для сравнения: модель WD10EACS-00ZJB0, емкостью в терабайт и с восемью поверхностями, имеет зарезервированное пространство 450 Мб, из которых занято 52 Мб. Ариэль Беркман (Ariel Berkman) из компании Recover Information Technologies LTD написал статью о работе с сервисными отделами HDD, а также выложил PoC-код для записи 94 Мб информации в сервисный отдел диска Western Digital 250GB Hawk. Делается это следующим образом:
- Узнаем свой SATA IO адрес, используя lspci -v .
- Для компиляции используем команду gcc -Wall -O -g -o SA-cover-poc SA-cover-poc.c .
- Создаем рандомный файл (94 Мб в размере) и вычисляем его MD5-хеш.
- Записываем файл в сервисный раздел.
- Очищаем винчестер с помощью команды dd-ing /dev/zero , которую следует распространить на весь жесткий диск (или на отдельную часть, предварительно заблокировав доступ к остальному). Достаточно один раз прогнать этот код, чтобы уничтожить данные безвозвратно.
- Читаем содержимое сервисного раздела, вычисляем его хеш и убеждаемся в целостности данных.
Автор предупреждает, что его код может привести к потере данных и выходу из строя жесткого диска, так что использовать этот метод можно только на свой страх и риск.
Программы для восстановления HDD
При низкоуровневых экспериментах возможно столкнуться с такой неприятностью, как поломка винчестера. Не стоит сразу прибегать к драконовским мерам и форматировать диск, можно попробовать восстановить его работоспособность с помощью некоторых программ.
- TestDisk — самая простая и эффективная программа для восстановления HDD. Предназначена для поиска и реконструкции потерянных разделов, загрузочного сектора, удаленных файлов; исправляет таблицу разделов. Работает с большим количеством файловых систем. Работает в консольном режиме, чем достигается высокая скорость.
- Acronis Disk Director — целый программный пакет, в который включено немалое количество инструментов для работы с HDD. Содержит в себе утилиту Acronis Recovery Expert, которая служит для реконструкции файлов и разделов. В отличие от предыдущей программы имеет графический интерфейс, но работает с меньшим количеством файловых систем.
- Paragon Partition Manager — бесплатная программа от отечественных разработчиков, умеет почти все то же самое, что и Acronis, но ужасно медленная.
Рис. 6. Восстанавливаем поврежденные разделы с помощью TestDisk
Заключение
Однако настало время закругляться. В этой статье я попытался показать неизведанные уголки и возможности жесткого диска. Не углубляясь в код, мы рассмотрели способ слива информации с накопителя. Если даже слегка приподнять этот занавес, открывается огромное поле для полета фантазии. Можно, например, перепрошить контроллер, чтобы скрыть от посторонних глаз особо важный раздел. Или портить данные при попытке клонировать жесткий диск, обезопасив себя таким образом от криминалистических утилит. Одним словом, вариантов много, так что каким образом использовать жесткий диск — выбор за тобой.
Програмный ремонт жёстких дисков HDD (Програмный (и не только) ремонт классических жёстких дисков HDD /Seagate /Samsung /IBM /Hitachi /HGST /Western Digital)
Програмный ремонт жёстких дисков HDD
Програмный (и не только) ремонт классических жёстких дисков HDD /Seagate /Samsung /IBM /Hitachi /HGST /Western Digital
Создать, что ли, отдельную тему по программному ремонту старых жёстких дисков?Tronix, у меня ушло около двух лет на то, чтобы фильтровать на эту тему весь интернет, читать тысячестраничные форумы (иногда - закрытые - через кэш поисковика), выгребая из тонн флуда крупицы здравого смысла, поднимать из веб-архива мёртвые сайты, расшифровывать дремучий сленг, шариться по мутным сайтам и файлопомойкам, ночи напролёт чахнуть над непонятными мануалами. Если этот FAQ поможет людям сэкономить эту пару лет и сходу починить хотя бы несколько дисков - я буду считать, что я не зря старался.
И да, "классические" Барракуды можно привести в состояние "прям как с завода" (если головки в принципе живые, конечно) при абсолютно любых программных проблемах, хоть с совершенно пустой служебкой. Если, конечно, действовать по инструкции, которую и следует написать (черновик есть).
Вклад в сообщество
Програмный ремонт жёстких дисков HDD (Програмный (и не только) ремонт классических жёстких дисков HDD /Seagate /Samsung
Навигация по теме:
Seagate (и отдельно по F3)
Conner
Fujitsu
Quantum
Maxtor
Samsung
Western Digital
IBM, Hitachi
Прочие (Kalok, Teac, Toshiba и т.д.)
Вклад в сообщество
Классификация по ремонтопригодности навскидку:
1. Диск не раскручивается - необходим ремонт платы электроники.
2. Диск не раскручивается, но время от времени издаёт писк - клин шпиндельного двигателя либо падение головок на пластины, как правило неремонтопригодно.
3. Диск раскручивается и начинает издавать громкий стук или неприятный шум и скрежет - головка не может считать сервоинформацию и удержаться на дорожке, за редким исключением неремонтопригодно.
4. Диск раскручивается, нормально распарковывается и останавливается, либо делает несколько негромко слышимых попыток позиционирования, либо просто не виден на интерфейсе без видимых/слышимых отклонений в поведении - повреждение служебной информации, можно пытаться отремонтировать. Иногда проблема бывает также в разъёме IDE.
5. Диск определяется, но имя диска искажено, каждая вторая буква испорчена - распространённая мелкая поломка, сломан или загнут один пин данных в разъёме IDE.
6. Диск определяется системой, но ёмкость равна нулю или отдаётся не своим именем (например, Maxtor ATHENA) - повреждена служебка, ремонтопригодно. Отдаваемое имя - технологическое имя семейства, содержится в ПЗУ.
7. Диск работает, но содержит бэды в умеренном количестве - можно попробовать их скрыть.
8. Диск работает, но содержит бэды, бэд-блоки расположены чередующимися группами по всей поверхности - отказ одной головки. В некоторых случаях ее можно отключить, получив исправную модель с меньшей ёмкостью.
9. К банке, не подумав, прикрутили неродную плату - что ж, сами виноваты.
Вклад в сообщество
KALDYH писал(а): 2. Диск не раскручивается, но время от времени издаёт писк - клин шпиндельного двигателя либо падение головок на пластины, как правило неремонтопригодно. Иногда спасти данные с такого диска можно, сначала надо раз 10 попытаться запустить в обычном режиме, далее если не выйдет, пытаться запустить подавая питание и одновременно совершая мощные щелбаны по крышке гермоблока. Попадаются полуубитые винчестеры, которые стартуют только в таком режиме. С них данные надо копировать сразу же, как только удастся раскрутить диск.KALDYH писал(а): 5. Диск определяется, но имя диска искажено, каждая вторая буква испорчена - распространённая мелкая поломка, сломан или загнут один пин данных в разъёме IDE.
Добавлю, что иногда причиной бывает второе устройство на канале, не совместимое с подопытным винчестером.
И ещё касаемо копирования данных с проблемных жёстких дисков. Ни в коем случае не надо это делать Проводником. Он имеет свойство при ошибках диска виснуть намертво. Лучше это делать Total Commander, тот с минуту помучившись спрашивает "ошибка чтения, пробуем ещё или ну этот файл", пробовать второй раз пробовать считать обычно смысла нет, а драгоценное время пока винт совсем коньки не отбросил уменьшается.
Вклад в сообщество
Платы первых IDE жестких дисков несли на себе следующие основные компоненты:
1. Микроконтроллер - стандартный МК общего назначения, 8/16-разрядный: Motorola 68HC11, Intel 8052, 80196, Fujitsu MB89000.
2. ОЗУ микроконтроллера
3. ПЗУ
4. Контроллер интерфейса IDE, обычно производства Cirrus Logic или Adaptec
5. ОЗУ дискового кэша
6. Микросхема драйвера шпиндельного двигателя и привода актуатора (spindle and voice coil motor driver, SP&VCM, "крутилка-шевелилка"), иногда с внешними силовыми ключами.
7. Канал чтения-записи.
8. Микросхема коммутатора-предусилителя.
9. Элементы защиты.
Вот, собственно, и всё, что следует в общем знать о ремонте плат жёстких дисков. Далее, в разборе по производителям, расскажу о некоторых специфических для определенных серий поломках.
Вклад в сообщество
ATauenis писал(а): Попадаются полуубитые винчестеры, которые стартуют только в таком режиме. С них данные надо копировать сразу же, как только удастся раскрутить диск. Ага, я тоже встречал. Причина тут обычно другая - износ подшипников шпинделя.Вклад в сообщество
Первые жёсткие диски, как известно обитателям этого форума, обходились вовсе без микроконтроллеров, только хард-логикой и аналоговыми схемами. Позже на платах появился микроконтроллер - первоначально только для управления позиционером и отработки старта-остановки, к обмену данными он отношения не имел. И только с введением интерфейса IDE микроконтроллер стал неотъемлемой частью жёсткого диска. Поначалу в его ведении была только обработка команд протокола ATA и позиционирование, позже к ним добавились буферизованный поиск и оптимизация перемещения коромысла, стратегия кэширования, логи SMART, трансляция и переназначение секторов и многие другие функции, для управления позиционером и всей сервосистемой появился отдельный сопроцессор, а для сепарации данных - DSP. Соответственно с этим вырастал и объём требуемых для его работы данных - у первых винчестеров почти всё умещалось в ПЗУ, у новейших в нём только начальный загрузчик. Все вместе эти данные, как исполняемый код, так и всевозможные таблицы, образуют служебную информацию ("служебку"). Хранится она на поверхности жёсткого диска, на специально выделенных для этого цилиндрах (у некоторых моделях - на внешних, где плотность записи ниже, с отрицательными номерами, у других - в середине диска, в специально выделенной служебной зоне с пониженной плотностью), обычно имеет основную копию только по одной (нулевой, самой нижней) голове (называемой служебной - в принципе, модифицировав микропрограмму, можно назначить служебной любую другую), по соседней голове хранится резервная копия. Служебка недоступна пользователю. Для доступа к служебной информации по интерфейсу необходимо ввести в регистры накопителя т.н. технологический ключ, или Super-On. Откуда его узнают? Реверс-инженеринг прошивок накопителей из пакетов обновлений прошивки, фирменных служебных утилит, утечки с заводов-производителей (обычно через китайцев).
Подробнее о структуре служебки отдельных накопителей можно почитать в документации на PC3000/HRT
Наверное радиолюбители и начинающие мастера ремонтники электроники, занимающиеся этим для собственного удовольствия, далеко не все имеют профильное образование по электронике - радиомеханика, регулировщика, или инженера-электронщика. Но большая часть из них все-же так или иначе имеет какое-либо отношение к электротехнике.
В моем окружении есть даже электросварщики, занимающиеся мелким ремонтом электроники, чаще всего заключающемся в замене банальных вздувшихся конденсаторов на материнских платах и блоках питания, причем не имея ни необходимых приборов, ни теоретической подготовки. Что-либо серьезнее этого способно поставить их в тупик. Видя это и вспоминая себя на данном этапе, спустя годы после момента, когда ты принял решение целенаправленно изучать электронику ты видишь, что это решение было правильным и знания в этой области - теория, тесно увязанная с практикой, будут всегда востребованы обществом. И вот тому яркий пример.
Какое-то время назад мне один знакомый инженер электронщик подарил жесткий диск, который не определялся в BIOS и компьютер подвисал на минуту, на этапе определения жестких дисков при старте компьютера. Погуглив в интернете, а жесткий диск был Maxtor 500 Gb SATA 2, нашел что эта проблема была актуальна для выпущенных несколько лет назад жестких дисков брендов Maxtor и Seagate.
Связана она была с глюком прошивки BIOS жесткого диска и большая часть дисков этой проблемной серии, там было несколько линеек, требовали обязательной перепрошивки иначе в один прекрасный момент отказывались определяться в БИОС материнской платы, при старте компьютера. Проблема заключалась в том, что прошить жесткий диск можно только тогда, когда он виден в BIOS. Как и всякий человек имеющий программатор, сперва полез искать Дамп прошивки, решив снять плату винчестера и прицепившись специальной клипсой для прошивания соединенной с программатором, просто перекатить прошивку.
Клипса для прошивания программатором
Но здесь все было намного сложнее: нельзя было взять слитый другим пользователем дамп прошивки от какого-то другого жесткого диска, даже аналогичной модели, и тупо переписать бинарный файл прошивки. Этот способ работает с любой другой техникой, такой как материнские платы, роутеры (условно, про одинаковый МАС адрес промолчу), мониторы, видеокарты, но не подходит для перепрошивания жестких дисков. Дело в том, что в прошивке хранятся, назовем их условно, калибровочные данные - это данные о поверхности жесткого диска, Smart, BAD блоках, механике, и т.д.
Комплекс восстановления жестких дисков PC3000
Поэтому перепрошить неопределяющийся в BIOS жесткий диск не имея очень дорогостоящего специального обрудования для диагностики и реанимирования жестких дисков было нереально. Значит на первоначальном этапе нам нужно, чтобы наш винчестер стал хотя бы виден в BIOS. Для этого нам нужно удалить проблему, имеющую в среде специалистов и просто айтишников название “Муха ЦЦ” (СС). Откуда взялось такое название?
Это означает, что вы счастливый обладатель жесткого диска из этой проблемной серии. Вкратце опишу (подробно процесс был описан в предыдущей статье), как подключить подобный конвертер USB-UART, который также называют еще USB-TTL. Мы должны обязательно подключить общую землю идущую с переходника USB-UART и “перекрестив” пины RX и TX, соединив RX с TX, а TX с RX. Эти пины находятся на задней стороне корпуса жесткого диска рядом с разъемами SATA и питание.
Адаптер USB-TTL CH340G
Как уже написал в прошлой статье посвященной применению данного адаптера USB-UART, для перепрошивки, вернее управления процессом перепрошивки роутера, нам будет нужно правильно экспериментально подобрать скорость СОМ порта, обычно это скорости 33600, 57600, и 115200 Бод (другие скорости не встречал) в консоли. Иначе, если скорость будет подобрана неправильно, мы увидим как и в случае перепрошивки роутера кракозябры, вместо обычного английского текста.
Ошибки в консоли
Итак, мы правильно настроили консоль. Правильно выбрали в терминале нужный СОМ порт.
Напомню, что данный адаптер USB-UART стоит всего приблизительно 40 рублей на Алиэкспресс и может иметь в своем составе различные микросхемы, все они перечислены в предыдущей статье. Для тех, у кого нет возможности приобрести данный адаптер, существуют варианты подключения в консоли с помощью Data кабеля для перепрошивки древних телефонов.
Теоретически (ведь мы же электронщики, а не айтишники, по крайней мере большая часть из нас) мы сможем перепрошить жесткий диск вообще не имея никакого адаптера, согласовав с помощью резисторов логические уровни RX и TX, идущие с COM порта, (питание с COМ порта брать не рекомендую из-за риска перегрузить порт), которые есть на каждом древнем системном блоке. Но здесь есть один нюанс, почему я не рекомендую этот способ новичкам.
USB-TTL 3.3 Вольта
- Дело в том, что напряжение питания с адаптера нам необходимо строго 3.3 вольта - не больше и не меньше, и хотя в целях безопасности питание вообще не рекомендуют брать с адаптера, а использовать родное питание от блока питания ПК, отклонение в номинале в большую сторону чревато выходом из строя нашего жесткого диска.
- Второй важный момент заключается в том, что логические уровни на СОМ порте системных блоков и ноутбуков различных годов выпуска имеют различное напряжение - от 7 до 12 вольт, если не ошибаюсь, и подбирать номинал токоограничивающего резистора обеспечивающего нужное падение напряжения нам придется с помощью измерений мультиметром, полученных уровней RX и TX, поэтому такой способ подходит только для людей умеющих уверенно держать паяльник в руках, для всех остальных это получается скорее совет из категории вредных.
Это и является причиной того, что всеми любимый (и мной, в том числе) программатор Громова для МК AVR, собранный несколько лет назад, отказывается работать с некоторыми относительно современными материнскими платами и ноутбуками, потому что применив резисторы стандартного номинала для этой схемы мы получаем слишком низкие по напряжению логические уровни, уже не соответствующие логической единице по вольтажу, при программировании микроконтроллеров AVR, а соответственно, наш программатор выдает либо логический ноль вместо единицы, либо вообще мусор, который не всегда правильно идентифицируется при прошивании микроконтроллера.
Код прошивки оболочка программатора
То же самое, мусор при записи прошивки в память микроконтроллера, мы можем получить используя длинные неэкранированные кабеля или провода, например СОМ или LPT для самодельных программаторов, либо уже от программатора к прошиваемому микроконтроллеру. По этой же причине, когда я вижу на видео, например на Youtube, провода длиной 30-40 см и длиннее, от подобного USB-UART адаптера или самодельного программатора МК AVR или Flash или EEPROM памяти, то удивляюсь технической безграмотности людей не понимающих последствий своих действий.
Флеш память BIOS DIP-8 корпус
Добро если нам нужно разово прошить микроконтроллер AVR какой-либо самоделки, а если нам нужно перепрошить материнскую плату самодельным программатором, BIOS на которую найти в интернете, даже на специализированных сайтах очень трудно - мы можем потерять шанс на восстановление нашей материнской платы родной прошивкой, если найденный дамп по каким-либо причинам не подойдет.
Ошибка при верификации МК
Длинные провода от адаптера USB-TTL
Кто-нибудь, уже имеющий ранее дело с микроконтроллерами или перепрошивавший BIOS до этого на какой-либо технике любым китайским программатором скажет: 30 См - это примерно и есть стандартная длина шлейфа идущего от программатора к микроконтроллеру. Дело в том, что в таких фабричных шлейфах, если вы замечали, всегда идет большее количество жил, чем Пинов на колодке программатора. Связано это с тем, что каждая сигнальная жила имеет параллельно с ней идущий “земляной” провод.
Отличия шлейфов IDE
Это профессиональное решение применяемое в компьютерной технике (вспомните хотя бы IDE шлейфы, 40 и 80 жил, АТА 33, и АТА 66-100 и имеющие одинаковое количество 40 контактов) и любой другой, где помехи недопустимы, и позволяет использовать более длинные шлейфы и провода, не имеющие экранирования. Итак, теперь когда мы отклонившись от темы статьи разобрали все эти нюансы, вернемся снова к нашей теме - процессу удаления Мухи ЦЦ.
Просто видя как школьники и даже более взрослые люди, обучают массы в видео на YouTube и в статьях неправильно работать с прошиванием цифровых микросхем - я позволил себе это отклонение от темы. Итак, у вас есть винчестер с проблемой определения в BIOS: Maxtor или Seagate, жесткие диски других производителей таких проблем вроде бы не имеют.
Жесткий диск - работа в консоли
Вам нужно сперва набрать в поиске список моделей проблемных винчестеров, а их не так много, если же ваш жесткий диск входит в их число - нужно зайти на официальный сайт производителя и по серийному номеру жесткого диска окончательно убедиться в том, что это именно ваш случай, а проблема не связана с какой либо другой программно-аппаратной поломкой. Вторым этапом должно стать подтверждение в терминале после подключения USB-UART адаптера и подачи питания на винчестер появление надписи, имеющей в своем составе буквы “СС”.
Подключение адаптера при перепрошивке
Затем нужно будет погуглить, в зависимости от вашей модели винчестера и производителя, какие манипуляции надо произвести с жестким диском, для того чтобы получить возможность набирать текст в консоли. Насколько помню, там всего три-четыре варианта. Для этого сначала нам нужно будет остановить двигатель жесткого диска. Как это можно сделать?
Замыкаем точки на плате винчестера
Для каждого подвида проблемных жестких дисков существуют свои способы, в моем случае потребовалось замкнуть два маленьких пятака, контактные площадки на плате, в другом случае может потребоваться подсунуть кусочек офисной бумаги под контакты идущие с платы управления на двигатель (не глянцевой (!), во избежание замыкания).
Модель винчестера подверженная мухе ЦЦ
После этого требовалось набрать определенный текст в консоли. Попытавшись замкнуть эти пятаки, в моем случае утконосами, понял что это дохлый номер и мне все же придется подпаиваться к пятакам тонким проводом МГТФ. Данный провод завязал узлом и приклеил к плате винчестера на свободное от контактов место капелькой термоклея. Потому что восстанавливать эти маленькие пятаки - это та еще проблема, а оторвать их можно было очень легко, совершив одно неловкой движение в спешке. К проводам МГТФ, припаянным к пятакам, подсоединил джамперы - перемычки “папа” и “мама”, используемые в конструировании на Ардуино. Затем оставалось лишь дождаться нужного момента после включения и замкнув наши перемычки остановить двигатель.
Джамперы Ардуино для адаптера
Все, набирать текст в консоли стало возможным, пол дела сделано. Затем нашел на специализированном сайте определенную последовательность команд, которую одну за другой нужно было ввести в терминале. Ничего сложного это не представляло собой - единственное, что для каждого подвида плат проблемных винчестеров эта последовательность была немного различной. В конце статьи приведу в архиве полный текст из статьи, по которой набирались команды, ограничившись здесь кратким описанием процесса восстановления, в общих чертах.
Список винчестеров подверженных мухе цц
Муха цц на винте
Сейчас наш винчестер уже должен быть виден в BIOS материнской платы. В чем мы и убеждаемся, с замиранием сердца) - не впустую ли были наши труды? Включаем ПК, жесткий диск определяется в BIOS, в моем случае загрузка дальше запроса BOOTa не пошла, это и понятно - различия в железе ПК, так и должно было быть. Ради интереса загрузился со своего жесткого диска, там вроде бы не стояло даже пароля на Windows и все файлы были видны, хотя когда есть желание даже это не становится проблемой, подключив реанимируемый жесткий вторым и полазил по чужим файлам, ничего ценного для себя, впрочем, не нашел.
Прошивка винчестера из образа диска
Но это еще пол дела, винчестер все еще на грани риска, так как имеет старую прошивку, проблемную, и в любой момент все может повториться. Но теперь он виден в BIOS и перешить его не составит труда, ищем образ диска с прошивкой на которой уже не будет подобных проблем, выпущенной специально производителем. Взять ее можно на официальном сайте или специализированных форумах.
Виктория - выбираем ремап
Включаем загрузку с CD–ROM в BIOS и выбрав нужную модель из списка, а все остальные жесткие диски, во избежание ошибок, лучше вообще отключить отсоединив шлейф, нажимаем: прошить наш жесткий диск. И здесь нас поджидает еще одна возможная проблема - после перепрошивки SMART жесткого диска будет чистым, а значит чтобы мы не записали при работе жесткого диска, файлы на не помеченные сектора с возможными BAD блоками, сбойными секторами, нам нужно загрузиться с образа диска с программой Victoria или подобной, и выбрать в ней сканирование и расширенный Remap.
Бед блоки при сканировании диска Викторией
Таким образом мы получим представление о поверхности и состоянии механики нашего жесткого диска, в моем случае крупно повезло, не было ни только ни одного сбойного сектора, не было даже ни одного очень медленного сектора - поверхность была практически в идеале. Здесь, как писали на форумах в темах посвященных восстановлению винчестеров, нас иногда ожидает очень неприятный сюрприз, после перепрошивки в небольшом проценте случаев появляется очень много BAD блоков, сбойных секторов, но в моем случае повезло.
Отремонтированный Макстор 500 Гб
Подведём итог о проделанной работе
Данный случай доказывает, что ремонты электроники это отнюдь не скучно и трудно, или доступно только специалистам - профессионалам, в области ремонта или восстановления информации, а наоборот, возможно самостоятельно произвести каждому начинающему аккуратному радиолюбителю или домашнему мастеру -ремонтнику, умеющему сочетать приятное с полезным. Архив с источником статьи по которой восстанавливал свой жесткий диск вы можете скачать тут. Всем удачных ремонтов! Специально для портала Радиосхемы - AKV.
Форум по обсуждению материала ПЕРЕПРОШИВКА БИОС ВИНЧЕСТЕРА HDD
Линейный светодиодный драйвер мощностью 3 Вт с кнопкой и резистором регулировки тока - схема на IS32LT3120.
Электромагнитное реле - теория и практика применения. Обозначение, виды, основные параметры и правила эксплуатации.
Делаем цифровой TLIA-тестер Li-Ion аккумуляторов (измеритель емкости) на Atmega8 и дисплее WH1602.
Изучим различные типы стабилизаторов напряжения - от простых схем на стабилитроне, до транзисторных и микросхемных.
- В этой теме выбираем жесткий диск (HDD) и решаем явные проблемы с диском. Остальные комплектующие в соответствующих темах
- Твердотельный (SSD) накопитель выбираем тут: SSD - накопители на основе флеш-памяти
- Выбор сетевого накопителя (NAS) тут: Выбор и обсуждение NAS
- Восстановление поврежденной информации обсуждаем в теме: Восстановление поврежденной информации с жестких дисков
Вобщем у меня сломался очередной винт. Seagate 7200.10 (Уже третий за 4 года их юзания). У всех троих сломались головки. Так вот решил что следующий винт будет от другой фирмы, поэтому собственно и решил поинтересоватся какие народ больше предпочитает
У меня сейчас seagate, раньше были maxtor, так вот: Сигейт уже глючит, а максторы у меня годами работали.1. Что такое IMB? Или это IBM (МежДелМаша)? Если да, то IBM давно уже продала свой HDD-бизнес.
2. Fujitsu кажется тоже уже давно избавилась от производсва хардов.
3. Это все зависит от партии, от завода и от прочего. Я предпочитаю сигейты, хотя и они у меня дохли. Брак есть у всех.
4. У тебя харды в каком положении работают? (надо горизонтально, платой вниз - этикеткой наверх)
CDK
1) Опечатка
2) Хз, недавно видел фуджисту 2 годичной давности
3) Все три сигейта из разных партий, и разных моделей :), 2 сделаны в китае, 1 в тайланде
4) Естественно этикеткой вверх.
Сигейты служили верой и правдой, но слишком уж не долго. ни с того ни с счего терять каждый год информацию (Причём много) мне надоело :(, буду пытать счастья с Western-Digital
3) Все три сигейта из разных партий, и разных моделей smile_good.jpg, 2 сделаны в китае, 1 в тайландену не знаю. Из более десятка барракуд (от 200Гб до 1 Тб, все 7200) только один, кажется, битый (400 Гб). Все таиландские, вроде бы. Максторы стоят. Одному 5 лет, второму год. оба работают идеально. на новом стоит кулер и он установлен платой вверх У меня два винта сигейт, один макстор, и один ВД. Никаких проблем с ними не было.
Не по теме, но спрошу.
собираюсь брать хард, что лучше взять: один на 1 Тб или 2 по 500 гб ?
Пардон, но что ты с ними делаешь? о.О
У меня за всю жизнь тьфу*3 ни один не поломался.. Сейчас ноутбуку 2,5 года, ес-но винт не менял и как бы и не собираюсь..
Но как можно убить аж 3.
Да еще в рэйд их. Объем тот же, а скорость в 2 раза больше. два винта было, оба WD, нареканий никаких, один работал 2 года(продал с компом), второй на 160гб третий год пашет. оба ide.
Логос - просто использовал их по назначению, но они работали 24 часа в сутки без передышки (Комп не выключаю)
А может их как-то подручными средствами починить можно? Вобщем симптомы такие - при загрузке компа в винте постоянно щелкает головка, встаёт на первую дорожку, и тут-же с щелчком обратно на стоянку возвращается (Я разобрал один из них)
Комп определяет имя винта, и пишет что S.M.A.R.T. is available, but failure
Примерно то же самое было: ни с того ни с сего начинал щёлкать, а потом экран смерти.
Производителя не помню - апстену в прошлом году разбил.
Хотя какие они производители - наверняка этикетки разные нашлёпаны на продукцию с одного конвеера, а чем партия качественнее - тем дороже, а там уж кто на что горазд - такую и закупает. Во всяком случае с болванками и флэшками ситуация примерно такая, не думаю, что тут исключение. А может их как-то подручными средствами починить можно? Вобщем симптомы такие - при загрузке компа в винте постоянно щелкает головка, встаёт на первую дорожку, и тут-же с щелчком обратно на стоянку возвращается (Я разобрал один из них)
Комп определяет имя винта, и пишет что S.M.A.R.T. is available, but failure
Там, знаешь ли, вакуум :)
У нас такое было только на IBM, 60-ках. IBM тогда сворачивала свой бизнес по хардам и забила на контроль качества вообще. В итоге перешли на сигейты. С тех пор такого давно не было. Встречается брак, но не так уж и часто. Компы тоже не выключаем. Вообще говоря если комп работает круглосуточно и постоянно трещит хардами, то ставь серверные харды.
Читайте также: