Tag Archives: Сделай сам

Сделай сам (Do it yourself) в восстановлении данных

Изобретаем жесткий диск. Часть 10. Работаем с макетами.

Итак, новости проекта. Вначале по закупкам и розыскам материалов. 1) Пришел генератор на 100 МГЦ и диоды из «чип и дип» — можно запустить АЦП AD6645. Параллельно нашел, что генератор на 106 МГц можно выпаять из старых Fibre Channel дисков. 2) Раздобыл еще 3 диска из того же семейства, что и изначальный WD21000. Вот какие диски и версии ПЗУ сейчас… Read more »

Изобретаем жесткий диск. Часть 9. Первый орден/макет.

Как обычно, орда/империя хочет похитить секрет бессмертия/магнитной записи у заокеанских и не очень джедаев 🙂 После некоторого перерыва продолжаем разбирать старый WD21000 емкостью аж целый гигабайт! Но теперь мы, кроме как разбирать, будем рядом еще постепенно собирать обратно. Правда, автор еще пока не располагает достаточным количеством дисков из семейства нашего подопытного. Но, думаю, это решится в ближайшие месяц/два. А пока… Read more »

Изобретаем жесткий диск. Часть 6а. Видео про технологический режим.

В этой серии при помощи дизассемблера IDA Pro и плагина процессора i80C196NU находим заводскую технологическую команду перезагрузки диска и тестируем ее работу при помощи PC-3000 в режиме ATA commander. Предыдущий пост серии.

Изобретаем жесткий диск. Часть 7. Схема.

В предыдущих частях мы начали дизассемблирование на основе только документации к процессору. Однако, хорошо бы посмотреть как программа управления связана с остальной аппаратурой. Для этого вооружимся тестером с пищалкой, платой WD21000, документацией на микросхемы и начнем рисовать схему электрических соединений. Так как в данном исследовании мне хотелось бы по максимуму использовать операционную систему Linux, то рисовать схему будем в KiCad…. Read more »

Изобретаем жесткий диск. Часть 6. Технологический режим.

Обмен данными с жестким диском производится через интерфейс IDE, SATA (или какой-либо другой) при помощи стандартизированных команд. Чтобы прочитать данные с диска достаточно использовать всего две команды: идентификации и, собственно, чтения. Первая нужна для получения размера диска и определения типа команды чтения, которая будет работать со всей поверхностью диска. Если помните, то за историю своего существования жесткие диски преодолевали целый… Read more »

Изобретаем жесткий диск. Часть 5. Дизассемблирование.

Итак, приступим к самому магическому действу, а именно, исследованию прошивки нашего подопытного накопителя. Для этого будем использовать IDA disassembler. Запускаем сей продукт, выбираем «открыть файл» и указываем файл считанный из ПЗУ(см. часть 3 данного опуса). Далее появляется вот такое окно: Изменяем тип процессора на «Intel 80196NP». Хотя на нашей плате стоит версия NU, однако, с точки зрения разбора кода программы… Read more »

Изобретаем жесткий диск. Часть 4. Документация на микросхемы.

Перед тем как переходить к детальному разбору конструкции и программы управления жесткого диска WD AC21000 добавим к проекту всю имеющуюся документацию на микросхемы. Файлы загружены на GitHub: https://github.com/rlabru/WD21000/tree/master/doc Файлы имеющие префикс «t_» — это попытки перевести документацию на русский язык.

Изобретаем жесткий диск. Часть 3. Удалось прочитать ПЗУ.

В прошлом выпуске была реализована плата-переходник для подключения ПЗУ к плате Arduino MEGA2560. С тех пор удалось протестировать плату, написать и запустить программу чтения данных из ПЗУ. На рисунке ниже показан основной цикл программы. Полностью программу можно скачать с репозитория проекта на GitHub. Основной цикл void loop() обрабатывает две команды, подаваемые от ПК к устройству чтения ПЗУ платы Arduino: „d“… Read more »