かつて山市良と呼ばれたおじさんのブログ
セイテクエンジニアのブログ かつて山市良と呼ばれたおじさんのブログ vol.159 老朽化物理サーバーは、P2VでHyper-Vへ(後編)|Windows Server 2016 EOSまであと407日
2025年12月01日配信
執筆者:山内 和朗
Windows Server 2016の製品ライフサイクルとサポート終了日(End of LifeCycle《EOL》、End of Support《EOS》)である2027年1月12日までまだ1年以上ありますが、対策に着手するには遅すぎるくらいです。Hyper-V環境を優先的にWindows Server 2025に移行したら、残りの物理サーバーはP2V(物理-仮想)変換で仮想化してしまうという道が開けます。今回は前回から引き続き、物理サーバーの最新Hyper-V環境へのP2V(物理-仮想)変換による移行について説明します。
P2V移行機能を備えた製品やサービスはいくつかあります。Microsoft製品とサービスであれば、System Center Virtual Machine ManagerやAzure Migrateサービスです。今回はそういった製品やサービスを使用せずに、以下の記事でVMware VMのHyper-Vへの移行に使用したWindows SysinternalsのDisk2vhdツールを利用します。VMware VMを物理サーバーに置き換えるだけです。
メモ. 手間はかかるが金いらずのV2V: VMwareのWindows VMをHyper-Vへ (その1)
メモ. 手間はかかるが金いらずのV2V: VMwareのWindows VMをHyper-Vへ (その2)
Disk2vhdはもともと、物理マシンのディスクをイメージを取得して、Microsoft Virtual PC用の仮想ハードディスク(VHD形式)にするユーティリティとして登場したものですが、その後、Hyper-VのVHDおよびVHDX形式にも対応しました。
Disk2vhd|Windows Sysintarnals(Microsoft)
Disk2vhd(64ビット)|Sysinternals Live
では、Windows Server 2016の稼働中の物理サーバーをDisk2vhdツールを使用して、P2V変換、移行してみましょう。Windows Server 2016のような64ビット(x64)OSのイメージをDisk2vhdツールを使用してキャプチャするには、64ビット版Disk2vhd(Disk2vhd64.exe)を使用する必要があります。
最初に、移行元の物理サーバーのファームウェアの種類を調べておきます。ファームウェアの種類は、UEFIまたはレガシBIOSのいずれかのはずです。UEFIの場合はHyperーVの「第2世代」VM、レガシBIOSの場合はHyper-Vの「第1世代」VMに移行することができます。ファームウェアの種類を調べるには、「システム情報(msinfo32.exe)」で「システムの要約|BIOSモード」が「UEFI」であるか「レガシ」(BIOS)であるかを確認します。PowerSehellで以下のコマンドラインを実行して確認することもできます。
| (Get-ComputerInfo).BiosFirmwareType #UefiまたはLegacy(BIOS) または Confirm-SecureBootUEFI #TrueまたはFalseであればUEFI、エラーはBIOS |
BIOSシステムの場合は、稼働中のシステムにローカルログオンまたはリモートデスクトップ接続で対話的にログオンし、Disk2vhd64.exeを実行して、VHD(x)の保存先パスを指定します。また、「Use Vhdx」と「Use Volume Shadow Copy」をオンにして、キャプチャを実行します。キャプチャ対象としては、最低限、C:ドライブ、回復パーティション(存在する場合)、ローカルのデータドライブ(存在する場合)を選択します。データドライブが物理ディスクなど、移行先のHyper-Vホストに移設できる場合は除外できます(移設後にパススルーディスクとしてVMに接続できます)。
UEFIシステムの場合は、追加の手順が必要です。次の順番で実行することで、通常マウントされていないEFIシステムパーティション(ESP)を一時的にローカルマウントし、キャプチャ対象にそのドライブ(S:)を含める必要があります。この手順を省いてしまうと、起動できないVHD(x)が作成されてしまいます。なお、ESP(FAT32)をキャプチャに含める場合、FAT32はVSS非対応であるため「Use Volume Shadow Copy」をオフにしてキャプチャを実行してください(画面1)。
| MOUNTVOL S: /S DISK2VHD64.exe MOUNTVOL S: /D |

