Enable Nested Hyper-V Virtualization in Windows 10 Build 10565
Microsoft has quietly slipped nested virtualization into Windows 10 build 10565, or in other words, Microsoft has included the ability to run Hyper-V on a Hyper-V virtual machine (VM) guest.
Although this technology is primarily intended for enabling Hyper-V Containers in Windows Server 2016 because server and client operating systems share the same core code, this feature has cropped up in Windows 10 before making an official appearance in the Windows Server technical preview, which last saw a refresh in August.
To make this technology work, Microsoft is virtualizing Intel VT-x and AMD-V hardware features that are normally hidden from the OS running in a guest VM. It should also be noted that only Intel VT-x based systems are supported in the current build. For more information on Windows Server Containers, see What are Windows Server Containers? on the Petri IT Knowledgebase.
In advance of the public preview of Hyper-V Containers on Windows Server 2016, this early glimpse of nested Hyper-V has a list of known issues and only supports Hyper-V on Hyper-V. Stated differently, no other hypervisor can be installed on a Hyper-V guest VM. Furthermore, only Windows 10 build 10565 or later versions are supported as guest and host operating systems for the time being.
Dynamic memory must be disabled, and if networking is required, MAC spoofing must be enabled, which can be achieved using the Set-VMNetworkAdapter cmdlet as shown below, replacing the value of the –VMName parameter with the name of a VM host, which will support nested virtualization.
Set-VMNetworkAdapter -VMName ‘My VM’ -MacAddressSpoofing On
It’s also worth noting that save, restore, and checkpoint operations will fail on hosts where nested virtualization is enabled, as well as attempts to resize runtime memory.
Enable Nested Virtualization
Microsoft has provided a PowerShell script for enabling nested virtualization on host VMs (Enable-NestedVm.ps1), and another for checking the current nested virtualization configuration status of VM hosts (Get-NestedVirtStatus.ps1), both of which can be downloaded from GitHub.
Both scripts must be run with elevated privileges, and the name of the VM host to be configured for nested virtualization must be passed to the Enable-NestedVm.ps1 script as shown below, replacing the value of the –VMName parameter with the name of the VM to be configured.
Enable-NestedVm.ps1 -VmName ‘My VM’
Don’t forget before trying nested virtualization, you’ll need plenty of available RAM. And although there’s no minimum requirement given by Microsoft, anything less than 4GB is likely to be a non-starter.
More in Windows 10
September Patch Tuesday Updates Cause Group Policy Issues on Windows PCs
Sep 26, 2022 | Rabia Noureen
Microsoft to End Windows 10 version 21H1 Support in December
Sep 16, 2022 | Rabia Noureen
Microsoft Introduces New Group Policy to Control IE Retirement
Sep 15, 2022 | Rabia Noureen
Microsoft's September 2022 Patch Tuesday Updates Fix 64 Windows Vulnerabilities
Sep 14, 2022 | Laurent Giret
Windows Terminal 1.16 Preview Adds New Text Rendering Engine and Themes
Sep 14, 2022 | Rabia Noureen
What’s New with Windows – August 2022
Sep 6, 2022 | Russell Smith
Most popular on petri