- Windows XP Professional SP3
- Windows Vista Business SP1 (or later)
- Windows Vista Enterprise SP1 (or later)
- Windows Vista Ultimate SP1 (or later)
- Windows 7 Professional
- Windows 7 Enterprise
- Windows 7 Ultimate
サポート対象のゲスト OS が動かないというわけではありませんが、ゲスト コンポーネントが利用できない仮想マシンは実用的ではありません。これは、どんな仮想化テクノロジ(VMware や VirtualBox、Xen Server など)でも言えることです。少なくても時刻同期が利用できないと、さまざまな問題が出てきます。特に、Windows と時間の管理が異なる Linux の場合、時間がとてつもなく進んでしまったり、逆にどんどん遅れていくといったことになります。誤差は、ntp などで訂正するのも困難なほどにです。
Windows Virtual PC は、Virtual PC 2007 SP1 の後継ということで、Virtual PC 2007 SP1 のゲスト コンポーネント(バーチャルマシン追加機能)が利用できないかどうか試してみました。Windows Virtual PC には仮想マシンのインポート/エクスポート機能はありませんが、Virtual PC 2007 SP1 で作成した仮想マシン構成ファイル(.vmc)をダブルクリックすると、仮想マシンが登録され、仮想マシンが開始します。Windows Virtual PC 上に仮想マシンを新規作成した場合は、Virtual PC 2007 SP1 がインストールされているコンピューターの C:\Program Files\Microsoft Virtual Server Trial\Virtual Machine Additions\VMAdditions.iso を仮想マシンにマウントして、Virtual PC 2007 SP1 のバーチャルマシン追加機能をインストールできます。
次のスクリーンショットは、Windows 2000 Professional SP4 の仮想マシンが動いているところです。ネットワーク アダプター(Intel 21140)やビデオ(S3 Trio)、オーディオ(Sound Blaster)は問題なく動いているようです。ホストとのマウス統合やシャットダウン連携、時刻同期もちゃんと機能しました。Virtual PC 2007 SP1 で利用可能なホスト/ゲスト間のドラッグ&ドロップやフォルダー共有は機能しないようです。
Linux ゲストの場合も確認してみました。マイクロソフトは、Virtual Server 2005 R2 向けに Virtual Machine Additions for Linux (VMAdditons for Linux)を提供しています。VMAdditons for Linux は、Linux ゲストに対してホストとの時刻同期、ハートビート、シャットダウン連携、マウス統合、ビデオ ドライバー、仮想 SCSI ドライバーを提供します。Virtual Server 2005 R2 と Virtual PC 2007 SP1 の仮想マシンは、仮想 SCSI デバイスとオーディオ以外は互換性があるので、Virtual PC 2007 SP1 の環境でも時刻同期、シャットダウン連携、マウス統合、ビデオ ドライバーを利用できる可能性があります。
次のスクリーンショットは、Windows Virtual PC の仮想マシンで Ubuntu 8.04 TLS が動作しているところです。結論から言うと、VMAdditions for Linux のうち、すべてのコンポーネントの前提となるカーネル モジュール vmadd と時刻同期 vmadd-timesync は動作し、機能しているようです。シャットダウン連携(vmadd-shutdown)は、スクリーンショットを見ればわかるように機能しません。マウス統合とビデオ ドライバーは試していません(経験上、おそらく動かないでしょう)。
これで (最大の懸案である時刻同期が解決できたので)、 Windows Virtual PC でもいろいろな Linux ディストリビューションが楽しめる!! とはいきません。Ubuntu 8.04 はこのような状況ですが、最新の Linux ディストリビューションは Virtual PC 2007 SP1 よりもインストールを成功させるのが一苦労です。
Fedora 11
起動オプションに noreplace-paravirt vga=0x317 nosmp noapic nolapic を追加することでインストールは開始するも、最終段階でハングアップ。Rescue モードで起動して、/mnt/sysimage/etc/grub.conf の起動エントリに noreplace-paravirt vga=0x317 nosmp noapic nolapic を追加して、セットアップを再開、完了できた。VMAdditions for Linux については、vmadd カーネル モジュールのソース(vpc-mod.c および vpc-utils.c)に手を加えることでインストールできたが、ロードしようとするとセグメンテーション違反が発生し、断念。
openSUSE 11.1
起動オプションに vga=0x317 noreplace-paravirt を追加することでインストールは開始するも、途中でハングアップし断念。ちなみに、ISO イメージを直接マウントするとチェックサム エラーが発生。ホストの仮想 DVD ツール経由なら正しく読み込んだ。
Ubuntu 9.10
既定のオプションで Ubuntu のインストールは問題なく完了。VMAdditions for Linux はカーネル モジュールがビルドできずに断念。
VMAdditions for Linux については、Windows Server World 2007年12月号の特集「Linux on Virtual Server」やWindows Server World 2008年9月号から同誌の最終号である 2009年12月号まで連載していた「仮想化の教室」(2008年11月号、12月号、2009年1月号)で取り上げました。2008年11月号掲載分については COMPUTERWORLD のサイトで参照できます。