PC users can leverage Nested Virtualization feature to run Hyper-V inside of a Hyper-V virtual machine (VM) on a Windows 11 or Windows 10 host machine. This is helpful for running a Visual Studio phone emulator in a virtual machine, or testing configurations that ordinarily require several hosts. In this post, we will show you how to enable or disable Nested Virtualization for VMs in Hyper-V.
Enable or Disable Nested Virtualization for VMs in Hyper-V
Nested Virtualization is supported both Azure and on-premises with the following prerequisites;
Intel processor with VT-x and EPT technology
- The Hyper-V host must be Windows Server 2016/Windows 10 or greater
- VM configuration version 8.0 or greater
AMD EPYC/Ryzen processor or later
- The Hyper-V host must be Windows Server 2022/Windows 11 or greater
- VM configuration version 10.0 or greater
For both configurations, the guest can be any Windows-supported guest operating system. Keep in mind that newer Windows operating systems may support enlightenments that improve performance.
Enable Nested Virtualization
To enable Nested Virtualization for VMs in Hyper-V, do the following:
- Create a virtual machine using the prerequisites specified above.
- While the virtual machine is in the OFF state, on the physical Hyper-V Windows host, open PowerShell in elevated mode.
- In the PowerShell console, run the command below to enable nested virtualization for the virtual machine. Substitute the <VMName> place holder with the actual VM name for the VM you created earlier.
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
- Once the command executes, you can exit PowerShell console.
- Next, start the virtual machine.
- After the VM starts, install Hyper-V within the virtual machine, just like you would for a physical machine.
Disable Nested Virtualization
You can disable nested virtualization for a stopped virtual machine. To disable Nested Virtualization for VMs in Hyper-V, do the following:
- Open PowerShell in elevated mode on the physical Hyper-V Windows host.
- In the PowerShell console, run the command below:
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $false
- Exit PowerShell once the command executes.
That’s it on how to Enable or Disable Nested Virtualization for VMs in Hyper-V!
Read: The virtual machine failed to start because nested virtualization is not supported
Why would you use nested virtualization?
The most notable benefit of nested virtualization is Enhanced flexibility. This is the ability to host virtual environments within virtual environments allows you to develop and test software on your own terms and provides you with flexible sandbox environments that you can adapt to your needs.
What must be disabled to implement nested virtualization?
Only Intel processors with VT-x and EPT technology support nested virtualization. AMD processors do not currently support nested virtualization. In addition, there must be enough physical memory to run the VMs, and the VM cannot use Dynamic Memory.
How do I enable nested virtualization on Azure VM?
To enable nested virtualization, you need to complete the following tasks:
- Enable Hyper-V role. Hyper-V role must be enabled for the creation and running of Hyper-V virtual machines on the Lab Services virtual machine.
- Enable DHCP.
- Create NAT network for Hyper-V VMs.
Which Azure VM size supports nested virtualization?
You can now enable nested virtualization using the Dv3 and Ev3 VM sizes. Using the Azure nested virtualization capability allows you to run a VM inside a VM – a Windows Server virtual machine can be deployed in Azure and run nested VMs of the Hyper-V format. In this environment, you can replicate your local Hyper-V VMs to Azure.