Windows 10

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.

Exposing CPU virtual extensions (Image Credit: Microsoft)
Exposing CPU virtual extensions (Image Credit: Microsoft)

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.

Known Issues

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.

Sponsored Content

Passwords Haven’t Disappeared Yet

123456. Qwerty. Iloveyou. No, these are not exercises for people who are brand new to typing. Shockingly, they are among the most common passwords that end users choose in 2021. Research has found that the average business user must manually type out, or copy/paste, the credentials to 154 websites per month. We repeatedly got one question that surprised us: “Why would I ever trust a third party with control of my network?

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.

Related Topics:

BECOME A PETRI MEMBER:

Don't have a login but want to join the conversation? Sign up for a Petri Account

Register
Comments (0)

Leave a Reply

IT consultant, Contributing Editor @PetriFeed, and trainer @Pluralsight. All about Microsoft, Office 365, Azure, and Windows Server.