Q. I'm unable to install Hyper-V in a VM running on Windows Server 2016 as it says the required processor features are missing, what can I do?
A. You have to make a configuration change on the VM that you will install Hyper-V into (for nested virtualization) to expose the required virtualization functions. Microsoft documents how to do this by running the following PowerShell:
Invoke-WebRequest https://raw.githubusercontent.com/Microsoft/Virtualization-Documentation/master/hyperv-tools/Nested/Enable-NestedVm.ps1 ` -OutFile ~/Enable-NestedVm.ps1 ~/Enable-NestedVm.ps1 -VmName "savnest01"
If you examine the downloaded PowerShell you can see all the changes required:
- The VM must be turned off when making the changes
- Any saved state is removed
- Dynamic memory is disabled and the VM should have at least 4 GB (the exact amount will depend on how many VMs you wish to run)
- MAC address spoofing is needed if the VMs running inside the VM need network connectivity
- Most importantly and the cause of the error is that virtualization extensions must be enabled to the VM, this is enabled by the above script using:
Set-VMProcessor -VMName $vmName -ExposeVirtualizationExtensions $true
Once all this is done you can have VMs running in VMs with Hyper-V 2016.