Hyper-Vで作成したWindows OSの仮想マシンにさらにHyper-Vをインストールして入れ子(nested)仮想化を行う方法について説明します。これにより、既存の仮想マシン内で新たな仮想マシンを作成することが可能になります。
前提条件
ホストマシンはWindows 10 Pro、Enterprise、またはEducation、もしくはWindows Server 2016以降を実行している必要があります。
CPUはVMモニターモード拡張(Intel VT-xとAMD-V)をサポートしている必要があります。
作成手順
ホストマシンにHyper-V機能を有効化
ホストマシン(ここではWindows 11を使用)にてコントロールパネルを開き、「プログラムと機能」にアクセスし、「Windowsの機能の有効化または無効化」をクリックし、Hyper-Vを選択してチェックを入れます。

OKをクリックして変更を適用し、必要に応じてコンピュータを再起動します。
仮想マシンを作成
Hyper-V マネージャーを開き、「新規」→「仮想マシン」を選択してガイドに従い、仮想マシンを作成、インストールしたいWindows OSのイメージを使って、仮想マシンにOSをインストールします。
Hyper-VにWindows Server 2022の仮想マシンを作成し、起動した結果は次のようになります。

入れ子仮想化(ExposeVirtualizationExtensions)を有効に変更
次の手順で親仮想マシンに対して入れ子(Nested)仮想化設定を有効にします。
- PowerShellを管理者として実行します。
- 以下のコマンドを実行して、現在の入れ子仮想化状態を確認します。
PS C:\> Get-VM | Get-VMProcessor | Select-Object VMName, ExposeVirtualizationExtensions
VMName ExposeVirtualizationExtensions
------ ------------------------------
Windows Server 2022 Jp False
- 以下のコマンドを実行して、入れ子仮想化を有効にします。
PS C:\> Set-VMProcessor -VMName "Windows Server 2022 Jp" -ExposeVirtualizationExtensions $true
- 以下のコマンドを実行して、現在の入れ子仮想化状態が有効に変更されたことを確認します。
PS C:\> Get-VM | Get-VMProcessor | Select-Object VMName, ExposeVirtualizationExtensions
VMName ExposeVirtualizationExtensions
------ ------------------------------
Windows Server 2022 Jp True
仮想マシンにHyper-V機能を有効化
入れ子の仮想マシンを起動し、同じ手順で「Windowsの機能の有効化または無効化」からHyper-Vを有効にします。

続けて、仮想スイッチ、移行、規定の保管場所を設定します。

インストールが完了すると最後に次の画面が表示されます。

最終的に以下のような構造になり、
[Hyper-V マネジメント]
└─[親HOST]
└─[仮想マシン]
└─[入れ子 Hyper-V マネジメント]
└─[入れ子 HOST]
└─[入れ子 仮想マシン]
次の画面のように表示されます。

これで、最初の仮想マシン内でさらに仮想マシンを作成し、実行する準備が整います。入れ子仮想化は開発やテスト環境の構築、さらには教育目的での利用に非常に便利です。それぞれの仮想マシンで独立した環境を持つことができます。
参考サイト

コメント