古い鉄のマイケル・スロムコフスキーのプログラマーと恋人のウェブサイトからの記事の翻訳
古い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に変換しました 。