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

в 12:00, , рубрики: ATA, IDE, MFM, MiniScribe, PCI, старое железо

Считываем данные со старого жёсткого диска MiniScribe - 1

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

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

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

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

Считываем данные со старого жёсткого диска MiniScribe - 2

Считываем данные со старого жёсткого диска MiniScribe - 3

Считываем данные со старого жёсткого диска MiniScribe - 4

Считываем данные со старого жёсткого диска MiniScribe - 5

Считываем данные со старого жёсткого диска MiniScribe - 6

Считываем данные со старого жёсткого диска MiniScribe - 7

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

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

Считываем данные со старого жёсткого диска MiniScribe - 8
Контроллер диска WD1002A-WX1 MFM

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

Устройство

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

Считываем данные со старого жёсткого диска MiniScribe - 9

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

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

Загрузка с PXE

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

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

cp /usr/lib/syslinux/bios/{ldlinux.c32,memdisk,pxelinux.0} .
mkdir pxelinux.cfg

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

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

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

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

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

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

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

К примеру, мой адрес в локальной сети 192.168.1.0, IP моей машины с Linux 192.168.1.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

Считываем данные со старого жёсткого диска MiniScribe - 10

Считываем данные со старого жёсткого диска MiniScribe - 11

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

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

Автор: SLY_G

Источник


* - обязательные к заполнению поля