目次
QEMUによる仮想マシン作成
2008年09月07日 07時51分43秒
QEMU on Windows により、Windowsマシン上で仮想マシンを動かすことがほぼ実用的になってきているので、作成方法を説明する。
なお、充分な検証を行わない限り、実運用環境として利用はしない事。フリーの仮想マシン環境であり、これをサポートする企業は無い。
※実験用、検証用として利用するには充分である。仮想マシンにWindowsServer2003をインストールし、その仮想Windows上にOracle,アプリケーションサーバとインストールしても充分動作した。負荷を考慮しても充分利用可能。
注意
2008/09/07 AMD64のCPUではQEMU for Windowsが動作しない場合がある。 動作しない場合はVirtualBoxで仮想マシン実行を検討してみる。
リンク
ドキュメント
インストールの材料
- 仮想マシンにインストールするOSのインストールCD
- インストールCDをISOイメージに変換するアプリケーション(無くても構わない)
- QEMUアクセラレータ KQEMU
- 仮想CPUエミュレータ QEMU
- TAPアダプタデバイスドライバ
検証に際しては以下のプロダクトを利用した。
- OS - WindowsServer2003 Standard Edition
- QEMU - Qemu-0.9.0-install.exe
- KQEMU - Kqemu-1.3.0pre11-install.exe
- TAP Driver - coLinux-0.7.1-20070326.exe (中のTAP-Win32のみ利用する)
なお、Windowsはライセンスを確認のうえ利用すること。
例えば、Win2003SEは、実機上のWindows2003インスタンスで仮想機上のWindows2003インスタンスを1つだけ実行できる。
Win2003EE(EnterpriseEdition)は、実機上のWindows2003インスタンスで仮想機上のWindows2003インスタンスを4つ実行できる。
インストール手順
WindowsServer2003SE上に仮想環境を作成する。
TAPドライバをインストールする。
今回は、http://www.colinux.org/ の coLinux-0.7.1 のインストーラに含まれる、TAP-Win32アダプタとWinPCAPドライバをインストールする。
それ以外は入れなくてよい。
KQEMUをインストールする
設定は不要。
QEMUをインストールする
設定は不要。
ネットワークブリッジを作る
作り方の例は次のURL。
http://www.microsoft.com/japan/windowsxp/expertzone/columns/crawford/02april22.mspx
この後、作成されたネットワークブリッジに元々の物理NICへ設定していたTCP/IPパラメタを設定する。
この例で言うと、「ローカル エリア接続」に設定していたパラメタを「ネットワーク ブリッジ」に同じように定義することになる。
注意
- WindowsSmallBusinessServer2003でNICが1つしかないマシンではブリッジが作成できない。
- 一時的にネットワークの接続が遮断されるので、リモート接続による設定はそれなりの工夫を要する。
仮想ディスクイメージを作成する
以下は、qcow2形式の4GBハードディスクイメージを作る例である。
qcow2形式はqemuのネイティブ形式。vmdkを指定するとVMWareでも利用可能な形式になる。
イメージは指定されたサイズで完成しない。書き込みがあるたびに増加する。
作成時に指定したサイズまで書き込まれると仮想OS的に「DiskFull」となる。
インストールCDのISOイメージを作る
これは利用する各アプリケーションで異なる。
注意点としては、作成したISOイメージは「Bootable」なイメージで作成されなければならない。
これができない場合、仮想マシンの仮想PC-AT機はCDブートできずインストールが出来ない。
仮想マシンの起動
以下の様なコマンドラインを指定する。
C:\> qmenu -L "C:\Program FIles\Qemu\pc-bios\" -localtime -hda hdd0.img -cdrom CDIMAGE.iso -boot d -net nic -net tap,ifname="ローカル エリア接続 2"
オプション | 説明 |
---|---|
-localtime | タイマーをホストOSのタイマーと同期させる。 |
-hda hdd0.img | Cドライブに割り当てる仮想ディスクイメージのhdd0.imgを指定。hda の場合はCドライブを意味し、-hdb,-hdc,…と続く。 |
-cdrom CDIMAGE.iso | Dドライブに割り当てられるCD/DVDドライブにマウントするCDのイメージのCDIMAGE.isoを指定。ISOイメージが準備できない場合は、「\\.\D\:」の様にホストOSのCDドライブを(この例ではD\:)を指定できる |
-boot d | 仮想PC-AT機がブートで使うドライブを指定する。d は仮想PC-AT機のCDドライブになる。c はCドライブに割り当てたハードディスクになる。 |
-net nic | 仮想OSのNICをホストOSのTAPアダプタ「xxxx」に接続して利用する指定。この指定をしなくても利用できるが、その場合はホストOSがNATボックスとみなされる。その為、仮想OSでWebサーバ等のサービスを提供できない。-redirect 等のオプションを駆使する必要がある。 |
-net tap,ifname=“xxxx” |
仮想OSのインストール
インストールは通常の実機で行うのと同様。
もしCD交換が有るような場合は、次のURLを参照のこと。http://www.h7.dion.ne.jp/~qemu-win/HowToFloppyCdrom-ja.html
Windowsのリモートデスクトップ経由の操作は、仮想マシンのウインドウがうまく操作できない為、できれば実機コンソールで直接操作する。
もし可能ならVNC(確認したのはRealVNC)を経由するとリモートで仮想マシンのウインドウを正しく扱える。
※QEMUの -vnc オプションの事ではない。ホストOSにインストールしたVNCサーバの事。念のため。
仮想OSのブート
インストールが終了し、仮想OSがリブートすると通常のOSと同様に扱える。
Windowsである場合、DHCPになっているので割当されたIPアドレスを確認しないとリモートデスクトップでログインできない。
その他
ping マシン名
インストールしたWindows仮想マシンのホスト名がわかれば、上記コマンドでIPアドレスが判明する。
リモートデスクトップで仮想OSにログインするなら、予め仮想OSにリモートデスクトップの使用許可の設定が要る。
ホストOSでファイアウォールを設定している場合は、それを解除する必要があるかもしれない。