Tag Archives: WD

Жёсткие диски компании WD (Western Digital): восстановление информации, ремонт, тесты

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

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

PC 3000 зависающие HDD на примере Western Digital

Большинство современных дисков разных производителей имеют общую одинаково проявляющуюся неисправность: по звукам диск запускается как обычно, но при этом либо очень медленно читает данные, либо долгое время висит в состоянии BSY, а после 2-3 минут иногда выдает ошибку, а иногда висит до бесконечности. В качестве примера взят диск модели WD20EARS. Для доступа к данным пользователя используется комплекс ACE Lab PC-3000…. 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 »

Изобретаем жесткий диск. Часть 2. Чтение ПЗУ.

Целью под номером три в списке запланированных работ по «жесткому диску» значится: «считать микросхему ПЗУ». Для этого необходимо прочитать содержание старой 5-и вольтовой ПЗУ AT27C516 с разрядностью 16 бит и объемом 64К. Подходящего программатора и переходника под руками нет. Однако, возможно решить задачу при помощи подключения данной ПЗУ к Arduino MEGA2560. На фото ниже представлена реализация такого подключения.