Linux標準の仮想化技術「KVM」を使ってWindowsを動かす

サーバマシンにubuntuをインストールしてLinux上で仮想化機能を使いWindowsXPを動かす所までのメモです。 この場合Windowsのライセンスには十分注意してくださいね。

※詳細な説明は書きませんあくまでチラ裏です。

ホストマシンにubuntuをインストール

http://www.ubuntu.com/download/ubuntu/download

isoイメージ(Ubuntu10.04 LTS 64bit)をCDに焼いて普通にインストールする。

仮想化の肝である KVM パッケージのインストール

参考)

http://research.sakura.ad.jp/2010/11/17/kvm-desktop/

$ sudo apt-get install qemu-kvm kvm-pxe

KVMモジュールを有効化します

$ sudo modprobe kvm

読み込まれたか確認

$ sudo lsmod

ブリッジ・インターフェースを作成

br0の設定 VMに外部ネットワークを接続するためにはブリッジ・インターフェースを用意する必要があります。 そのために /etc/network/interfaces を書き換えます。 下記は DHCP でアドレスを設定する場合。

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet dhcp
  bridge_ports eth0

ファイルを書き換えたらインターフェースをリスタートします。

$ sudo /etc/init.d/networking restart

VMインストールのための準備

VMのHDDデバイスに当たるイメージファイルを作成します。(10GB作成の例)

$ dd if=/dev/zero of=vm.img bs=1M count=10240

VMを起動してOSをインストールする

カレントディレクトリに先ほど作ったvm.imgと インストール元イメージ(Windowsインストールディスク)の xxxx.iso ファイルがあると仮定します。 macaddrは本当の物理アドレスと被らなければ適当でいいです。cdromのxxxx.isoイメージから起動してインストールする。 model=e1000はネットワークカードの設定エミュレーション設定なので*nixな場合はe1000のエミュレーションでおk。 windowsの場合はmodel=e1000は無しで。

$ sudo kvm vm.img -m 256 -net nic,model=e1000,macaddr=xx:xx:xx:xx:xx:xx  -net tap,ifname=tap0 -cdrom xxxx.iso -boot d

インストール完了後の起動

インストールが完了したら、CD-ROMを外して再起動します。 そのときコマンドラインから -cdrom オプションと -boot オプションを外します。

$ sudo kvm vm.img -m 256 -net nic,model=e1000,macaddr=xx:xx:xx:xx:xx:xx  -net tap,ifname=tap0

実際に使用した時の例、cdromドライブが使えるようにデバイス名を指定する。cdrom /dev/cdrom が無いとデバイスを認識しません。

$ sudo kvm vm.img -m 2048 -k ja -net nic,macaddr=00:00:00:00:00:11 -net tap,ifname=tap1 -cdrom /dev/cdrom

Ubuntu 10.04にFreeNXでリモートログイン

サーバマシンにはモニタやキーボードが繋がっていない場合が多いので他のマシンからVNC機能を持ったリモートデスクトップソフトを利用して操作してみる。 有名なのは UltraVNC 等ありますが「狭いネットワーク帯域でも比較的高いパフォーマンスを発揮」する FreeNX を使う。

参考)

http://gihyo.jp/admin/serial/01/ubuntu-recipe/0098?page=1

http://www.rapidexp.com/wordpress/2010/10/01/reenx/

インストール前の準備

FreeNXをインストールする前に,SSHサーバをセットアップしておく必要があります。 インストールしていなければ,端末を開いて以下のコマンドを実行しましょう。

sudo apt-get install openssh-server

Ubuntu(FreeNX)サーバ側

FreeNXのPPAを追加。

$ sudu add-apt-repository ppa:freenx-team
$ sudo apt-get update
$ sudo apt-get install freenx

rcconf等でfreenxが自動起動するよう設定

Windows(FreeNX)クライアント側

http://www.nomachine.com/download-client-windows.php

インストールが完了するとFreeNXからVMホストのアドレスを指定して接続するとWindowsクライアント側でサーバー上のkvmで動作しているwindowsを操作できるようになる。 FreeNX上で_が入力できない場合の対処

FreeNX上のコンソールなどでアンダーバー"_"が入力できない事があるので~/.Xmodmapを作成してキーマップを変更する。

keycode 123 = backslash underscore

.Xmodmap を作成してログインし直すとアンダーバーが入力出来るようになります。

created:

Back to top