qemu で Windows98 を動かしてみる

まず、qemu のオプションを調べる

  • ホスト側のサウンドは QEMU_AUDIO_DRV 環境変数で指定する。多分 alsa でいいだろう。
  • クライアント側のサウンドは、soundhw オプションで指定する。
  • -sundhw help で設定できる一覧が表示される。
  • vga オプションでディスプレイを指定する。
  • 指定できるディスプレイは help を見る。
  • raw 形式のフロッピーディスイメージを指定する。
    -drive file=ファイル,index=0,if=floppy,format=raw
  • Windows 98 はメモリ512M 以上は不具合があるらしいので、-m オプションで 128M にする。
  • 起動中にメディアを交換するには、qemu のコンソールを表示して行う。
  • クライアント OS にctrl+alt+delete を送るには、qemu のコンソールで sendkey alt-ctrl-delete とする。

インストール

 仮想ディスクは、予め作ってフォーマットしてもいいし、起動用 FD でフォーマットしてもいいです。仮想ディスクの準備ができたらインストールしていきます。

 かなり時間がかかります。途中、ハングアップしたように見えても、マウスカーソルが動くなら 1 時間は待ってみるつもりで気長に待ちましょう。

$ qemu-img create -f raw Windows98.img 512M
$ QEMU_AUDIO_DRV=alsa qemu-system-x86_64 -m 128M -soundhw sb16 -vga cirrus -drive file=winboot1.img,index=0,if=floppy,format=raw -drive file=Windows98.img,format=raw -cdrom Win98.iso -boot once=a

 コンソールに切り替えて fd を交換します。

ctrl+alt+2

(qemu) eject floppy0
(qemu) change floppy0 winboot2.img

 仮想マシンに戻ります。

ctrl+alt+1

 起動が終わったら CD ドライブに移動して setup.exe を起動します。標準でインストールします。

 再起動するとハングするので、一旦終了して改めて起動します。

$ QEMU_AUDIO_DRV=alsa qemu-system-x86_64 -m 128M -soundhw sb16 -vga cirrus -drive file=Windows98.img,format=raw -cdrom Win98.iso -boot c

 しかし、起動しなくなってしまいました。qemu-system-i386 も同様です。やっぱり DOSBox-X じゃないと動きません。Raspberrypi では qemu で Windows 98 を動かすのは難しいようです。DOSBox-X がもっと速ければよかったんですが。

Raspberry Pi

Posted by sirius