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
Microsoft Starts Rolling Out Edge WebView2 to Windows 10 PCs
Jun 28, 2022 | Rabia Noureen
Microsoft to Start Notifying Windows 8.1 Users About Upcoming End of Support
Jun 24, 2022 | Rabia Noureen
Microsoft's Out-Of-Band Patch Fixes Microsoft 365 and Azure AD Sign-In Issues on ARM Devices
Jun 21, 2022 | Rabia Noureen
Microsoft is Investigating Sign-In Issues Affecting Microsoft 365 and Azure AD on ARM Devices
Jun 20, 2022 | Rabia Noureen
Microsoft to Fix Windows Bug Breaking Wi-Fi hotspots After Installing Latest Patch Tuesday Update
Jun 17, 2022 | Rabia Noureen
Microsoft's June 2022 Patch Tuesday Updates Fix Several Remote Code Execution Vulnerabilities
Jun 15, 2022 | Laurent Giret
Most popular on petri