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にはあるディスプレイの解像度の自動調整機能とかは無いんでしょうか。ググってもよくわかりませんでした。