画面1 UEFIシステムの場合は、ESPパーティションをドライブにマウントしてからキャプチャを実行する。VSSオプションはオフにすること
Disk2vhdツールは、キャプチャ対象に含めたボリュームを含むディスクごとに、1つのVHD(x)ファイルを作成します。複数のディスクがあり、複数のVHD(x)ファイルが作成された場合は、「VHD file name」に指定したファイル名に「-0」「-1」のサフィックスが付加されます。
BitLockerとDisk2vhd物理サーバーの物理的なTPMに格納されている内容は移行できませんが、OSドライブがBitLockerドライブ暗号化で保護されている場合でも、稼働中でキャプチャすれば問題ありません。稼働中のOS環境では暗号化されていない状態(ロックが解除された状態)でキャプチャすることになるため、作成されるVHD(x)の内容は暗号化されていない状態です。後でVMでvTPMを有効化して、BitLockerドライブ暗号化を再セットアップすることで、再びOSディスクを暗号化保護することができます。 |
Disk2vhdツールでVHD(x)ファイルにした移行元物理サーバーがUEFIの場合はHyperーVの「第2世代」VM、レガシBIOSの場合は「第1世代」のVMに移行することができます。
移行先のHyper-Vホストで「Hyper-Vマネージャー」を開き、「新規 > 仮想マシン」を選択します。「仮想マシンの新規作成」ウィザードが始まったら、「第1世代」と「第2世代」のいずれか適切な方を選択します(画面2)。ウィザードでは、移行元の物理サーバーのハードウェア構成に合わせて、メモリとネットワークを割り当てます。「仮想ハードディスクの接続」のページでは「後で仮想ハードディスクを接続する」を選択し、Hyper-V VMを作成します。作成後、Hyper-V VMの「設定」を開いて、コア数やメモリ割り当てを調整し、必要に応じてセキュアブートやvTPMを有効化します(第2世代VMの場合)。

画面2 移行元の物理サーバーのシステムに合わせて「第1世代」または「第2世代」を選択し、「後で仮想ハードディスクを選択する」を選んでVMを作成する
また、移行元の物理サーバーで作成したVHD(x)ファイルのうち、OSディスクをコントローラー「SCSIコントローラー(第2世代VMの場合)」または「IDEコントローラー(第1世代VMの場合)」の場所「0」に、データディスク(存在する場合)を同コントローラーの場所「1」のように接続していきます。DVDドライブがその場所を既に使用している場合はDVDドライブの場所をずらして設定してください(画面3)。

画面3 移行元の物理サーバーで作成したVHD(x)ファイルのうち、OSディスク(C:ドライブを含むVHD(x)ファイル)をSCSIまたはIDEコントローラーの「0」に接続する
最後に、VMの「設定」の「ファームウェア」を開き、「ハードドライブ」から優先的に起動するようにブート順を調整して(画面4)、VMを開始します。初回起動時、ハードウェアの変更が検出され、デバイスが準備されます(画面5)。その後、起動が完了します。初回ログオン時、「シャットダウンイベントの追跡ツール」が表示されますが、これは稼働中のシステムをキャプチャしてVHD(x)を作成したからであり、想定された動作です。

画面4 OSディスクのVHD(x)ファイルから起動するようにブート順を調整する

画面5 初回起動時、ハードウェアの変更が自動検出され、デバイスが準備される

画面6 初回ログオン時に「シャットダウンイベントの追跡ツール」が表示されるが、これは稼働中のシステムからキャプチャしたVHD(x)であるため
なお、P2Vで物理サーバーをVMに移行した場合、移行元の物理サーバーでIPアドレスなどのパラメーターをDHCPではなく、静的に設定してあった場合は、ネットワークの再設定が必要です。VMに移行後ネットワークアダプターは変わってしまうため、物理サーバーと同じネットワーク設定を検出されたネットワークアダプターに再設定します。
このように、P2V専用の製品やサービスを使用しなくても、簡単にP2V移行を実現できます。今回はDisk2vhdツールを使用しましたが、Windows Serverバックアップを使用して、ベアメタル回復用のバックアップを作成し、新規に作成したVMをWindows ServerのインストールメディアのWindows回復環境(WinRE)で起動して、VMの空のVHD(x)ファイルにイメージを復元することで、P2V移行することも可能です。WindowsおよびWindows Serverは、Hyper-Vに最適化されたゲストコンポーネント(ドライバーおよびサービス)を標準搭載しているため、Hyper-V VMに移行後、追加設定なしでHyper-Vに最適化された状態で稼働します。
移行元の物理サーバーがファイバーチャネルやiSCSIのSANストレージに接続されていた場合は、VMのファイバーチャネルアダプター(Hyper-Vホストにファイバチャネルアダプターが必要)やネットワークアダプターでSANストレージに接続することができます。物理サーバーでデータ用に使用していた1つ以上の物理的なローカルハードディスクやSSDがあり、Hyper-Vホストにそのディスクを移設できる場合は、移設後、VMのディスクコントローラーにその物理ディスク(Hyper-V側でオフラインにしておく必要があります)をパススルーディスクとして割り当てることができます。
Windows Server 2016 EOSまであとX日(1)|...|(11)|(12)|(13)|(14)|(15)|(16)|(17)|(18)