T o avoid carrying around multiple laptops for different customers I typically ask if they can provide me a VDI (for example through Azure Virtual Desktop). One of my clients is not on a cloud platform (yet), so the VM they provided me was running on a local(read: in a traditional datacenter) hyper-v cluster.
As we were investigating to move to a container based development model, I installed Podman Desktop on the provided machine. Podman Desktop requires a Podman machine to be created to be able to run workloads. However when I tried to create a new machine, it failed with the following error message:
Error: the WSL import of guest OS failed: exit status 0xffffffff
I did a second attempt through the commandline but this failed as well:
podman machine init
Extracting compressed file: podman-machine-default-amd64: done
Importing operating system into WSL (this may take a few minutes on a new WSL install)...
WSL2 is not supported with your current machine configuration. Please enable the "Virtual Machine Platform" optional component and ensure virtualization is enabled in the BIOS. For information please visit https://aka.ms/enablevirtualization
Error code: Wsl/Service/RegisterDistro/CreateVm/HCS/HCS_E_HYPERV_NOT_INSTALLED
Error: the WSL import of guest OS failed: exit status 0xffffffff
However this error gave me some extra context and pointed me in the right direction to find a solution. To make this work, we should enabled Nested virtualization on the VM. The link in the error message explains the required step:
Launch powershell with admin, and run the following command, replacing <VMName>
with the name of the virtual machine on your host system (you can find the name in your Hyper-V Manager):
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
After a reboot of the VM, we can verify that virtualization is enabled by opening the Task Manager and checking the performance tab:
More information
What is Nested Virtualization for Hyper-V? | Microsoft Learn
Troubleshooting Windows Subsystem for Linux | Microsoft Learn