Got caught into the WSL2 hype and ran into the surprise of errors such as “Virtualized Intel VT-x/EPT is not supported on this platform”? me too (…) welcome to VMware’s dumpster fire of nested virtualization not working along with Hyper-V.
This was a well-known issue and VMware tried to calm waters back in may with little success, as you can see in their blog post announcing Workstation 15.5 supporting Hyper-V mode, where they had to turn off commenting because people was ranting like crazy.
https://blogs.vmware.com/workstation/2020/05/vmware-workstation-now-supports-hyper-v-mode.html
Long story short, as of Workstation release 16.0.0 build-16894299 this still doesn’t work. The symptoms are always related to VMs with Virtualization Engine features enabled, ending up in errors such as the one mentioned before “Virtualized Intel VT-x/EPT is not supported on this platform”.
There are common factors for such error and for most people (or at least fellow network engineers around me) are:
- WMware Workstation Pro version 15.5.5 and up.
- Windows 10 version 2004, in any flavor in the 19041.x OS build.
- Windows Subsystem for Linux enabled for WSL2, including system features:
- Virtual Machine Platform
- Windows Hypervisor Platform
This combo enables Hyper-V as a competing virtualization engine in your computer which VMware Workstation doesn’t like and therefore makes nested virtualization unusable (virtual machines inside your virtual machine). VMware is nowhere near to have this solved (surprisingly VirtualBox is closer to get it sorted out) and I gave up for now looking for options out there (there are some, but with heavy penalties to performance both for the VM and your base OS). I needed my nested VMs back so here’s a recipe for rolling back to middle ground: nested virtualization back but only with WSL1, if you can live without a full Linux kernel in your terminal then this is for you.
1 Launch a CMD terminal as administrator and check your current WSL VMs version with wsl -l -v1 2 3 | wsl -l -v NAME STATE VERSION * Ubuntu-18.04 Stopped 2 |
1 2 3 4 5 6 7 | wwsl --set-version Ubuntu-18.04 1 Conversion in progress, this may take a few minutes... Conversion complete. wsl -l -v NAME STATE VERSION * Ubuntu-18.04 Stopped 1 |
4 Now disable both the virtual machine and the hypervisor features in Windows using DISM like so dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /featurename:HypervisorPlatform /norestart Note the “/norestart” parameter so you can save your work before restarting your computer.
1 2 3 4 5 6 7 8 9 10 | dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /featurename:HypervisorPlatform /norestart Deployment Image Servicing and Management tool Version: 10.0.19041.572 Image Version: 10.0.19041.572 Disabling feature(s) [==========================100.0%==========================] The operation completed successfully. |
Now restart your computer and you will get the classic “we’re working on your updates” screen. After login, if everything went well, you should be able to start a VM with nested virtualization while keeping at least WSL1. It’s a huge trade-off, i know.
Thanks VMware
Do you have any update on a workaround to the above problem? I was happy with the middle-ground until I realized docker requires wsl2
Unfortunately not, Windows only allows a single virtualization engine to run at a time, and as of release 20H2 they are not changing this approach to virtualization. I eventually migrated to WSL2 and moved my VMs needing nested virtualization to an external hypervisor running ESXi 6.5, but if you are okay with Hyper-V you can turn-on the whole suite in Windows 10 which enables the Hyper-V manager (in “Turn on Windows Features…”), create a VM and enable nested virtualization by running
on a PowerShell terminal as admin. This works well if you have used VMware Workstation before, it’s quite similar and actually free as it comes with Windows 10 pro as a base feature just like WSL.
Great workaround, this was driving me nuts. Thank you. Hope they fix this eventually.
I’m also in awe of how VMware is literally killing all the good will they had built with developers. I used to love them (use to pay for the license out of my own pocket!). But after more of one year of this train wreck, I’m going to just move on…
Using HyperV on windows…
Thank you for the rant and the suggestions.