Running VMware ESXi within Hyper-V

VMWare ESXi can run within Hyper-V, but there are some gotchas.

First thing to remember is that even if you get this working Hyper-V does not expose the CPU hardware virtualization features to guests so ESXi will complain that hardware virtualization is missing. ESXi will install and be able to run 32-bit guests, but it won’t do be able to run 64-bit OSes. (There is a lot of overhead virtualizing a 64-bit guest, much of which can be eliminated by hardware virtualization. That’s why you can’t run a 64-bit guest without hardware virtualization). As an aside, the ESXi hypervisor can expose hardware virtualization features to its guests so it’s easier to run Hyper-V inside ESXi and have 64-bit VMs inside it.

When booting up ESXi 5.5 within Hyper-V (on my Windows 8.1 and Windows 8 machines) the ESXi installer gets up to the stage of “Relocating modules and starting up the kernel” and is stuck. I read on some forum posts that it’s to do with an increased display memory requirement for ESXi 5.5 and so I tried installing ESXi within VirtualBox but that didn’t help either. (VirtualBox lets you change the display memory. To use VirtualBox, however, you’ll have to uninstall the Hyper-V role from the host machine. As long as Hyper-V is installed VirtualBox can’t see the hardware virtualization features and so is limited to one virtual CPU for the guest – which won’t do for ESXi). I also tried older versions of ESXi – 5.1 and 5.0 – with similar results (instead of being stuck the screen would blank out).

Back to Hyper-V I tried increasing the amount of RAM but that didn’t help either. Finally I came across this blog post which details a workaround for Dell servers – with the exact symptoms that I was having in Hyper-V – and that worked for me. Sort of. Now the screen would blank out instead of being stuck. However, this time when I increased the RAM allocated to ESXi to 4GB it worked!

That isn’t the end though. Although the installer now starts, it complains about the lack of a network card. Turns out ESXi does not have drivers for the Hyper-V network adapters (legacy or non-legacy). You can, however, get drivers for the legacy adapter and build a custom install CD (thanks to this blog post which seems to be down now; original instructions are at this, this, and this forum posts, followed by additional configuration as per this forum post to put the ESXi guest network adapter in promiscuous mode for networking to work). Once you do all that, finally ESXi is able to install within Hyper-V!

p.s. Link to self with a forum post by someone who read this post and contacted me. Summarizes the steps succintly.