検索
連載

「Disk2vhd」を使用したUEFI/GPTベースシステムのHyper-VへのP2V移行山市良のうぃんどうず日記(173)

「P2V(Physical to Virtual)」は、Microsoft Virtual ServerやHyper-Vの登場で“仮想化によるサーバ統合を進めよう”というのが流行った時代に用いられた、物理PC/サーバを仮想マシンに変換する方法です。現在でも、物理サーバのハードウェアの老朽化に対処するため、あるいはOSのサポート終了(EOS)対策としてクラウド化するためにP2Vのニーズはよくあるようです。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
「山市良のうぃんどうず日記」のインデックス

山市良のうぃんどうず日記

Disk2vhdでP2Vした第2世代仮想マシンが起動しない

 P2V(Physical to Virtual)に対応したツールは、仮想化が普及し出だしたころ、仮想化テクノロジーを提供するベンダー各社から自社のテクノロジーに対応したツールが提供されてきました。Microsoftの製品としては、「System Center Virtual Machine Manager(SCVMM)」がありました(残念ながらSCVMM 2012 R2でP2V機能は廃止されました)。

 「Azure Site Recovery」を利用したクラウドへのP2V移行は現在でも利用可能です。Windows Sysinternalsでは、稼働中のOS環境からディスクイメージを取得してVHD形式の仮想ハードディスクファイルに変換することができる「Disk2vhd(Disk2vhd.exe)」という無料のツールが提供されています。Disk2vhdは、最初のバージョン1.0が2009年10月にリリースされ、最新バージョンは2014年1月リリースの2.01です。

 Disk2vhdが古いツールであり、積極的に更新されていないことはバージョン番号を見ても分かると思います。Disk2vhdは、「Windows Virtual PC」(「Windows 7」で動作)、「Microsoft Virtual Server」(「Windows Server 2003/2003 R2」で動作)、初期の「Hyper-V」(「Windows 8」「Windows Server 2012」以前のHyper-V)を想定したものです。

 2013年12月にリリースされたバージョン2.0からVHDX形式と「ボリュームシャドウコピーサービス(VSS)」を使用しないオプション(今回の記事はこの後者のオプションがポイントになります)に対応し、イメージ取得対象の物理環境と移行先のHyper-V環境が広がりました。

 具体的には、UEFI(Unified Extensible Firmware Interface)/GPT(GUID Partition Table)ベースのシステムからのイメージを取得し、最新のHyper-V(Windows 8.1/Server 2012 R2以降のHyper-V)の第2世代仮想マシンに移行することが可能になりました。

 Disk2vhdの登場時に想定されていた移行元の物理環境は、BIOS(Basic Input/Output System)/MBR(Master Boot Record)ベースの32bit(x86)または64bit(x64)Windowsシステムが一般的でした。

 BIOS/MBRベースのシステムを、Disk2vhdをはじめとするP2Vツールを利用して仮想化することは、移行元が「Windows XP」やWindows Server 2003/2003 R2でない限り、それほど難しくなかったと思います。

 Windows XPやWindows Server 2003/2003 R2は「ハードウェア抽象化レイヤー(HAL)」をシステム変更に合わせて入れ替えなければならないことがあったため、その部分が移行を難しくすることはありましたが、この後のWindowsではHALが単一の「hal.dll」に一本化されているため、システム変更にWindowsが自動的に対応してくれます。

 Windows 8/Server 2012以降は、UEFI/GPTベースの64bitシステムが増えてきました。そして、UEFI/GPTベース特有のパーティション構成をよく知らないで単純にP2Vで変換しても、起動できない仮想マシンが出来上がってしまいます。

 例えば、UEFI/GPTベースのWindows Server 2012 R2でDisk2vhdを実行し、「Use Vhdx」と「Use Volume Shadow Copy」がチェックされた既定のオプションの状態で実行したとしましょう(画面1)。

画面1
画面1 UEFI/GTPベースのシステムのWindows Server 2012 R2でDisk2vhdを既定のオプションの状態で実行し、仮想マシン用のVHDXを作成する

 出来上がったVHDXをHyper-VのUEFI/GPTベースの仮想マシンである「第2世代仮想マシン」を作成して接続し、起動すると、PXEブートを試みて失敗し、最終的に「Virtual Machine Boot Summary」の画面に“UEFI互換のファイルシステムが見つからない”という理由で起動できないはずです(画面2)。

画面2
画面2 出来上がったVHDXを第2世代仮想マシンに接続しても、UEFI互換のファイルシステムが見つからず、OSを起動できない(画面はWindows Server 2016 Hyper-Vのもの)

回避方法はUEFIシステムパーティションを含めてVHD/VHDX化すること

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る