古い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変換しました



All Articles