Хабрахабр

[Перевод] Считываем данные со старого жёсткого диска MiniScribe

Перевод статьи с сайта программиста и любителя старого железа Майкла Сломковски

MFM – это модифицированная частотная модуляция, и эту технологию часто ассоциируют с громоздкими жёсткими дисками из эры до IDE/Parallel ATA. Ко мне в руки попал старый MFM-диск, MiniScribe 2012, вместе с контроллером. 0) обладали определённой сентиментальной ценностью для предыдущего владельца, поэтому я решил их извлечь. Древние данные, хранящиеся на диске (в основном, документы MS Word 4.

Жёсткий диск MiniScribe 2012

Жёсткий диск — MiniScribe 2012 MFM, произведён, вероятно, в 1984-м. Он стоял в IBM XT-совместимом компьютере. Этот монстр занимает два слота по 5.25" и весит более двух килограмм. Как указано в инструкции, объём его просто поражает воображение – целых десять мегабайт. Коннектор питания – стандартный Molex. Диск подключается к карточке контроллера двумя кабелями.

Его спецификации легко найти. У диска MiniScribe в комплекте есть выделенный контроллер 8-bit ISA под названием WD1002A-WX1. В текстовом файле содержатся инструкции по установке; также нам может пригодиться список совместимых устройств.

Список повреждённых секторов должен храниться в ROM контроллера. В теории контроллер способен работать с любым приводом, поддерживающим протоколы ST506/412, но на практике всё не так просто. Часто новый привод начинает работать после соединения его с новым контроллером и проведения низкоуровневого форматирования. Для этого требуется специальное ПО.


Контроллер диска WD1002A-WX1 MFM

Его вызывает BIOS материнской платы во время последовательности POST. У контроллера есть свой BIOS, который обычно называется Option ROM. Код регистрирует хук на прерывании INT 13 и в результате становится доступным из DOS при помощи стандартного вызова прерывания.

Устройство

К счастью у меня была старая материнка AT (ATC-1020) с ISA-слотами и процессором Pentium. На процессоре не было радиатора, но я установил джамперы на плате так, чтобы он работал на минимальной скорости, и приладил временный радиатор при помощи резинки. Также я поставил в плату модуль 32 MB DIMM RAM.

Материнка его успешно распознало, что видно на фотографии. У меня не было графической VGA-карточки ни для PCI, ни для ISA, поэтому я использовал MDPA со специальным жёлтым монохромным дисплеем.

Диск ожил и даже загрузился – ура! Для проверки диска я отключил в BIOS IDE-контроллер и попытался загрузиться.

Загрузка с PXE

Я предположил, что для того, чтобы поиграться с этим диском MiniScribe, мне понадобятся утилиты для DOS, поэтому я решил загрузиться с дискеты с MS-DOS. Поскольку с физическими дискетами возиться неудобно, я решил использовать сетевую загрузку. К счастью, у меня была сетевая карта PCI Ethernet с поддержкой PXE: 3com 3C905C-TXM

Один из популярных – PXELINUX, входящий в состав Syslinux, модуль syslinux из Arch Linux. Чтобы загрузить образ дискеты по PXE, нужен специальный загрузчик. На машине Linux нужно создать директорию для сетевой загрузки и скопировать туда
PXELINUX:

cp /usr/lib/syslinux/bios/ .
mkdir pxelinux.cfg

Затем создать текстовый файл pxelinux.cfg/default со следующим содержимым:

default dos
label dos
kernel memdisk
append initrd=fdboot.img

Эти файлы можно скачать в виде ZIP-архива. Образ загрузочной дискеты надо сохранить, как fdboot.img.

Это сложная задача, но к счастью, я нашёл небольшой и простой в использовании сервер netboot (aur/netboot под Arch Linux). Популярный способ настройки загрузки по PXE – это dhcpd и TFTP daemons. В моём роутере я запускал его, не отключая DHCP server, поскольку они вроде не должны конфликтовать. Он комбинирует возможности серверов DHCP и TFTP.

После DHCP-запроса сервер возвращает файл pxelinux. Запускаете netboot в директории, где лежат загрузочные файлы PXE. 0*.

netboot {broadcast IP} {local machine IP} {IP for client machine} {MAC pattern}

{MAC pattern} должен соответствовать MAC-адресу сетевой карты клиента.

168. К примеру, мой адрес в локальной сети 192. 0, IP моей машины с Linux 192. 1. 1. 168. 10 а MAC моей карты 3com заканчивается на 66:

netboot 192.168.1.255 192.168.1.10 192.168.0.20 -66

В качестве fdboot.img я использовал стандартный диск MS-DOS 6.22. Затем я всё это загрузил – и оно заработало!

Попытки скопировать данные с IDE-диска

Поскольку у MFM-контроллера собственный BIOS, диск было видно под MS-DOS. Но мне требовался накопитель, на который я бы мог скопировать файлы. Сначала я решил попробовать IDE-диск. У материнской платы было два IDE-канала. Я подключил диск на 40 Gb от Seagate. Система его обнаружила, но, к сожалению, после этого MFM перестал быть доступным. Игры с джамперами не помогли. Возможно, происходил какой-то конфликт между двумя дисковыми процедурами.

Копирование данных на USB-флэшку

Затем я попробовал другой подход. Я установил карту расширения PCI USB и драйверы USBASPI для MS-DOS. Теперь конфликтов не было, и мне удалось скопировать весь диск на USB-флэшку!

xcopy c:\ d:\ /e /k

Слева направо: графическая карта MDA, контроллер диска MFM, сетевая карта 3com Ethernet, карта расширения USB. Четыре карты расширения на материнке.

В результате у меня появилось более двух сотен файлов Microsoft Word для DOS, которые я преобразовал в RTF.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть