自作OSの作成ではフロッピーディスク用のイメージを作成してエミュレータで動かしているんだけど、今どき実機にはFDドライブとかついてないし持ってないので、ブート可能なCDの.isoイメージはどうやって作るのか調べてみた。

それによると、mkisofsというツールで出来るらしい。

$ mkisofs -b fdimage.img -o isoimage.iso fdimage.img

ここで、fdimage.imgはフロッピーディスク起動のバイナリファイルで、isoimage.isoに.isoイメージファイルが生成される。

mkisofsはLinuxやMacで動かすことができた(Windowsは未確認)。実際のところmkisofsがどういうファイルを生成してるのか、isoフォーマットはどういう形式なのかまったくわかってない。

mkisofsにはたくさんのコマンドラインオプションがあるが、-bの”El Torito” ブータブル CDの指定だけでよいみたい。

生成された.isoイメージをVirtualBoxなどのエミュレータに食わせたとろこ、無事に起動した。ブート時のディスク読み込みにBIOSのルーチンを使ってるんだけど、フロッピーディスクでもUSBメモリでもCDでも同じBIOSコールで読み込めるのは便利だ。後で余裕ができたら実際にCDに焼いてみて、実機で起動できるかどうか試してみたい。

まあただ、このフロッピーディスクのイメージから変換する方法だと、OSのファイルサイズが2HDの1.44MB以上になっても可能なのかどうかが不明だ。