Setup Nested Virtualization ( ESX on ESX ) in VMware ESXi

Nested ESX / Virtualization

Nested ESX / Virtualization is the ESX or any hypervisor running as a pseudo-machine, in this blog we will see how to set up ESXi 5.1 as a VM in ESXi 5.1 and Installing ESXi 5.1
Nested Virtualization with the 5.1 Release Intel VT-x or AMD-V is required for running “Nested Virtualization” which supports nested 32-bit VMs, Intel EPT or AMD RVI is required for running nested 64-bit VMs.
A quick way to verify whether your CPU truly supports Intel-VT+EPT or AMD-V+RVI, you can paste the following into a browser: https://[your-esxi-host-ip-address]/mob/?moid=ha-host&doPath=capability

You will need to login with your root credentials and then look for the “nestedHVSupported” property and if it states false, it means you may be able to install nested ESXi or other hypervisor, but you will not be able to run nested 64-bit VMs, only 32-bit VMs, assuming you have either Intel-VT or AMD-V support on your CPUs.
In the earlier versions we used to set vhv.allow = “true”, this is no longer is use from the ESX 5.1 to enable VHV, new parameter has been introduced in the recent version called vhv.enable = “true” now that has to set for all the VMs to provide finer granularity of VHV support. This also allows for better portability between VMware’s hosted products such as VMware Fusion and Workstation as they also support the vhv.enable parameter.
You can now enable VHV on a per VM basis and using the new vSphere Web Client which basically adds the vhv.enable = “true” parameter to the VM’s .VMX configuration file.
To Enable VHV (Virtual Hardware-Assisted Virtualization) for ESX
Step-1: Create a new Virtual Machine using the new vSphere Web Client that’s available with vCenter Server 5.1

Select name and Folder

Select the Resources ( Datacenter and Host)

Select compatiblity

Step-2: Select “Linux” as the guestOS Family and “Other Linux (64-bit)” as the guestOS Version.

Step 3 – During the customize hardware wizard, expand the “CPU” section and select “Hardware Virtualization” box to enable VHV.

Note: If this box is grayed out, it means that your physical CPU does not supported Intel VT-x + EPT or AMD-V + RVI which is required to run VHV OR that you are not using Virtual Hardware 9. If your CPU only supports Intel-VT or AMD-V, then you can still install nested ESXi, but you will only be able to run nested 32-bit VMs and not nested 64-bit VMs.

Step 4 – It is still recommended that you change the guest OS Version to VMware ESXi 5.x after you have created the VM shell, as there are some special settings that are applied automatically. Unfortunately with the new vSphere Web Client, you will not be able to modify the guest OS after creation, so you will need to use the C# Client or manually go into the .VMX and update guestOS = “vmkernel5”

Now you are ready to install nested ESXi VMs as well as run nested 64-bit VMs within.

For proper networking connectivity, also ensure that either your standard vSwitch or Distributed Virtual Switch has both promiscuous mode and forged transmit enabled either globally on the portgroup or distributed portgroup your nested ESXi hosts are connected to.

Install ESXi
Attach VMvisor-Installer-5.x.x.x86_64.iso file to the virtual machine
Reboot the machine / press ctrl + Alt + Insert

Select ESXi-5.x.x-xxxxx-standard installer

Select the Disk

Press F11 to confirm the disk repartition

Configure password



Configure Network

Nesting “Other” Hypervisors
For those of you who feel inclined to run other hypervisors such as Hyper-V, you can do so with latest release of ESXi 5.1. The process if very straight forward just like running nested ESXi host.
Step-1: Create a Virtual Hardware 9 VM and select the appropriate guestOS. In hyper-V example, I selected Windows Server 2012 (64-bit) as the guestOS version.
Step-2: Enable VHV under the CPU section if you wish to create and run nested 64-bit VMs under Hyper-V
Step 3 – You will need to add one additional .vmx parameter which tells the underlying guestOS (Hyper-V) that it is not running as a virtual guest which in fact it really is. The parameter is hypervisor.cpuid.v0 = FALSE


  1. Thanks for another informative web site. Where else could I am getting that kind of info written in such a perfect method? I’ve a challenge that I’m just now working on, and I have been on the glance out for such info.

  2. Hi there, I found your blog by way of Google even as searching for a comparable subject, your web site came up, it appears to be like great. I have added to favourites|added to bookmarks.

This site uses Akismet to reduce spam. Learn how your comment data is processed.