Windows 8でHyper-Vを利用するためには、ゲストOSを実行するために十分なメモリやディスク領域が必要なのはもちろんだが、「ハードウェア仮想化支援機能」と「SLAT(Second Level Address Translation)サポート」を持った「x64アーキテクチャのCPU」が必要である。そしてOSは、64bit版のWindows 8 ProかEnterpriseエディションが必要だ。
ディスクやメモリは作成する仮想マシンの規模や数、同時実行数などに応じて変わるのでここでは触れないが、だいたいの目安としては、1仮想マシンごとに10Gbytesのディスク領域と、1Gbytesのメモリが最低限必要だろう。Hyper-Vでは「動的メモリ」といって、必要に応じて仮想マシンに割り当てる実メモリ・サイズを動的に変更する機能がサポートされているので、初期サイズを512Mbytes程度にして動的割り当てしておけばよいだろう。ただし、すべてのゲストOSでこの機能が利用できるわけではない。詳細は「メモリ管理機能が強化されたHyper-VのDynamic Memory」の表「Dynamic Memoryを利用できるゲストOS」を参照していただきたい。
メモリやディスクに対する要件と比べると、CPUに対する要件はやや厳しいかもしれない。64bitサポートやハードウェア仮想化機能がサポートされているCPUは多くあるが、SLAT機能を持っていないCPUもある(ここ2〜3年の間に発売されたCPUならまず持っているはずだ)。SLAT機能が利用できるかどうかは、TIPS「coreinfoツールでCPUの仮想化対応機能をチェックする」で紹介している方法で確認できる。その記事では、Sysinternalsのcoreinfoというツールを使い(「coreinfo -v」で確認できる)、SLAT(Intel CPUの場合はEPT、AMD CPUの場合はNPTと呼ぶ)がサポートされているかどうかを確認している。
※coreinfoコマンドでCPUの機能をチェックする
C:\>coreinfo -v …非ハイパーバイザ(HYPERVISOR)環境下でこれを実行する
Coreinfo v3.1 - Dump information on system CPU and memory topology
Copyright (C) 2008-2012 Mark Russinovich
Sysinternals - www.sysinternals.com
Intel(R) Core(TM) i7 CPU 950 @ 3.07GHz
Intel64 Family 6 Model 26 Stepping 5, GenuineIntel
HYPERVISOR - Hypervisor is present
VMX * Supports Intel hardware-assisted virtualization
EPT * Supports Intel extended page tables (SLAT)
↑↑↑↑ VMXとEPTに「*」が表示されればOK。HYPERVISORは「-」であること(仮想環境下では正しく判定できない)
C:\>
システムの準備ができたらHyper-Vをインストールしよう。クライアントHyper-Vをインストールするには、[コントロール パネル]で[プログラムと機能]を開き、左側のメニューから[Windows の機能の有効化または無効化]を実行する。
Hyper-Vがインストールできると、スタート画面に「Hyper-V マネージャ」が登録されるはずである。これを起動してHyper-Vの初期設定を行う。
最初に行うべき作業の1つに、仮想マシン用のネットワーク・インターフェイスの作成がある。Hyper-Vマネージャの右側ペインにある「仮想スイッチ マネージャ」ツールを起動し、外部ネットワークや内部ネットワーク、プライベート・ネットワークなどのインターフェイスを作成しておく。Windows Virtual PCでは固定的なネットワーク・インターフェイスがあらかじめ用意されていたが、Hyper-Vの場合は目的に合わせてカスタマイズしたネットワーク・インターフェイスを自分で作成する。詳細については「仮想ネットワークの種類を知る」を参照していただきたい。
Window Virtual PCとHyper-Vは仮想化のアーキテクチャが異なるため、Windows 7のWindow Virtual PC環境で使用していた仮想マシン(を構成するファイル群)をWindows 8のHyper-Vへそのままインポートして利用することはできない。だが、ディスク・イメージを保存しているファイル(VHDファイル)はどちらの仮想環境でもそのまま利用できるので、これを使って手動で作業すれば、移行できないことはない。VHDファイルを使ってHyper-V上に新しい仮想マシンを作成すればよいだけである。幸いなことに、どちらの仮想環境も、非常に原始的なPC/AT互換のハードウェア環境をエミュレーションしている。そのため、デバイス・ドライバをいくつか入れ替えるだけで、ほぼそのままHyper-V上でも実行可能だ。以下、その大まかな手順を示す。
まずWindows Virtual PC上で移行元の仮想マシンを起動し、コントロール・パネルの「プログラムの追加と削除」で、「Virtual PC統合コンポーネント」をアンインストールする。統合コンポーネントは互換性がないので使えないからだ(移行後にアンインストールしてもよい)。アンインストール後、仮想マシンを正常にシャットダウンさせてから(スリープではなく、必ずシャットダウンさせること。復元ディスクなしで正常にシャットダウンすることを確認すること)、仮想ディスク・ファイルをWindows 8側へコピーする。なお差分ディスクになっているとVHDファイルをコピーしても動作しないので(差分ディスクの場合は親ディスクへの絶対パス情報が内部に記録されているため)、必ず独立した単一の仮想ディスク・ファイルに変換しておくこと。仮想ディスクの種類は「容量可変」と「固定」のどちらでもよい。
VHDファイルが用意できたら、Windows 8のHyper-V上で仮想マシンを新規作成する。元のイメージには32bit OSしか入っていないなずなので、メモリはせいぜい2Gbytesも割り当てておけば十分だろう。ネットワークやディスクの追加などは後回しにして、コピーした仮想ディスク1台だけを使って(「既存の仮想ハードディスクを使う」を選択する)仮想マシンを作成する。CPUはとりあえず1コアのみ割り当てておく(これがデフォルトの状態。2コア以上にしないこと)。
この状態で仮想マシンを起動してみる。Windows Virtual PC上で動作していたWindows OSなら、まず問題なく起動できるはずだ。起動したら、再アクティベーションが要求されたり、新しいハードウェアの検出ウィザードが表示されたりするが、それらはすべてキャンセルして後回しにする。とにかく、「Hyper-V統合サービス」をインストールするまでは何も行わず、すべてキャンセルすること。ただし再起動要求がある場合は、指示に従って再起動しておく。Windows Virtual PCの統合コンポーネントをまだアンインストールしていない場合は、この段階でアンインストールして再起動しておく。
正常に起動できたら、次はHyper-Vの仮想マシン・ウィンドウで[操作]−[統合サービス セットアップ ディスクの挿入]を実行し、ゲストOSにHyper-V統合サービスをセットアップする。セットアップ後、必要に応じて(何度か)再起動する。
ここまでくれば、移行はほぼ成功といってよいだろう。後は、ハードウェアを1つずつ追加・変更しながら設定を行えばよい。具体的には、CPUコアを増やす、ネットワーク・アダプタを追加する、ディスクを追加する、などを行う。なおCPUコアを増やすと、場合によってはブルースクリーン(BSOD)が表示されることがある。Windows XPやそれ以前のOSではその確率が高いので(手元のWindows XP SP3では問題なかったが)、その場合は1コアのみで運用する。また、ハードウェアを変更する場合は、必ず1作業ごとにゲストOSを再起動させること。一気に行うと失敗する確率が高いので注意する。ちなみにHyper-Vにはスナップショットがあるので、少しずつスナップショットを取りながら作業してもよいだろう(作業が終了したら、スナップショットをすべて削除すること)。
Copyright© Digital Advantage Corp. All Rights Reserved.