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

https://slomkowski.eu/retrocomputing/reading-data-from-old-miniscribe-hard-disk/
  • Перевод


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

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

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


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













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

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


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

У контроллера есть свой BIOS, который обычно называется Option ROM. Его вызывает BIOS материнской платы во время последовательности POST. Код регистрирует хук на прерывании 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

Чтобы загрузить образ дискеты по 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





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

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

Похожие публикации

Комментарии 44
    +1
    Наглядное свидетельство устаревания интерфейсов и ПО… столько действий, чтобы просто прочесть данные, и это ещё диск живой вполне, всего один data error, похоже!

    А ещё, в его наколенной системе памяти больше, чем размер самого диска.

    И наконец, странно, что он не заморочился настроить заливку данных по сети вместо копирования на USB. Логично же, что если есть сеть, по ней можно что-то отправить. А MSDOS 6.22 работать с сетью, кажется, уже как-то умел.
      0
      А MSDOS 6.22 работать с сетью, кажется, уже как-то умел.

      Без танцев не умел
        0
        Да чего там танцев то? Втыкаем сетевую карту, настраиваем пакетный драйвер — и вперёд.
        Под DosBox
        Под чистым DOS
          0
          То есть не умел?
          Грузишь драйвер сетевушки, грузишь драйвер протокола, грузишь клиент/сервер и вперед.
            0
            Такой привод использовался одно время
            и сеть под DOS была, драйвер прописать в config.sys и помойку что то в autoexec.bat.
            и тупо задержку поставить между загрузками и инициализации драйверов. тк на тех медленных машинах занимало пару сек. А кто не додумался задержки ставить тот действительно с бубном плясал — с 10 раза только все инициализировалось.
            +1
            Наглядное свидетельство устаревания интерфейсов и ПО… столько действий, чтобы просто прочесть данные

            В принципе, для девайса, которому уже 35 лет, не слишком много. Можно было бы даже упростить — вручную в BIOS выделить прерывание для MFM, и тогда можно было бы просто загрузиться с IDE-диска в современную операционную систему, и переписать данные на флешку.
            +4
            Этот монстр занимает два слота по 5.25"

            Справедливости ради: один слот.
              +1
              Хм, а по внешнему виду — именно два слота. На его место по высоте вполне влезет два 5.25" дисковода.
                +4
                5.25" привод ODD занимает полслота 5.25", так что два привода как раз дадут один слот.
                  0
                  Ну может быть.
                  Я просто помню, что у меня был МФО винчестер на 10 мбайт и два 5.25" дисковода.
                  Как раз винчестер по высоте был как два дисковода.
                    0
                    Видимо я слишком коротко выразил мысль, попробую развернуть:
                    В то время когда на рынке появился стандарт на 5.25" устройства, никаких оптических приводов и в планах не было, а были вот такие вот монстры. Монстры — это по нонешним временам, а по тогдашним — передовые технические устройства, и девайсов меньших габаритов, чем такой, как субж, не было. Поэтому он был размером в 1 слот. Но прогресс брал своё и появились девайсы в 2 раза меньшей высоты: те же HDD, FDD и пр. Таких в стандартный слот можно было поставить пару, поэтому их назвали half-height (половинной высоты). Со временем устройства полной высоты почти полностью отмерли, за крайне редким исключением, типа реобаса (NZXT Sentry LX LCD) или некоторых корзин для HDD, и для простоты стали считать отсеком 5,25" не полной высоты, а половинной.
                    Ну это как с размером SIM-карт: много раз слышал про mini-симку, что это стандартная, тогда как стандартная — это размером с пластиковую карту 85х55мм, но кто ж сейчас вспомнит про такие.
                      0
                      Вспомнить на самом деле легко — многие сотовые операторы до сих пор продают симкарты, которые перед использованием «выламываются» из пластика полноразмерной SIM-карты.

                      Большинство правда не воспринимает этот кусок пластика, как «большую сим-карту», а просто какой-то странный пластиковый держатель. Но если где-то вдруг обнаружится устройство требующее полноразмерную симку, ее можно туда вставить без каких-либо адаптеров:
                      image

                      А вот полноразмерные 5.25" слоты помнят только настоящие олдфаги IT-аксакалы.
                        0
                        Хм. Когда появились HDD, уже были дисководы 5.25", и высота у них была как раз небольшой.
                        Но ок, возможно высоту в те времена особо не стандартизировали.
                          +1
                          Дисководы 5.25", когда появились HDD, были такого же размера. Это потом они уже уменьшились по высоте в два раза. Собственно, как и HDD. Посмотрите на фото, например, IBM PC. Или ДВК начала 1980х.
                            0
                            Стардартизировали, и старые 5.25 дисководы занимали как раз полный стандартный слот. Любо вообще поставлялись в собственном отдельном корпусе, т.к. были еще крупнее. Советские сдвоенные (чтобы можно было копировать/переносить без жесткого диска) 5.25" дисководы были размером примерно с современный mini-ATX системный блок.

                            Потом уже существенно позже появились «тонкие» (половинной высоты) приводы для дискет. Вот хорошая картинка с полным зоопарком дисководов от 8" полной высоты, до 3.5" (кликабельно):
                            image

                            Я например 5.25 половинной вообще пропустил. Мой первые дисководы были полной высоты (от советских ДВК DD/DS на 720 КБ, подключенные к ZX-80), а следующие уже 3.5" на 286м.
                              0
                              Хм… у меня на ДВК были половинные, и я уже не помню поддерживали ли они 720 кб, вроде было 360. А затем уже был опять таки половинный 5.25", но поддерживающий вплоть до 1.2мб.
                                0
                                Точно половинные?

                                У меня примерно такие были: image
                                И как раз в таком корпусе или очень похожем корпусе. Один из самых массовых дисководов того времени в ex-СССР. Достался мне от списанной в организации ДВК.

                                После сдыхания и выкидывания одного из приводов, в корпусе дисковода как в системном блоке свободно разместилась плата ZX-80, звуковой процессор, контроллер дисковода и блок питания…

                                Половинной высоты, но это был более редкий зверь:
                                image

                                А 1.2 МБ 5.25 я как раз пропустил, когда менял железо это как раз был наиболее ходовой вариант, их было полно, стояли не дорого. Но тогдя я выбрал «передовой» 3.5" 1.44 МБ дисковод, которые еще только становился стандартом.
                                  0
                                  Точно половинные, ибо корпус был было ДВК-2, там весь корпус был лежачий под монитор, высотой с два дисковода, которые располагались друг над другом. Примерно вот так:
                                  image
                    +7
                    Вы правы, один full-height слот. (Даже не знал про такие.) Цитата с вики.
                    A 5.25-inch DVD drive
                    Full-height bays were found in old PCs in the early to mid-1980s. They were 3.25″ high by 5.75″ wide, and up to 8″ deep (83 mm × 146 mm × 203 mm), used mainly for hard disk drives and floppy disk drives. This is the size of the internal (screwed) part of the bay, as the front side is actually 5.875″ (an extra eighth). The difference between those widths and the name of the bay size is because it is named after the size of floppy that would fit in those drives, a 5.25″-wide square.

                    Half-height drive bays are 1.625″ high by 5.75″ wide (41.3 mm × 146.1 mm), and are the standard housing for CD and DVD drives in modern computers, but were sometimes used for other things in the past, including hard disk drives (roughly between 10 and 100 MB) and floppy disk drives. As the name indicates, two half-height devices can fit in one full-height bay. Often represented as 5.25-inch, these floppy disk drives are obsolete.

                    The dimensions of a 5.25″ floppy drive are specified in the SFF standard specifications which were incorporated into the EIA-741 «Specification for Small Form Factor 133.35 mm (5.25 in) Disk Drives» by the Electronic Industries Association (EIA).[1] Dimensions of 5.25 optical drives are specified in the SFF standard (they are somewhat shorter and not only size of the body is standardized, but also size of the bezel).
                    +5
                    Какая прелесть! А помните этот замечательный лязгающе-булькающий звук при позиционировании, он мне чем-то напоминал ЛИАЗ-677…
                    А внутри у него здоровенный шаговик, приводящий блок головок через зубчатый ремень, причем зубцы у ремня стальные.
                      +2
                      Диски тех времён интересны тем, что в них применялись очень разнообразные технические решения, и по приводу БМГ в том числе. Я видел несколько вариантов со стальной лентой (линейные, как в дисководе, секторные). И благодаря этому разнообразию решений звуки они все тоже весьма уникальные издавали.
                      А с зубьями вот не попадался!
                        +1
                        Да, с зубьями интересно. Попадались только с тонкой пластиной, наматываемой на вал.
                          0
                          Это в Сигейтах почти всегда было. А тут MiniScribe!
                            0
                            Вот что-то похожее у Нека:
                            NEC D5126 MFM

                        +3
                        Древние данные, хранящиеся на диске (в основном, документы MS Word 4.0) обладали определённой сентиментальной ценностью для предыдущего владельца, поэтому я решил их извлечь.

                        Список ненависти Шелдона Купера?
                          0
                          не) он уже хранился на дискете 5.25"
                          0
                          I was running it without having disabled DHCP server in my router, they supposedly don’t collide.


                          это таки не одно и то же, что
                          В моём роутере я запускал его, не отключая DHCP server, поскольку они вроде не должны конфликтовать.


                          Имелось в виду, что он не отключал дшцп в своем роутере, когда запускал dhcpd.

                          А вообще — надо бы реанимировать свой 10 мегабайтный винчестер и прикрутить его обратно к 8088 компу. Надо только Молекс найти…

                            +2
                            А сколько времени длилось копирование?
                              0
                              Почему бы вам не использовать гибкий магнитный диск? У меня в настольном ПК до сих пор стоит сдвоенный FDD EPSON.

                              p.s. Самое сложное, наверное, прочитать 8 дюймовый гибкий диск. Перфокарты прекрасно читает сканер…
                                0
                                Да, старое железо — это магия и кайф! Но иногда всё же это боль и головняк))) У меня вот на новой работе оптический рефлектометр из 90-х годов, из интерфейсов только COM-порт и флопик. А файлы с результатами измерений (рефлектограммы) нужно как-то вытягивать, чтобы анализировать на компе и отсылать дальше по инстанциям… Запас старых живых дискет тает, новые купить и сложно, и дорого, да и дохнут что старые, что новые дискеты на раз-два. Реально, достал новую (старую, но позднего выпуска и при этом не юзаную) дискету, 2 раза перезаписал её, и всё, ей уже хана. Читать на современных компах дискеты уже нечем. Подумал, может, получится вытягивать рефлектограммы по COM-порту? Но после чтения мануала на полсотни страниц со многими сотнями команд для дистанционного управления по гипериерминалу ужаснулся и закрыл))) Увы, волшебной команды для копирования произвольной директории с прибора на комп там нет, всё очень дубово, топорно, низкоуровнево… Это не говоря уже о том, что нужно подготовить старый комп, спаять нуль-модемный кабель, правильно настроить параметры COM-порта на обоих устройствах.
                                  +1
                                  А зачем старый комп? Карты с COM-портом для PCI-E есть же. Кабель нульмодемный в каком-нибудь Чипдип тоже без проблем можно купить.

                                  Но вообще мне попадалась информация про аппаратные эмуляторы дисководов (те, которые 3.5 дюйма): подключается вместо флоппика, а в нем usb или sd. Вполне может быть выход (если, конечно, дисковод стандартный и заменяемый).

                                  UPD: ага, на Алиэкспрессе 20 баксов. Хотя, конечно, непонятно, что с совместимостью будет.
                                    0
                                    Так это эмулятор флопика, а в моём случае нужна дискета-суррогат с картой памяти, которая бы виделась устройством как дискета, а карту памяти можно было бы достать.
                                    Я читал про такие, раньше были, под карты памяти SmartMedia. Но проблема в том, что для работы с ними устройство (компьютер) должен иметь специальный драйвер. Не знаю точно, но рискну предположить, что этот драйвер заставляет флопик не писать на дискету как обычно, перемещая головку радиально, а позиционирует её чётко напротив такой же магнитной головки в суррогатной дискете и передаёт данные, а они магнитным полем наводятся на головку в дискете и оцифровываются контроллером. Короче, как в современных китайских кассетах со шнуром или даже встроенным mp3-плеером, позволяющих слушать музыку с карты памяти в старой автомобильной кассетной магнитоле. Может, я и ошибаюсь. В рефлектометр, понятное дело, такой драйвер не установить и такая дискета (даже если её найти, а к ней карту памяти SM, которая тоже недешёвая редкость, если большого размера) не заработает.
                                      +1
                                      Эта штука ставится вместо дисковода, и должна эмулировать его интерфейс. Если у вас стандартный дисковод в рефлектометре (34-пин кажется), вы его просто меняете на эту штуку, а прибор им пользуется без изменений.
                                        0
                                        Да, если флопик в рефлектометре несъемный или нестандартный — то этот вариант не подойдет.

                                        На счет дискеты-адаптера да, интересно, как оно там в реальности работает. Теоретически ведь информация о геометрии (количество дорожек и секторов) хранится на самой дискете? Помню, что было дело, форматировал дискеты на 1.6 МБ (увеличивая число дорожек и/или секторов), и они потом работали везеде, без драйверов. Если там будет указано, что она отформатирована на 1 дорожку и 100+ секторов — может дисковод и сам не будет пытаться перемещать головку?..
                                      0
                                      Как правило, научные приборы достаточно просто настроить на выдачу данных в COM порт.
                                      Также, к этому порту можно подключать журнальный принтер, обычно матричный.
                                      Возможно будет значительно проще включить передачу текущего измерения в COM порт.
                                      А на другом конце уже просто собирать эти данные в файл.
                                      Нуль-модемный кабель не нужно паять, они есть готовые, настройка одинаковых параметров COM порта это вообще типовая задача и не проблема.
                                      Материнские платы с портом RS-232 выпускаются до сих пор, есть и интерфейсные платы, в продаже есть недорогие ноутбуки с портом RS-232, например Dell D630.
                                      Настройка передачи данных на низком уровне только при первом подходе ужасает, на самом деле там ничего сложного, сотни команд изучать не требуется, обычно достаточно знать несколько десятков.
                                      Дискеты выпущенные после примерно 2005 года практически непригодны для использования, магнитный слой повреждается очень быстро, особенно на нулевой дорожке.
                                      Для чтения дискет 3" на современных компьютерах есть внешние приводы с USB разъёмом.
                                        0
                                        Ну, надеюсь, всё-таки скоро купят новый прибор, и эти танцы с бубном сами собой отпадут) Если нет — буду где-нибудь на Тостере и на форумах пытать народ, чтоб помогли мне написать скрипт по мануалу для вытаскивания данных через COM))) Или буду выбивать деньги на заказ дискет.
                                        Проблема в том, что нормального уровня рефлектометр стоит как бюджетный автомобиль, и пока старый как-то работает, новый могут и не купить.
                                          +2
                                          В НИИ (из которого я давно уволился) до сих пор работают приборы из США поставки конца 1980-х.
                                          Местами ещё используются дискеты 8".
                                          Настройка COM порта на таких приборах единственная возможная конфигурация, поскольку собственной памяти на них нет, а запись на дискету может произойти со сбоем, повторить измерение не всегда возможно.
                                          Новые приборы поступают, но пока работает старый, новый никто не даст купить, ибо денег не хватает на зарплату.
                                          Так что я бы на Вашем месте неспешно начинал процесс изучения конфигурации Вашего прибора по работе с COM портом — ситуация с дискетами с каждым годом всё хуже, и лучше уже не будет.
                                          Скоро новые дискеты будет уже не купить совсем, либо стоить они будут безумных денег.
                                          Для улучшения ситуации с приводом НГМД на Вашем рефлектометре попробуйте купить чистящую дискету для 3" дисковода.
                                          Изопропиловый спирт у неё в комплекте наверняка уже улетучился, но это не проблема, подойдёт изопропиловый «ХЧ».
                                          Если прибор используется редко, то лучше чистить каждый раз перед началом использования дискет — одной песчинки достаточно чтобы поцарапать нулевую дорожку.
                                          Если чистящий диск не поможет, и дискеты по-прежнему будут плохо записываться, то тогда увы, поможет только замена привода — они тоже ломаются, и довольно часто.
                                          Особенно неприятная поломка это нарушение юстировки магнитной головки — привод вроде бы исправен и пишет, но то что он записал прочесть можно только на нём самом.
                                        +1
                                        Наверное, у вас головка FDD загрязнена и повреждает дискет. Я на прошлой неделе прочитал несколько 3,5" дискет, записанных где-то 15 лет назад, а сами дискеты куплены в прошлом веке (где-то около 1997 г.).
                                        Все-таки через COM порт по-моему будет лучше, надо только время найти запилить программку. Или даже скрипт через AutoHotkey например, который посылает клавишы в терминал.
                                        0
                                        Полувека не прошло — а уже бубен размером в арену нужен для прочитать. Интересно, на что рассчитывают в mS, записывая что-то там в ДНК? )))
                                          0
                                          Видимо как раз на то, что этому способу хранения информации уже больше миллиарда лет и он вряд ли изменится в будущем. Устройства чтения могут измениться кардинально, а вот сам формат — нет.
                                          Ну по крайней мере до тех пор пока существует естественная биология и живые существа.
                                            0
                                            В живых существах эта информация все же изменяется от поколения к поколению. Не думаю, что авторов послания сильно обрадует прочесть через миллион-другой лет вместо исходного текста сборник анекдотов про Ржевского )))
                                              0
                                              Ну записанную информацию же не предполагается вживлять обратно в живые организмы. А просто хранить синтезированное вещество (куски ДНК молекул) в капсуле.

                                              Живые существа(включая человека) имелись ввиду в том смысле, что пока они существуют, то существует и такой способ хранения их генетической информации как ДНК. А значит будут существовать и какие-либо устройства для считывания информации записанной подобным образом.

                                              Хотя в «вживить» информацию и в живые существа, так чтобы она сохранялась многие поколения в принципе возможно. Код конечно подвержен изменениям, но очень медленным. У людей появившихся с миллион лет назад примерно генетический код примерно на 70% совпадает с какими-нибудь крокодилами, появившимися почти 100 миллионов лет назад.
                                              А внутри одного вида у разных особей, даже не являющихся родственниками и разделенных многими поколениям, код ДНК совпадает на 99.х%

                                              А система записи у МС изначально предусматривает и избыточноть кодирования и коррекцию ошибок. Достаточно чтобы сохранилась большая часть закодированной информации и тогда исходная информация (до кодирования) восстанавливается полностью с точностью до бита.
                                          0
                                          Через терминал по Dial UP не вариант?
                                            +1
                                            Ух… как взностальгнулось… где-то (антресоль? подвал?) лежит что-то подобное конца 80-х — начала 90-х… Данные от поколения к поколению переносил на носители новых типов, поэтому подключать не буду — просто протру пыль, взгрустну. Храню показать внукам.

                                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                            Самое читаемое