Solve nested virtualization challenges in Windows Server 2016
Enable nested virtualization with your Windows Server 2016 Hyper-V environment.
January 28, 2016
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.
Each week, John Savill answers all of your toughest tech questions about the worlds of Windows Server, Azure, and beyond. Read his past IT advice here, and email your questions to [email protected].
About the Author
You May Also Like