kvmでwindows7を入れてみました
kvmでwindows7を入れてみました
仮想化といえば、VMWareやXenが有名ですが、
今回は割と新しいkvmを使用したいと思います。
kvmと言っても切替器ではなく、KernelbasedVirtualMachineのkvmです。
kvmとは
http://ja.wikipedia.org/wiki/Kernel-based_Virtual_Machine
要は、軽量でシンプルな仮想化システムです。
kvm自身では何もできないので、フロントエンドとしてqemuを使用します。
ぐだぐだ書いてもおもしろくないので、百聞は一見にしかず。ぜひ試してみてください。
0・前提条件
・カーネルは2.6.20以降が必要
・AMD-V、IntelVTなどの仮想化機構が必要
・~/vm/ にvmのディスクイメージを入れます
・~/win7.iso がwindows7のDVDイメージです
1・kvmのインストール
kvmとqemu-utilsをインストールします。
Debian系使っていることを前提とすれば、
$ sudo apt-get install kvm qemu-utils
以上。簡単ですね。
2・ディスクイメージの作成
これはqemu-utilsのqemu-imgを使用して以下コマンドで作成します。
## qcow2で ~/vm/win7.img に 30GBで作成
$ qemu-img create -f qcow2 ~/vm/win7.img 30G
または、ddであらかじめスペースを確保する方法もあります。
(最初から領域を確保するので、若干ディスクアクセスが早くなるかもしれません)
$ dd if=/dev/zero of=~/vm/win7.img bs=1024 count=$((20 * 1024 * 1024))
3・起動
windowsをインストールします
$ sudo kvm -hda ~/vm/win7.img -cdrom ~/win7.iso -boot d -m 1024 -monitor stdio
この一行で仮想マシンが起動します。
(後はwindowsのインストールを道なりに進むだけです ので割愛します)
4・その他
・ネットワーク
起動オプションにの-redirでホストの任意のポートにゲストの任意のポートをマッピング出来るので、
例えば以下のようにして起動すると、rdesktopで接続出来ます。
$ sudo kvm -hda ~/vm/win7.img -m 1024 -monitor stdio -redir tcp:3389::3389
・USBデバイス
VMPlayerのようにワンクリックでとはいきませんが、コンソールで以下のようにすれば接続できます。
# -usbオプションをつけてkvmを起動
# ホストのデバイスを確認
(qemu) info usbhost
【省略】
Class 00: USB device 04fe:000d, HHKB Professional JP
Device 1.5, speed 1.5 Mb/s
Class 00: USB device 0458:0048, Wireless Keyboard & Mouse
Device 1.6, speed 480 Mb/s <= これを追加
Class 00: USB device 1307:0163, Flash Disk
# usb_addで追加
(qemu) usb_add host:1307:0163
# 仮想マシンに接続中のデバイス確認
(qemu) info usb
Device 0.2, Speed 480 Mb/s, Product Flash Disk
なお、/proc/bus/usb/devicesがないといわれる場合には以下を実行してマウントしておきます。
$ sudo mount -t usbfs none /proc/bus/usb
使用感としては、思ったよりサクサク動いています。
kvmを使わないqemuの場合は実用に耐えうるスピードではありませんでしたが、kvmを使用するとほぼネイティブと言ってもいいくらいのスピードですね。
ただし、グラフィック系はあまり速くないので、rdesktopでつないだ方が結果として快適かもしれません。
出来て間もないため、サーバー用途にはまだ不安が残りますが、テスト用マシンなどの用途には実用的かと思います。