
As we hoped today Microsoft revealed that they have included the early preview of nested virtualization in Windows 10 Build 10565 which was released to Windows Insiders couple of days back.
- 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.
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 Power shell 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 https://raw.githubusercontent.com/Microsoft/Virtualization-Documentation/master/hyperv-tools/Nested/Enable-NestedVm.ps1 -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