PC-98フォーマットのハードディスクをPC/ATのMBR形式フォーマットに変換する
PC98CNV Version 1.30
Copyright (C) 2010-2020 DOSsoft(まりも)
PC-98フォーマットのハードディスクはPC/AT互換機上ではOSから認識できませんので、このプログラムでは、認識できるようにパーティション管理形式を変換することとしました。データの移動は全くおこないませんので変換は一瞬で終わります。SCSIでもIDEでもSATAでも適用できます。IDEをSCSI変換していた場合でも適用できます。
1.あたりまえですが、PC/AT互換機で「OSの起動」はできるようにはなりません。あくまで別途起動したOSからドライブとして認識できるだけです。
2.一度MBR形式に変換した場合、そのままでは、PC-98に戻したときにPC-98のシステム起動はできなくなっています。これはIPLがPC/AT互換機用に置き換わっているためです。再びPC-98で使いたい場合は、■使い方2 のように、コマンドオプション -R を実行してください。なおPC-98で領域自動起動設定がなされていた場合、MBR形式に変換した時点でその情報は失われています。
3.PC-98のときにパーティションが4個以上ある場合、先頭から4個までに制限され、残りはシステムから認識できません。これはMBR形式パーティション管理方式の仕様によるものです。
しかし98側でスリープ属性にしてあるパーティションは数えないことにしていますので、5個目以降にあるパーティションでも、4個目までのパーティションのどれかをスリープにすれば対応できます。
※ スリープ/アクティブの切り替えはPC-98上で行っておいてください。
4.セクタ長が512byteでないハードディスクは使用できません。
0.PC-98用ハードディスクを接続し、BIOS設定でそれが起動しないあるいは起動優先順位が最下位となるように設定します。
1.別のハードディスク領域かFD,USBメモリなどからMS-DOSを起動します。DOS言語モードは日本語DOSV/も英語モードのいずれも使用できます。Windows GUIモードのDOSプロンプトではなく、MS-DOSモード起動したWindows 9xを使ってください。IBM DOSでは 6.2Vかそれ以降を使用してください。それ未満のバージョンのDOSは使わないでください。そして、DOSコマンドラインから、PC98CNVと打ちます。
2.ハードディスクの一覧が出ますので、対象ディスクドライブを選んでください。ひとつしかない場合はそのままENTERキーを押してください。容量とデバイス番号(80h~)しか情報がないので、対象ディスクを間違えないよう注意してください。'NEC 'または'NEC+'という識別ができているハードディスクだけが変換対象となります。'IBM' 'MBR' 'GPT' などの表示があるものは変換できません。
3.次に進むと、PC-98で使用していたときの BIOS ヘッド数、セクタ数を訊いてきますので、適切に与えてください。よくわからない場合は下を参考にしてください。それでもわからない場合は、適当に変えて試行錯誤してください(現在のところ、本プログラムには自動パラメータ判定機能はありません)。しかし正しくないパラメータで中途半端に認識した場合、データを破壊する可能性もありますので注意してください。
★SCSI 8GB未満 8ヘッド、 32セクタ 32GB未満 8ヘッド、128セクタ それ以上の容量は一般的ではありません。各自で使用実態を把握してください。 また古いSCSIではパラメータは各社いろいろなので試行錯誤してください。 ★IDE/SATA 4350MB未満 8ヘッド、17セクタ 32255MB未満 16ヘッド、63セクタ(希に15ヘッドの場合あり、HDDラベル表記確認) それ以上の容量 いわゆるMistress9互換 16ヘッド、255セクタ 大熊猫/挑戦者互換で48bit LBA 対応機 255ヘッド、255セクタパーティションテーブルが見つかると、次のように変換リストが表示されます。これでディスクに書き込んでよければ Y を押してください。
4.変換が成功したら、何かOSを起動してください。PC-98用ハードディスクの各パーティションが論理ドライブとして認識できているはずです。
一度MBR形式に変換したディスクドライブを、PC-98で使える状態に戻すには、コマンドオプション -r を与えてください。対象となるのは、もともとPC-98で使用されていた痕跡があるディスクドライブのみで、'NEC+ 'と表示されているものに限ります。適用後には 'NEC+' は 'NEC 'という表示に変わります。
MBR形式のディスクドライブ(98で使用の痕跡が無いもの)から98フォーマット形式のパーティションを生成することができるようになりました(バージョン1.30から)。コマンドオプション -m を与えてください。
次にMBR形式のディスクドライブを選択すると、98でのBIOS認識の際のヘッド数、セクタ数の一覧が表示されます。これは希望するものを勝手に選ぶのではなく、そのディスクドライブを98に繋いだときに認識されるものを選ばなければなりません。ヘッド数、セクタ数は容量帯によっても異なりますし、IDEかSCSIかでも異なります。さらにはEXIDEなどの容量拡張システムを導入している場合には自分でどの値となるのかを把握している必要があります。
現在のPC/ATパーティションが98側で正しく認識されるためには、98に合わせたヘッド数、セクタ数の積を境界としてパーティションを作成しておく必要があります。拙作fdskではある程度それが可能です。
わかりやすい例として、98側IDEで4351MBを超えて認識できる機種に繋ぐHDDを取り上げます。4352MB以上32254MB以下の容量では16ヘッド:63セクタで認識されます。これをPC/ATでFDSKでフォーマットする際に16:63のシリンダ境界でフォーマットします。このとき通常は先頭パーティションは開始位置がシリンダ境界でなく63セクタ(十六進数3F)に置かれてしまうので、FDSK -NA で開始番地指定をします。領域確保時に開始位置を3F0hで与えれば、16*63のシリンダ境界になります。もしこの操作をしなかった場合でも、98側パーティションにはシリンダ境界端数のセクタ番地が記入されますので、MS-DOS 6.20以下のDOSでは認識可能です。しかしWindows 95OSR2とそれ以降Windows98、2000では認識できなくなります。Windows NTやOS/2, FreeBSD(98)ではどうなるか調査していませんが、古いOSではシリンダ境界端数のパーティションも扱えるのではないかと考えられます。
PC-98のパーティションテーブルはAT互換機のMBRの情報と重なることはありませんが、AT互換機のMBRのパーティションテーブルのうち4番目のパーティションの位置情報は、98の「領域自動起動」のデータ記憶域と重なります。このため、PC-98に再度接続して「自動起動」を設定すると、4番目のAT側パーティション情報がおかしくなります(しかし98側のパーティション情報は問題ないので、再度AT側に接続しない限り気が付きません)。そうなったときは、AT側で本プログラムを再度実行するか、PC-98側で下記のプログラムを使用して復元してください。 「PC-98のHDDを直接AT互換機で読み書きできるようにするプログラムConv98AT」
使い方3の -m オプションは一度しか適用できません。すなわち98パーティション情報が残っている場合には適用できません。これは誤って98のディスクドライブのデータを消してしまうのを避けるためです。また -m オプションで作った98フォーマット形式は、IPLと起動メニューのプログラムが不完全な形で書かれるため、ブートはできません。98側でブートの必要がある場合は、98上で拙作 IPL_MENU を実行・適用してください(2020年末時点での情報)。
【2024年5月25日追記】FC1307Aというチップが使われているSD-IDE変換器を使っている場合、98側のフォーマットを無効なものとして消去してしまうことが知られています。当該変換器のファームウェアを改修して、上記の問題を解決するという方法が公開されました。この改修で対応することをお勧めします。
FC1307A搭載SD-IDE変換基板のおかしな挙動を直す (https://zenn.dev/mctek/articles/306d1afc153c0b)