Hyper-Vは、WindowsとWindows Serverに無料で付属している組み込みハイパーバイザーです。これはWindows上で仮想マシン(VM)を実行するために使用されます。仮想化は、仮想化ベースのセキュリティ(VBS)、Windows Sandbox、およびWindows Defender Application Guard(WDAG)などの他の機能にも使用されます。開発者は、デバイスエミュレータを実行するために、時にはVisual Studioと仮想化を使用します。
Microsoftは、Windows Server 2016でネストされた仮想化のサポートを導入しました。ネストされた仮想化を使用すると、Hyper-Vホストで実行されているVMゲスト内でHyper-Vを起動できます。つまり、VM内でVMを実行しているようなものです。
ネストされた仮想化を使用する前に満たす必要があるいくつかの前提条件があります。VMの構成はバージョン8.0以上である必要があります。また、ネストされた仮想化は、Intel CPUの仮想化(VT-x)および拡張ページテーブル(EPT)のみをサポートしています。
AMD CPUでのネストされた仮想化
ネストされた仮想化は、Windows 10ビルド19636以降で利用可能です。私の理解では、AMDサポートはWindows 11とWindows Server 2022の一部として公式に利用可能になる予定です。両製品は2021年後半に予定されています。
仮想マシンを作成
デフォルトでは、ネストされた仮想化は有効になっていません。そして、それはVMごとに有効にされます。最初のステップは、Hyper-Vホスト上に少なくとも1つのVMを作成することです。Windows 10またはWindows Serverであってもかまいません。以前にWindowsの仮想マシンを設定したことがない場合は、以下のPetriのガイドをご覧ください。
ガイド:仮想マシンにWindows 10をインストールする方法
ガイド:仮想マシンにWindows Server 2019をインストールする方法
ネストされた仮想化を有効にするためには、VMにオペレーティングシステムをインストールする必要はありません。
ネストされた仮想化を有効にする
Hyper-VホストにゲストVMをセットアップしたら、ネストされた仮想化を有効にする前に、VMが「オフ」の状態にあることを確認することが重要です。VMを停止するには、Hyper-Vマネージャーを使用するか、Stop-VM PowerShell cmdletを使用します。PowerShellまたはWindows Terminalを開き、以下のコマンドを実行してください。ただし、Windows 11 に自分のVMの名前を置き換えてください。
Stop-VM -Name 'Windows 11'
ネストされた仮想化を有効にしたいVMの名前がわからない場合は、Get-VMを使用してホスト上のVMのリストを取得できます。Get-VMは各VMのバージョン番号も提供しています。
Get-VM
VMのバージョン番号を更新してネスト型仮想化をサポートするようにするには、以下に示すようにUpdate-VMVersionを実行し、Windows 11をVMの名前で置き換えます。
Update-VMVersion -Name 'Windows 11'
VMの状態を「オフ」に設定したら、ネスト型仮想化を有効にできます。有効にする唯一の方法はPowerShellを使用することです。PowerShellターミナルウィンドウで、以下のコマンドを実行し、Windows 11をVMの名前で置き換えます。
Set-VMProcessor -VMName 'Windows 11' -ExposeVirtualizationExtensions $True
これで残りはVMを起動するだけです。Hyper-V Managerを使用するか、以下に示すようにPowerShellを使用して実行できます。
Start-VM -Name 'Windows 11'
VMが起動したら、Windowsにログインして、Hyper-V機能またはサーバーロール、およびそれに依存するその他の機能をインストールできるようになります。
Source:
https://petri.com/how-to-enable-nested-virtualization-in-hyper-v/