MINIX 2.0.4をVMにインストールする方法について、調べたことや参考URLを残しておきます。
通常の手順では配布ファイルからフロッピーディスクのイメージを作ってインストールします。手間が掛かるため、今回はインストール済みディスクイメージを使います。
DosMinix
DOSから起動するバージョンのMINIXです。今回はこれに含まれるディスクイメージだけを使います。
実パーティションを使わずに、ディスクイメージ(MINIX.MNX)をDOSから見えるパーティションにファイルとして置いて使います。
MINIX.MNXはインストール済みのディスクイメージそのものです。この形式が読み込めるVMではそのまま起動できます。Bochs用の設定ファイル(minix.bxrc)が同梱されています。
WindowsのDOS窓の中でも動くようなことが書いてありますが、9x系にしか対応していないらしく、NT系では動かないようです。64bit OSでは16bitコードそのものがサポートされていないため動きません。
VMware
以下で32bit版MINIX 2.0.4のVMware用のイメージが配布されています。
今回は16bit版を使用したかったためDosMinixのイメージを使います。
MINIX.MNXは50MBですが、GUIの設定では50MBのディスクが設定できません。デフォルトで作成されたVMDKファイルを直接書き換えてMINIX.MNXへ割り当てました。
MINIXはファイルシステムが壊れやすく起動しないことがありますが、MINIX.MNXをコピーするだけで元に戻せます。
注意点
起動直後に[=]を押すように促されますが、英語配列を前提としています。日本語キーボードでは[^]を押します。
Minix boot monitor 2.19 Press ESC to enter the monitor Hit a key as follows: = Start Minix
すぐログインになるのでrootで入ります。
Multiuser startup in progress. Starting daemons: update cron. Minix Release 2 Version 0.4 noname login: _
途中で止まってログインが出てこない場合、ファイルシステムが壊れています。VMを終了して、ディスクイメージをコピーして元に戻してください。
Virtual PC
フロッピーからのインストールはうまくいきません。32bit版インストール済みのディスクイメージが配布されています。
16bit版を使うにはMINIX.MNXを流用します。
容量固定バーチャルハードディスクを使います。Virtual PCでは設定ファイルが分離されていないため、ディスクイメージの末尾に管理情報が必要です。
参考までにVirtual PC 2007で作成した管理情報を掲載します。
03200000 63 6f 6e 65 63 74 69 78 00 00 00 02 00 01 00 00 03200010 ff ff ff ff ff ff ff ff 19 53 47 f1 76 70 63 20 03200020 00 05 00 03 57 69 32 6b 00 00 00 00 03 20 00 00 03200030 00 00 00 00 03 20 00 00 03 eb 06 11 00 00 00 02 03200040 ff ff e4 c9 fb 31 8f d2 d7 e8 11 e2 80 2d e0 c8 03200050 df a0 f2 1a 00 00 00 00 00 00 00 00 00 00 00 00 03200060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (すべてゼロのため省略) 032001F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
速度比較
同じマシンでMINIX 2.0.4(16bit)を起動して、カーネルのビルドに掛かる時間を計測しました。
Virtual PC 2007
# cd /usr/src/kernel # time make (略) install -S 0 kernel 24.00 real 8.51 user 3.51 sys
※ ハードウェアの仮想化機能の有無は速度にほとんど影響しません。
QEMU 0.13.0
# cd /usr/src/kernel # time make (略) install -S 0 kernel 24.00 real 14.55 user 9.26 sys
ほとんど同じ速度です。Virtual PCで動かすと応答しなくなることが多いため、QEMUを使った方が無難なようです。