古いMiniScribeハードドライブからデータを読み取る



古い鉄のマイケル・スロムコフスキーのプログラマーと恋人のウェブサイトからの記事の翻訳

古いMFMディスクであるMiniScribe 2012は、コントローラーで手に入りました。 MFMは修正された周波数変調であり、この技術はIDE /パラレルATAより前の時代の大型のハードドライブに関連付けられることがよくあります。 ディスクに保存された古代のデータ(主にMS Word 4.0文書)には、前の所有者にとって感傷的な価値があるため、抽出することにしました。

MiniScribe 2012ハードドライブ


ハードドライブ-おそらく1984年に製造されたMiniScribe 2012 MFM。 彼はIBM XT互換コンピューターに立っていました。 このモンスターは2つの5.25インチスロットを占有し、2キログラム以上の重量があります。 指示に示されているように 、その体積は10メガバイトに過ぎません。電源コネクタは標準のMolexです。













MiniScribeドライブには、WD1002A-WX1と呼ばれる専用の8ビットISAコントローラーが付属しています。 その仕様は簡単に見つかります。 テキストファイルにはインストール手順が含まれています。 また、互換性のあるデバイスのリストが役立つ場合があります。

理論的には、コントローラはST506 / 412プロトコルをサポートするドライブで動作しますが、実際にはそれほど単純ではありません。 不良セクタのリストは、コントローラROMに保存する必要があります。 これには特別なソフトウェアが必要です。 多くの場合、新しいドライブに新しいコントローラーを接続し、低レベルのフォーマットを実行すると、新しいドライブが動作を開始します。


WD1002A-WX1 MFMディスクコントローラー

コントローラには独自のBIOSがあり、通常はオプションROMと呼ばれます。 POSTシーケンス中にマザーボードBIOSによって呼び出されます。 コードはINT 13割り込みにフックを登録し、その結果、標準の割り込み呼び出しを使用してDOSからアクセス可能になります。

装置


幸いなことに、ISAスロットとPentiumプロセッサを備えた古いATマザーボード(ATC-1020)がありました。 プロセッサにはヒートシンクはありませんでしたが、ジャンパーをボードに取り付けて、最小速度で動作するようにし、一時的なヒートシンクを弾性バンドで調整しました。 ボードに32 MB DIMM RAMモジュールも配置しました。



PCIまたはISA用のグラフィックVGAカードを持っていなかったため、特別な黄色のモノクロディスプレイでMDPAを使用しました。 彼のマザーボードは写真に見られるものを正しく認識しました。

ディスクを確認するために、BIOSでIDEコントローラーを無効にし、起動しようとしました。 ディスクは生き生きと起動しました-歓声!

PXEからダウンロード


このMiniScribeディスクを使用するには、DOSユーティリティが必要になるため、MS-DOSフロッピーディスクから起動することにしました。 物理ディスクをいじるのは不便なので、ネットワークブートを使用することにしました。 幸いなことに、 PXEをサポートするPCIイーサネットネットワークカードがありました:3com 3C905C-TXM

PXEディスクイメージを起動するには、特別なブートローダーが必要です。 最も人気のあるものの1つはPXELINUXです。これは、Arch LinuxのsyslinuxモジュールであるSyslinuxの一部です。 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デーモンを使用することです。 これは難しい作業ですが、幸いなことに、小さくて使いやすいnetbootサーバー(Arch Linuxのaur / netboot)が見つかりました。 DHCPサーバーとTFTPサーバーの機能を組み合わせています。 私のルーターでは、DHCPサーバーを無効にせずに起動しました。競合しないためです。

PXEブートファイルがあるディレクトリでnetbootを実行します。 DHCP要求の後、サーバーはpxelinux.0 *ファイルを返します。

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

{MACパターン}は、クライアントのネットワークカードのMACアドレスと一致する必要があります。

たとえば、LANアドレスは192.168.1.0、LinuxマシンのIPは192.168.1.10、3comカードのMACは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ドライブを試すことにしました。 マザーボードには2つのIDEチャネルがありました。 Seagateから40 Gbドライブを接続しました。 システムはそれを検出しましたが、残念なことに、その後MFMが使用できなくなりました。 ジャンパー付きのゲームは役に立ちませんでした。 おそらく、2つのディスク手順の間に矛盾がありました。

データをUSBスティックにコピーする


その後、別のアプローチを試みました。 MS-DOS用のPCI USB拡張カードとUSBASPIドライバーをインストールしました。 これで競合はなくなり、ディスク全体をUSBフラッシュドライブにコピーできました!

 xcopy c:\ d:\ /e /k 





マザーボード上の4つの拡張カード。 左から:MDAグラフィックスカード、MFMディスクコントローラー、3comイーサネットネットワークカード、USB拡張カード。

その結果、200を超えるMicrosoft Word DOSファイルを取得し、それをRTF変換しました

Source: https://habr.com/ru/post/J427335/


All Articles