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 を作成してログインし直すとアンダーバーが入力出来るようになります。