KVM上にVirtIOドライバを使うWindows 7をインストールする
準仮想化ドライバであるVirtIOを使うことでWindows仮想マシンのIOが速くなるか試してみたかったので、KVM上にVirtIOドライバを使うWindows 7をインストールしてみました。
凖仮想化とは、全ての命令をソフトウェアエミュレーションする完全仮想化に対して、ゲストOSなどにある程度修正を加えて、物理ハードウェア上で動かすのに近い形で動作させる仮想化のことです。Windowsの場合はカーネル自体には修正を加えれられないので、準仮想化ドライバであるVirtIOを使うことで準仮想化を実現できます。
環境
- ホストOS: Ubuntu 14.04 64bit
- ゲストOS: Windows 7 64bit
- ハイパーバイザ: qemu-kvm 2.0.0
- ドライバ: virtio-win-0.1-74.iso
インストール
kvmとvirt-managerのインストール
$ sudo apt-get install qemu-kvm qemu-system libvert-bin virt-manager
libvirtd
グループに入っていないと仮想マシンの操作ができないみたいですが、上のコマンドを実行するだけで現在のユーザーをlibvirtd
グループに追加してくれるので、ログインし直してグループの設定を反映させます。
Windows用のVirtIOドライバをダウンロード
Vistaより新しい64bit版Windowsでは通常デジタル署名されたドライバしかインストールできません。
幸いFedoraプロジェクトでデジタル署名されたドライバを公開してくれているので、それを使います。
公式ページ WindowsGuestDrivers/Download Drivers - KVM の Latest VirtIO drivers for Windows from Fedora からドライバが入ったisoファイルをダウンロードできます。
仮想マシンの作成
virt-manager
を起動して、通常と同じように仮想マシンを作成します。
最後の画面でCustomize configuration before install
にチェックを入れておきます。
設定画面が開くので、ディスクの設定でDisk bus
をVirtio
に、NICの設定でDevice model
をvirtio
に設定してインストールを開始します。
Windowsのインストール
インストールを進めると、初めはドライバが無いためディスクが認識されません。
Load driver
を押すと次のような画面になります。
仮想マシンの設定画面からCDROMの設定を開き、Windowsのインストールisoファイルをダウンロードしておいたドライバのisoファイルに変更した後、仮想マシンの画面に戻ります。
Browse
を押すとドライバを探す画面になるので、CDROMの中からインストールするWindowsにあったバージョンとアーキテクチャのディレクトリを選択します。
ドライバが見つかったので、全て選択してNext
を押してインストールします。
ドライバのインストールが終わるとディスクが認識されます。
ここではWindows cannot be installed to this disk.
と出てきて先に進めなくなっていますが、CDROMをWindowsのインストーラisoファイルに変更し直せば先に進むことができます。
後は普通にインストールするだけです。
インストールして少し使ってみて思ったのですが、KVMにはVMwareやVirtualBoxにはあるディスプレイの解像度の自動調整機能とかは無いんでしょうか。ググってもよくわかりませんでした。