Windows Insider Preview: Nested Virtualization Insider

  1. Brink's Avatar
    Posts : 33,704
    64-bit Windows 10 Pro build 18277
       14 Oct 2015 #1

    Windows Insider Preview: Nested Virtualization

    Earlier in the year, we announced that we will be building nested virtualization so that people could run Hyper-V Containers in Hyper-V virtual machines.

    In preparation for the first public preview of Hyper-V Containers, we are releasing a preview of nested virtualization. This feature allows you to run Hyper-V in a virtual machine (note that this is Hyper-V on Hyper-V only… other hypervisors will fail).

    Although Hyper-V Containers have not been released yet, for now you can try out this feature with Hyper-V virtual machines.

    Build 10565 -- It is a very early preview

    Yesterday, we announced the release of build 10565 to Windows Insiders on the Fast ring. This build contains an early preview of nested virtualization.

    When I say it is an “early” preview, I mean it – there are plenty of known issues, and there is functionality which we still need to build. We wanted to share this feature with Insiders as soon as possible though, even if that meant things are still rough around the edges.

    This post will give a quick overview of what nested virtualization is, and briefly cover how it works. The end of this post will explain how to enable it, so you can try it out. Please read the “known issues” section before trying this feature.

    What is nested virtualization?

    In essence, this feature virtualizes certain hardware features that are required to run a hypervisor in a virtual machine.
    Hyper-V relies on hardware virtualization support (e.g. Intel VT-x and AMD-V) to run virtual machines. Typically, once Hyper-V is installed, the hypervisor hides this capability from guest virtual machines, preventing guests virtual machines from installing Hyper-V (and many other hypervisors, for that matter).

    Nested virtualization exposes hardware virtualization support to guest virtual machines. This allows you to install Hyper-V in a guest virtual machine, and create more virtual machines “within” that underlying virtual machine.

    In the image below, you can see a host machine running a virtual machine, which in turn is running its own guest virtual machine. This is made possible by nested virtualization. Behold, three levels of Cortana!

    Under the hood

    Consider the diagram below, which shows the “normal” (i.e. non-nested) case. The Hyper-V hypervisor takes full control of virtualization extensions (orange arrow), and does not expose them to the guest OS.

    Contrast this with the nested diagram below. In this case, Hyper-V has been configured to expose virtualization extensions to its guest VM. A guest VM can take advantage of this, and install its own hypervisor. It can then run its own guest VMs.

    Known issues: important!

    Like I said earlier – this is still just a “preview” of this feature. Obviously, this feature should not be used in production environments. Below is a list of known issues:

    • Both hypervisors need to be the latest versions of Hyper-V. Other hypervisors will not work. Windows Server 2012R2, or even builds prior to 10565 will not work.
    • Once nested virtualization is enabled in a VM, the following features are no longer compatible with that VM. These actions will either fail, or cause the VM not to start:
      • Dynamic memory must be OFF. This will prevent the VM from booting.
      • Runtime memory resize will fail.
      • Applying checkpoints to a running VM will fail.
      • Live migration will fail.
      • Save/restore will fail.

    • Once nested virtualization is enabled in a VM, MAC spoofing must be enabled for networking to work in its guests.
    • Hosts with Virtualization Based Security (VBS) enabled cannot expose virtualization extensions to guests. You must first disable VBS in order to preview nested virtualization.
    • This feature is currently Intel-only. Intel VT-x is required.
    • Beware: nested virtualization requires a good amount of memory. I managed to run a VM in a VM with 4 GB of host RAM, but things were tight.

    How to enable nested virtualization

    Step 1: Create a VM

    Step 2: Run the enablement script

    Given the configuration requirements (e.g. dynamic memory must be off), we’ve tried to make things easier by providing a PowerShell script.

    This script will check your configuration, change anything which is incorrect (with permission), and enable nested virtualization for a VM. Note that the VM must be off.

    Invoke-WebRequest -OutFile ~/Enable-NestedVm.ps1
    ~/Enable-NestedVm.ps1 -VmName <VmName>

    Step 3: Install Hyper-V in the guest

    From here, you can install Hyper-V in the guest VM.

    Step 4: Enable networking (optional)

    Once nested virtualization is enabled in a VM, MAC spoofing must be enabled for networking to work in its guests. Run the following PowerShell (as administrator) on the host machine:

    Set-VMNetworkAdapter -VMName <VMName> -MacAddressSpoofing on

    Step 5: Create nested VMs

    Give us feedback!

    If you discover any issues, or have any suggestions, please consider submitting feedback with the Windows Feedback app, through the virtualization forums, or through GitHub.

    We are also very interested to hear how people are using nested virtualization. Please tell us about your scenario by dropping us a line at

    FAQ and troubleshooting

    My VM won’t start, what should I do?

    First, make sure dynamic memory is OFF. If this was not the issue, run this PowerShell script on your host machine from an elevated prompt. This script reports whether your host and VMs are configured properly for nested.

    Invoke-WebRequest -OutFile ~/Get-NestedVirtStatus.ps1

    Go build VMs in VMs!

    Cheers, Theo Thompson

    Source: Windows Insider Preview: Nested Virtualization - Windows Virtualization Team Blog - Site Home - TechNet Blogs
      My ComputersSystem Spec

  2. Ztruker's Avatar
    Posts : 6,579
    Windows 10 Pro X64 1809 17763.55
       16 Oct 2015 #1

    Why would anyone want to do this?
      My ComputersSystem Spec

  3. Posts : 91
    64-bit 10240 10 Pro
       16 Oct 2015 #2

    Maybe an architect, engineer, designer, I see little use for the home user.
      My ComputerSystem Spec

  4.    16 Oct 2015 #3

    . . .dam must have ducked. . .that all went right over my head. . .don't think I'll be using hyper v. . .
      My ComputerSystem Spec


Related Threads
Read more: Tab preview feature coming to Edge browser on Windows 10 Insider Preview How to Start or Stop Receiving Insider Builds in Windows 10 How to Check for and Install Windows Updates in Windows 10
Hello guys, I am a new member to these forums; however, I have been lurking through and reading posts here for a little while. I have a situation here I can not seem to solve that has me pulling my hair out. The first thing I want to say starting is...
A friend of mine has Windows Vista and he will not upgrade his OS to 10. If he uses Windows 10 Insider Preview he will take the RTM? Thanks.
If you would like to test the "Core" version... Replace the pid.txt with an ei.cfg file. You can then select Home edition at setup - during setup it will prompt for a key but you have the option to skip, it will activate automatically with this...
Our Sites
Site Links
About Us
Windows 10 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 10" and related materials are trademarks of Microsoft Corp.

© Designer Media Ltd
All times are GMT -5. The time now is 20:17.
Find Us