First off what is nested virtualization? Nested virtualization is the ability to run Hyper-V inside of a virtualized machine. This will allow you to install a physical host with the Hyper-V role installed and then create a virtual machine (VM) and install Hyper-V which in turn will allow you to run additional VMs.
For instructor-led Windows Server 2016 training, see our course schedule.
For Microsoft Windows Server 2016, see Nested Virtualization in Windows Server 2016.
There are few prerequisites that must be met before nested virtualization is supported. There is both operating system and Hyper-V setting that must be configured. These settings are as follows:
- Must be running Windows 10 Build 10565 or later.
- The host and nested VM must be running the same build of Win 10.
- Min 4GB RAM on the host.
- Dynamic RAM must be disabled on the nested VM.
- No Checkpoints can be made on the nested VM. (desired to checkpoint hosted VM in the nested VM must be running version 8 of the VM)
- MAC Address Spoofing has to be enable on the nest VM NIC or a NAT Virtual Switch has to be created.
Once the VM has been configured to be a nested VM it no longer supports live migrations.
How to enable nested virtualization:
- Create a hosted VM running the same operating system as the physical host. Then power it off.
- Configure the host to support nested virtualization:
- Use one of the following PowerShell Cmdlets:
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
Invoke-WebRequest https:/raw.githubusercontent.com/Microsot/Virtualization-Documentation/maste/hyperv-tools/nested/Enable-NestedVm.ps1 –Outfile ~/enable-NestedVm.ps1 ~Enable-NestedVm.ps1 –VmName <VMName>
Note: The second cmdlet downloads a script from githubusercontent.com and then executes it.
Turn on the nested VM and you are ready to start creating VMs in your nested environment.
Until next time, RIDE SAFE!