- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Устройство

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

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

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

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

Загрузка с PXE

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

Чтобы загрузить образ дискеты по PXE, нужен специальный загрузчик. Один из популярных – PXELINUX, входящий в состав Syslinux, модуль syslinux [8] из 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-архива [9].

Популярный способ настройки загрузки по 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 [10].

Автор: SLY_G

Источник [11]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/staroe-zhelezo/296736

Ссылки в тексте:

[1] модифицированная частотная модуляция: https://ru.wikipedia.org/wiki/MFM-%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5

[2] инструкции: https://slomkowski.eu/retrocomputing/reading-data-from-old-miniscribe-hard-disk/miniscribe-2012.pdf

[3] спецификации: https://slomkowski.eu/retrocomputing/reading-data-from-old-miniscribe-hard-disk/WD1002A-WX1.pdf

[4] текстовом файле: https://www.dcllabs.net/docs/1002awx1.txt

[5] Option ROM: https://en.wikipedia.org/wiki/Option_ROM

[6] MDPA: https://ru.wikipedia.org/wiki/MDA_(%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%B0%D0%B4%D0%B0%D0%BF%D1%82%D0%B5%D1%80)

[7] PXE: https://ru.wikipedia.org/wiki/PXE

[8] syslinux: https://ru.wikipedia.org/wiki/Syslinux

[9] ZIP-архива: https://slomkowski.eu/retrocomputing/reading-data-from-old-miniscribe-hard-disk/pxeboot.zip

[10] преобразовал в RTF: https://slomkowski.eu/retrocomputing/how-to-convert-ms-word-for-dos-documents-to-modern-format/

[11] Источник: https://habr.com/post/427335/?utm_campaign=427335