QEMU で仮想マシン

この文書では QEMU と qemu と両方の綴りを使っているが、 特に使い分けているわけではない。

qemu の導入

ports にある。ビルドオプションで KQEMU を付けるのを忘れずに。 その他のビルドオプションは突き詰めていないのでよくわからない。申し訳ない。

# cd /usr/ports/emulators/qemu
# make install clean

カーネルモジュールを起動時に自動的に読み込まれるようにするには、 /boot/loader.conf を編集すればよい。

kqemu_load="YES"

ネットワークの設定のために、/etc/qemu-ifup を用意しておく。 以下に例を示す。

% cat /etc/qemu-ifup 
#!/bin/sh
sudo ifconfig $1 inet 192.168.127.1 netmask 255.255.255.252

ネットワークを使わないゲスト (DOS など) を使う場合は、もちろん必要ない。

TIPS

Bootable CD イメージからの起動を試すのがポピュラーな使い方の一つだろう。 ゲストがハードディスクを持っていなくても良いので、以下のようになる。

% qemu -cdrom someCD.iso -boot d -m 128

ゲスト用のディスクイメージを作るには、dd や qemu-img を使用する。 ここでは qemu-img の例を示す。

% qemu-img create guest_hdd.img 2G

これで「raw」イメージのファイルができる。

作ったディスクイメージに、インストールCD から OS をインストールする手順も例示しておく。

% qemu -hda guest_hdd.img -cdrom someOS.iso -boot d -m 128

最後に、インストールしたゲストを起動する例を示しておく。

% qemu -hda guest_hdd.img -boot c -localtime -net nic -net tap -m 128

TIPS

たいした TIPS でもないが、使ってみて「へぇ」と思ったことを書いておく。

ゲストに Windows 2000 をインストールする時は、 オプションに「-win2k-hack」をつけると Windows のインストーラのバグを回避できる。

ゲストはホストのタイムゾーンと関係なく動く。 ホストと同じタイムゾーンで動かしたければ、「-localtime」をつける

マウスフォーカスを当てた状態でのタイピングはゲストに送られるが、 この時、マウスクリックを行わなければ I/O をグラブされることはない。

C-A    QEMU にグラブされた I/O を切り離す。
C-A-f  フルスクリーン切り替え。
C-A-2  QEMU のコンソールに切替える。
C-A-1  ゲストに切替える。

iso イメージをゲストの CD ドライブに突っ込むことができる。

Ctrl-Alt-2
(qemu) change cdrom hogehoge.iso   ← CD イメージをゲストに突っ込む。
Ctrl-Alt-1
ゲストから好きに使う。
Ctrl-Alt-2
(qemu) eject cdrom ← CD を抜く。
Ctrl-Alt-1
[$Revision: 1.1 $ $Date: 2007.02.11 16:43:00 $]
[EOF]