Nested Virtualization is not a new idea. In fact, we announced our first preview of Nested Virtualization running on Windows way back in 2015. From that Windows Insider preview to now, Nested Virtualization has been used in a variety of offerings in a variety of ways. Today, you can find Nested Virtualization support in Azure that gives the Azure users flexibility in how they want to setup their environments. An example of Nested Virtualization being used to support our developer community is to accelerate Microsoft’s Android Emulation. Nested Virtualization is being used by IT Pros to set up a home labs. And we can’t forget containers! If you want to use a Hyper-V Containers inside a VM, you guessed it: this is enabled with Nested Virtualization. You can start to see why Nested Virtualization is such a useful technology.
There is one group of users that was unable to take advantage of Nested Virtualization on Windows. These were our users with AMD hardware. Not a week goes by where the team doesn’t get a request for Nested Virtualization support for AMD from our community or from within Microsoft. In fact, it is the number 1 ask on Windows Server’s uservoice page. At the time of this blog post, it was almost 5x more than the next feedback item.
I am happy to announce that the community has been heard and starting with Windows Build 19636, you will be able to try out Nested Virtualization on AMD processors! If you’re on the Windows Insider Fast ring then you can try this out today.
As this is a preview release of Nested Virtualization on AMD, there are some guidance and limitations to keep in mind if you want to try this out.
- Ensure your OS build number is 19636 or greater
- Right now, this has been tested on AMD’s first generation Ryzen/Epyc or newer processors
- Use a Windows guest with an OS version that is greater than or equal to the host OS version (19636) for now. Linux KVM guest support will be coming in the future
- Create a version 9.3 VM. Here’s an example PowerShell command to ensure a version 9.3 VM is being used: New-Vm -VMName “L1 Guest” -Version 9.3
- Follow the rest of the steps in our public documentation