Hyper-VのVMを多重階層化(Nested VM)する


概要

VM上でHyper-Vを有効化しようとした際に「必要な仮想化機能がプロセッサにありません」というエラーが出た場合の対処法です。

結論、の前に

Intel製プロセッサでない場合、Nested VMはサポートされていないとのことです。
(機能が有効化できてもVMの起動に失敗したりする模様)
パブリッククラウドのIaaSで利用する場合はハードウェアについても確認しましょう。

結論

デフォルトでは無効化されている「ExposeVirtualizationExtensions」を有効化する必要があります。
このパラメータはNested VMの有効/無効を示します。

手順

ホストPCのPowerShellから下記コマンドを実行します(おそらく要管理者権限、未確認)。
<VMName>には対象となるVM名を指定します(下記の参考画像では"Host_Training"がマシン名)。
なお、対象のVMは停止している必要があります。

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

下記コマンドでVMの一覧が表示されますので、上記実行後に結果を確認します。

Get-VMProcessor -VMName * |ft VMName,ExposeVirtualizationExtensions

対象の"ExposeVirtualizationExtensions"がTrueになっていればOKです。
再度VMを立ち上げれば、Hyper-Vを有効化できるはずです。