GeekFactory

int128.hatenablog.com

Linux KVMにWindows Server 2008 R2をインストールする

Linux KVMWindows Server 2008 R2をインストールする際のポイントを紹介します。

virtioドライバを準備する

QEMUはe1000などの各種のデバイスをエミュレートしてくれますが、余分なオーバーヘッドが発生します。virtioは仮想I/Oデバイスのフレームワークで、オーバーヘッドを最小限にし、ゲストOSのパフォーマンスを大きく向上させます。

ひとことでいうと、一番いいインタフェースを頼む。ということです。

Windows Server 2008 R2からx64のみサポートになりました。以前はvirtioドライバをx64に導入するには一手間必要でしたが、最近リリースされたドライバは署名が付いているので簡単に導入できます。

If your distribution does not provide binary drivers the Fedora Project package can be downloaded from the following link.

Download Latest VirtIO Win drivers from Fedora

Note: These drivers are signed but not WHQL Certified.

WindowsGuestDrivers/Download Drivers - KVM

このエントリを書いている時点で20100817版がリリースされています。普段使っているWindowsゲストがあれば、ドライバをアップデートしておきましょう。

CDまたはHDDから起動可能な設定にする

WindowsインストーラはHDDが起動可能なデバイスかチェックします。ブートデバイスがCDのみになっていると、HDDから起動可能と判定されず、HDDをインストール先に指定できなくなります。

下記のようにCDとHDDを指定しておくとよいでしょう。

  <os>
    <type>hvm</type>
    <boot dev='cdrom'/>
    <boot dev='hd'/>
  </os>
  <devices>
    <disk type='block' device='disk'>
      <source dev='/dev/vg/vm2008r2.root'/>
      <target dev='vda' bus='virtio'/>
    </disk>
    <disk type='file' device='cdrom'>
      <source file='/misc/public/iso/ja_windows_server_2008_r2.iso'/>
      <target dev='vdc' bus='ide'/>
    </disk>
  </devices>

インストール時にvirtioドライバを読み込む

インストール先の選択画面で、最初はディスクが表示されないと思います。virtioディスクを認識させるため、フロッピーディスクからvirtioドライバを読み込みます。

下記のようにフロッピーディスクを準備しておきます。

  <devices>
    <disk type='file' device='floppy'>
      <source file='/misc/public/iso/virtio-win-1.1.11-0.vfd'/>
      <target dev='fda'/>
    </disk>
  </devices>

インストール先の選択画面でvirtioネットワークドライバも読み込んでおくと、後からドライバを追加する手間が省けて便利です。下記を読み込んでおきましょう。

残りの手順は物理サーバにインストールする場合と同じです。