読者です 読者をやめる 読者になる 読者になる

【お知らせ】プログラミング記事の投稿はQiitaに移行しました。

MINIX 2.0.4をVMにインストール

MINIX x86-16

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では設定ファイルが分離されていないため、ディスクイメージの末尾に管理情報が必要です。

  1. MINIX.MNXの拡張子を変更 → MINIX.vhd
  2. 新規に50MBの容量固定バーチャルハードディスクを作成
  3. 新規作成イメージの末尾512バイトをバイナリエディタなどでMINIX.vhdに追加

参考までに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

QEMU

MINIX.MNXをディスクとして指定すれば起動します。

$ qemu -m 128 -hda MINIX.MNX -localtime -M pc

速度比較

同じマシンで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を使った方が無難なようです。

VMwareBochsは未計測です。