概要
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を有効化できるはずです。