I love nested virtualization in Server 2016.  It enables me to do so much more in my lab environment and not have to run 5/6 physical machines like I used to.  So it was time to update my VMware skills to v6 and I wanted to see if I could do the same as nested Hyper-V and low and behold, it worked.  However with a couple of tweaks that I had to make.  Please note, running VMware in this an environment such as this is unsupported and should not be done in production!
First, create a Generation 1 VM with at least 4096Mb memory.
image
You now need to remove the Network Adapter and add a Legacy Network Adapter and connect it to your network.
Next you need to expose the virtualization extensions to the ESXi VM using powershell.  Open on PowerShell on the Server 2016 Hyper-V Host and type the following command:
image
Set-VMProcessor –VMName NameofyourESXiVM –ExposeVirtualizationExtensions $true
The VM needs to be off in order to do this.
Now comes the tricky part for those of you who don’t really know VMware.  We need to add a boot option.  If you don’t you will get stuck at Relocating modules and be starting up the kernel….
image
Restart the VM
image
Boot from the ESXi media
image
When you get to the Installer screen press Shift + O
image
At the bottom of the screen add the following boot option:
ignoreHeadless=True
Then press Enter
image
Now carry on installing ESXi as normal.
image
YEY it installed ok.
image
Reboot your VM but when the Loading VMware ESXi screen appears press Shift + O again
image
Add the same command as before to the end of the line
ignoreHeadless=True
Then press Enter
Don’t panic, we will make this a more permanent solution shortly.
image
Once ESXi has booted press F2 and login with your credentials.
image
Select Troubleshooting Options and press Enter
image
Enable the ESXi Shell
Once done press Alt + F1 to open the Shell
image
Enter your root credentials
Then type:
esxcfg-advcfg –set-kernel “TRUE” ignoreHeadless
This will make the setting we changed earlier permanent so when the VM is rebooted you won’t have to enter the option each time.