FreeDOS の fdisk(の ビルトイン MBR)がかなり古いPCだとうまく動かないかもしれない件

タイトル長いよもう。

というかまあこのへんのことです。調べとこうかと思っていっつも忘れちゃうんですよね。

かなり古い、というのは「ディスク BIOS が LBA モードのリードライト未対応」ということなんですが、FreeDOS fdisk の MBR だとこの場合、起動区画の先頭4セクタを(もちろん旧来の CHS モードで)読んでまして、ここでエラーが出ると事実上ハングアップ。

ちなみにその他の DOS(MS と DR しか確認してませんが)の fdisk が設定する MBR だと「起動区画の先頭1セクタを読み、エラーが発生したときはディスクをリセットしてリトライ」という感じになっています。したがって FreeDOS のだとダメで DR のならオッケーだった、という場合、

  • 4セクタ一気読みがマズかった
  • エラー時にディスク初期化してリトライしないのがマズかった

のどちらか一方、あるいは両方の可能性が高いわけです。
しかし古めの実機がないと調べようがないなあ。まあ何ちゅうかこう、レガシーな OS だからってレガシーな環境への対応に問題がないわけじゃないということで(環境が再現できないし)。