Hyper-V in windows guest not working for wsl2

tloe

New Member
Apr 15, 2021
7
1
1
43
I am struggling to get wsl2, which uses Hyper-V to work in a Windows 10 Pro guest. Proxmox is running on a Intel NUC with a i7-10710U CPU. "Intel Virtualization Technology" and "Intel VT for directed I/O (VT-d)" is both enabled in the bios. I got the latest bios (0050) I have followed this
https://pve.proxmox.com/wiki/Nested_Virtualization

Code:
root@TNUC:~# cat /sys/module/kvm_intel/parameters/nested
Y

This is my vm config.

Code:
root@TNUC:~# qm config 100
agent: 1,type=virtio
args: -cpu 'host,kvm=off,-hypervisor'
boot: order=ide2;scsi0;net0
cores: 4
cpu: host
ide2: local:iso/Win10_20H2_v2_EnglishInternational_x64.iso,media=cdrom
ide3: local:iso/virtio-win-0.1.185.iso,media=cdrom,size=402812K
kvm: 1
memory: 4096
name: winbuild
net0: virtio=C6:15:77:2E:CD:81,bridge=vmbr0,firewall=1
numa: 0
ostype: win10
scsi0: local-lvm:vm-100-disk-0,cache=writeback,discard=on,size=45G
scsihw: virtio-scsi-pci
smbios1: uuid=e0ce8611-b2fc-4e2a-9c32-c586641dbac2
sockets: 1
vga: qxl,memory=32
vmgenid: ad9c9efa-c794-49bd-a617-bd46782336f2
root@TNUC:~#

I read that some have luck with kvm=0
Code:
root@TNUC:~# qm start 100
kvm: CPU model 'host' requires KVM
start failed: QEMU exited with code 1

Windows features are enabled on the windows vm
windowsfeatures.png

Systeminfo shows that all Hyper-V requirements returns Yes
Code:
PS C:\Windows\system32> systeminfo

Host Name:                 DESKTOP-NED97RE
OS Name:                   Microsoft Windows 10 Pro
OS Version:                10.0.19042 N/A Build 19042
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Standalone Workstation
OS Build Type:             Multiprocessor Free
Registered Owner:          TerjeLoe@hotmail.com
Registered Organization:
Product ID:                00330-80000-00000-AA703
Original Install Date:     15/04/2021, 20:54:22
System Boot Time:          17/04/2021, 12:34:29
System Manufacturer:       QEMU
System Model:              Standard PC (i440FX + PIIX, 1996)
System Type:               x64-based PC
Processor(s):              1 Processor(s) Installed.
                           [01]: Intel64 Family 6 Model 166 Stepping 0 GenuineIntel ~1608 Mhz
BIOS Version:              SeaBIOS rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org, 01/04/2014
Windows Directory:         C:\Windows
System Directory:          C:\Windows\system32
Boot Device:               \Device\HarddiskVolume1
System Locale:             en-gb;English (United Kingdom)
Input Locale:              en-us;English (United States)
Time Zone:                 (UTC+00:00) Dublin, Edinburgh, Lisbon, London
Total Physical Memory:     4,095 MB
Available Physical Memory: 1,403 MB
Virtual Memory: Max Size:  5,503 MB
Virtual Memory: Available: 2,927 MB
Virtual Memory: In Use:    2,576 MB
Page File Location(s):     C:\pagefile.sys
Domain:                    WORKGROUP
Logon Server:              \\DESKTOP-NED97RE
Hotfix(s):                 7 Hotfix(s) Installed.
                           [01]: KB4601050
                           [02]: KB4562830
                           [03]: KB4570334
                           [04]: KB4580325
                           [05]: KB4586864
                           [06]: KB5001330
                           [07]: KB5001405
Network Card(s):           2 NIC(s) Installed.
                           [01]: Red Hat VirtIO Ethernet Adapter
                                 Connection Name: Ethernet
                                 DHCP Enabled:    Yes
                                 DHCP Server:     192.168.1.1
                                 IP address(es)
                                 [01]: 192.168.1.144
                                 [02]: fe80::99b5:4520:f8e4:d8a3
                                 [03]: fd1c:1386:d454:100:eccd:b4f3:a469:77a1
                                 [04]: 2a02:2121:2c8:8aca:eccd:b4f3:a469:77a1
                                 [05]: fd1c:1386:d454:100:99b5:4520:f8e4:d8a3
                                 [06]: 2a02:2121:2c8:8aca:99b5:4520:f8e4:d8a3
                                 [07]: 2a02:2121:2c8:8aca:1c13:86d4:5401:5
                           [02]: Hyper-V Virtual Ethernet Adapter
                                 Connection Name: vEthernet (Default Switch)
                                 DHCP Enabled:    No
                                 IP address(es)
                                 [01]: 172.27.240.1
                                 [02]: fe80::997b:55d8:cc90:8e4a
Hyper-V Requirements:      VM Monitor Mode Extensions: Yes
                           Virtualization Enabled In Firmware: Yes
                           Second Level Address Translation: Yes
                           Data Execution Prevention Available: Yes
PS C:\Windows\system32>

But when I try to start wsl2 I get:

Code:
Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80370102
Error: 0x80370102 The virtual machine could not be started because a required feature is not installed.

Press any key to continue...
 
Last edited:
I also tried to copy the full cpu args line from the qm command to get all the default flags
Code:
➜  ~ qm config 100
agent: 1,type=virtio
args: -cpu 'host,hv_ipi,hv_relaxed,hv_reset,hv_runtime,hv_spinlocks=0x1fff,hv_stimer,hv_synic,hv_time,hv_vapic,hv_vpindex,+kvm_pv_eoi,+kvm_pv_unhalt,-kvm,-hypervisor'
boot: order=ide2;scsi0;net0
cores: 4
cpu: host
ide2: local:iso/Win10_20H2_v2_EnglishInternational_x64.iso,media=cdrom
ide3: local:iso/virtio-win-0.1.185.iso,media=cdrom,size=402812K
kvm: 1
memory: 4096
name: winbuild
net0: virtio=C6:15:77:2E:CD:81,bridge=vmbr0,firewall=1
numa: 0
ostype: win10
scsi0: local-lvm:vm-100-disk-0,cache=writeback,discard=on,size=45G
scsihw: virtio-scsi-pci
smbios1: uuid=e0ce8611-b2fc-4e2a-9c32-c586641dbac2
sockets: 1
vga: qxl,memory=32
vmgenid: ad9c9efa-c794-49bd-a617-bd46782336f2
 
I have tried without kvm=off .. as far as I know though that does not disable kvm.. its only suppose to hide it from the guest..

Disable kvm is "kvm: 0", but as you can see in my config kvm is enabled
 
Finally got it working :)

I had to have these args

Code:
args: -cpu host,-hypervisor,-mpx

What does the mpx flag do?
 
  • Like
Reactions: pier