"Error" when attempting to install windows 11 vm

When booting the repacked iso I get the “press any key to boot from dvd” then the spinning icon spins a few times and stops. lxc ls shows status as “ERROR”

nickadam@ample-frog:~$ lxc info --show-log win11test
Name: win11test
Status: ERROR
Type: virtual-machine
Architecture: x86_64
Location: ample-frog
PID: 81821
Created: 2023/11/22 16:04 EST
Last Used: 2023/11/22 16:52 EST

Resources:
  Processes: 0

Log:


nickadam@ample-frog:~$

There is also no log entry while watching lxc monitor --type=logging --pretty between the “press any key” event and the “ERROR” a few seconds later.

Here are the steps I took to get here.

  • Host OS: Ubuntu 22.04.3 LTS
  • LXC/LXD version: 5.19

Distrobuilder process:

lxc init images:ubuntu/22.04 imagebuilder --vm -p 2313 --target ample-frog
lxc config device override imagebuilder root size=60GiB
lxc config set imagebuilder limits.cpu=16 limits.memory=32GiB
lxc start imagebuilder
lxc file push SW_DVD9_Win_Pro_11_23H2_64BIT_English_Pro_Ent_EDU_N_MLF_X23-59562.ISO imagebuilder/root/

lxc exec imagebuilder bash

  apt update
  apt install virt-viewer snapd genisoimage libwin-hivex-perl wimtools rsync
  snap install distrobuilder --classic
  /snap/distrobuilder/1833/bin/distrobuilder repack-windows SW_DVD9_Win_Pro_11_23H2_64BIT_English_Pro_Ent_EDU_N_MLF_X23-59562.ISO win11.lxd.iso --windows-version w11
  exit

lxc file pull imagebuilder/root/win11.lxd.iso .

Distrobuilder output:

root@imagebuilder:~# /snap/distrobuilder/1833/bin/distrobuilder repack-windows SW_DVD9_Win_Pro_11_23H2_64BIT_English_Pro_Ent_EDU_N_MLF_X23-59562.ISO win11.lxd.iso --windows-version w11 --windows-arch amd64
INFO   [2023-11-22T21:42:27Z] Mounting Windows ISO
mount: /var/cache/distrobuilder.375684900/source: WARNING: source write-protected, mounted read-only.
INFO   [2023-11-22T21:42:27Z] Downloading drivers ISO
INFO   [2023-11-22T21:42:46Z] Mounting driver ISO
mount: /var/cache/distrobuilder.375684900/drivers: WARNING: source write-protected, mounted read-only.
INFO   [2023-11-22T21:42:46Z] Modifying WIM file                            file=boot.wim index=2
Committing changes to /var/cache/distrobuilder.375684900/overlay/sources/boot.wim (image 2)
Using LZX compression with 16 threads
Archiving file data: 20 MiB of 20 MiB (100%) done
INFO   [2023-11-22T21:42:51Z] Modifying WIM file                            file=install.wim index=1
Committing changes to /var/cache/distrobuilder.375684900/overlay/sources/install.wim (image 1)
Using LZX compression with 16 threads
Archiving file data: 79 MiB of 79 MiB (100%) done
INFO   [2023-11-22T21:43:20Z] Modifying WIM file                            file=install.wim index=2
Committing changes to /var/cache/distrobuilder.375684900/overlay/sources/install.wim (image 2)
Using LZX compression with 16 threads
Archiving file data: 73 MiB of 73 MiB (100%) done
INFO   [2023-11-22T21:43:28Z] Modifying WIM file                            file=install.wim index=3
Committing changes to /var/cache/distrobuilder.375684900/overlay/sources/install.wim (image 3)
Using LZX compression with 16 threads
Archiving file data: 77 MiB of 77 MiB (100%) done
INFO   [2023-11-22T21:43:36Z] Modifying WIM file                            file=install.wim index=4
Committing changes to /var/cache/distrobuilder.375684900/overlay/sources/install.wim (image 4)
Using LZX compression with 16 threads
Archiving file data: 73 MiB of 73 MiB (100%) done
INFO   [2023-11-22T21:43:44Z] Modifying WIM file                            file=install.wim index=5
Committing changes to /var/cache/distrobuilder.375684900/overlay/sources/install.wim (image 5)
Using LZX compression with 16 threads
Archiving file data: 80 MiB of 80 MiB (100%) done
INFO   [2023-11-22T21:43:53Z] Modifying WIM file                            file=install.wim index=6
Committing changes to /var/cache/distrobuilder.375684900/overlay/sources/install.wim (image 6)
Using LZX compression with 16 threads
Archiving file data: 71 MiB of 71 MiB (100%) done
INFO   [2023-11-22T21:44:01Z] Modifying WIM file                            file=install.wim index=7
Committing changes to /var/cache/distrobuilder.375684900/overlay/sources/install.wim (image 7)
Using LZX compression with 16 threads
Archiving file data: 77 MiB of 77 MiB (100%) done
INFO   [2023-11-22T21:44:10Z] Modifying WIM file                            file=install.wim index=8
Committing changes to /var/cache/distrobuilder.375684900/overlay/sources/install.wim (image 8)
Using LZX compression with 16 threads
Archiving file data: 73 MiB of 73 MiB (100%) done
INFO   [2023-11-22T21:44:18Z] Modifying WIM file                            file=install.wim index=9
Committing changes to /var/cache/distrobuilder.375684900/overlay/sources/install.wim (image 9)
Using LZX compression with 16 threads
Archiving file data: 77 MiB of 77 MiB (100%) done
INFO   [2023-11-22T21:44:26Z] Modifying WIM file                            file=install.wim index=10
Committing changes to /var/cache/distrobuilder.375684900/overlay/sources/install.wim (image 10)
Using LZX compression with 16 threads
Archiving file data: 73 MiB of 73 MiB (100%) done
INFO   [2023-11-22T21:44:34Z] Generating new ISO
I: -input-charset not specified, using utf-8 (detected in locale settings)
This size can only be represented in the UDF filesystem.
Make sure that your clients support and use it.
ISO9660, Joliet, RockRidge, HFS will display incorrect size.
genisoimage: No such file or directory. Non-existent or inaccessible: /var/cache/distrobuilder.375684900/overlay/sources/install.wim.staging5RMVPg0EKJ
Using TERMINALSERVICES_SESSION000.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/dlmanifests/terminalservices-sessiondirectory-server-dl.man (terminalservices-sessiondirectory-client-dl.man)
Using TERMINALSERVICES_APPSERV000.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/dlmanifests/terminalservices-appserver-licensing-dl.man (terminalservices-appserver-dl.man)
Using MICROSOFT_WINDOWS_FAX_CL000.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/dlmanifests/microsoft-windows-fax-client-proenterprise-dl.man (microsoft-windows-fax-client-applications-dl.man)
Using MICROSOFT_WINDOWS_ERRORR000.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/dlmanifests/microsoft-windows-errorreportingfaults-dl.man (microsoft-windows-errorreportingcore-dl.man)
Using MICROSOFT_WINDOWS_CERTIF000.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/dlmanifests/microsoft-windows-certificateservices-mscep-dl.man (microsoft-windows-certificateservices-camanagement-dl.man)
Using MICROSOFT_WINDOWS_CERTIF001.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/dlmanifests/microsoft-windows-certificateservices-camanagement-dl.man (microsoft-windows-certificateservices-ca-dl.man)
Using TERMINALSERVICES_SESSION000.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/terminalservices-sessiondirectory-server-replacement.man (terminalservices-sessiondirectory-client-replacement.man)
Using TERMINALSERVICES_ROLE_PA000.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/terminalservices-role-package-replacement.man (terminalservices-role-package-r-replacement.man)
Using TERMINALSERVICES_GATEWAY000.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/terminalservices-gateway-ui-package-replacement.man (terminalservices-gateway-ui-package-r-replacement.man)
Using TERMINALSERVICES_GATEWAY001.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/terminalservices-gateway-package-replacement.man (terminalservices-gateway-package-r-replacement.man)
Using RIGHTS_MANAGEMENT_SERVIC000.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/rights-management-services-role-replacement.man (rights-management-services-management-tools-replacement.man)
Using RIGHTS_MANAGEMENT_SERVIC001.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/rights-management-services-management-tools-replacement.man (rights-management-services-admin-tools-replacement.man)
Using POWERMANAGEMENT_POWERPOL000.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/powermanagement-powerpolicy-migration-replacement.man (powermanagement-powerpolicy-definitions-replacement-win8.man)
Using POWERMANAGEMENT_POWERPOL001.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/powermanagement-powerpolicy-definitions-replacement-win8.man (powermanagement-powerpolicy-definitions-replacement-win7.man)
Using POWERMANAGEMENT_POWERPOL002.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/powermanagement-powerpolicy-definitions-replacement-win7.man (powermanagement-powerpolicy-definitions-replacement-win10.man)
Using POWERMANAGEMENT_POWERPOL003.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/powermanagement-powerpolicy-definitions-replacement-win10.man (powermanagement-powerpolicy-definitions-replacement-vista.man)
Using POWERMANAGEMENT_POWERPOL004.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/powermanagement-powerpolicy-definitions-replacement-vista.man (powermanagement-powerpolicy-definitions-replacement-v9rs5.man)
Using POWERMANAGEMENT_POWERPOL005.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/powermanagement-powerpolicy-definitions-replacement-v9rs5.man (powermanagement-powerpolicy-definitions-replacement-v8rs4.man)
Using POWERMANAGEMENT_POWERPOL006.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/powermanagement-powerpolicy-definitions-replacement-v8rs4.man (powermanagement-powerpolicy-definitions-replacement-v7rs2.man)
Using POWERMANAGEMENT_POWERPOL007.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/powermanagement-powerpolicy-definitions-replacement-v7rs2.man (powermanagement-powerpolicy-definitions-replacement-v6rs2.man)
Using POWERMANAGEMENT_POWERPOL008.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/powermanagement-powerpolicy-definitions-replacement-v6rs2.man (powermanagement-powerpolicy-definitions-replacement-v5rs1.man)
Using POWERMANAGEMENT_POWERPOL009.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/powermanagement-powerpolicy-definitions-replacement-v5rs1.man (powermanagement-powerpolicy-definitions-replacement-v4rs1.man)
Using POWERMANAGEMENT_POWERPOL00A.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/powermanagement-powerpolicy-definitions-replacement-v4rs1.man (powermanagement-powerpolicy-definitions-replacement-v13vb.man)
Using POWERMANAGEMENT_POWERPOL00B.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/powermanagement-powerpolicy-definitions-replacement-v13vb.man (powermanagement-powerpolicy-definitions-replacement-v12vb.man)
Using POWERMANAGEMENT_POWERPOL00C.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/powermanagement-powerpolicy-definitions-replacement-v12vb.man (powermanagement-powerpolicy-definitions-replacement-v1119h1.man)
Using POWERMANAGEMENT_POWERPOL00D.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/powermanagement-powerpolicy-definitions-replacement-v1119h1.man (powermanagement-powerpolicy-definitions-replacement-v1019h1.man)
Using NETWORKLOADBALANCINGMANA000.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/networkloadbalancingmanagementheadlessserver-replacement.man (networkloadbalancingmanagementclient-replacement.man)
Using MICROSOFT_WINDOWS_TERMINALSE000 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/microsoft-windows-terminalservices-licenseserver (microsoft-windows-terminalservices-appserver-licensing)
Using MICROSOFT_WINDOWS_STORAG000.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/microsoft-windows-storagemigration-replacement.man (microsoft-windows-storagemigration-od-replacement.man)
Using MICROSOFT_WINDOWS_SERVER000.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/microsoft-windows-servermanager-shell-replacement.man (microsoft-windows-servermanager-rsat-roletools-replacement.man)
Using MICROSOFT_WINDOWS_SERVER001.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/microsoft-windows-servermanager-rsat-roletools-replacement.man (microsoft-windows-servermanager-rsat-replacement.man)
Using MICROSOFT_WINDOWS_SERVER002.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/microsoft-windows-servermanager-rsat-replacement.man (microsoft-windows-servermanager-rsat-featuretools-replacement.man)
Using MICROSOFT_WINDOWS_SECURI000.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/microsoft-windows-security-ngc-ctnrsvc-repl.man (microsoft-windows-security-ngc-credprov-replacement.man)
Using MICROSOFT_WINDOWS_POWERS000.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/microsoft-windows-powershellwebaccess-commands-powershell-migration-replacement.man (microsoft-windows-powershell-ws08-replacement.man)
Using MICROSOFT_WINDOWS_POWERS001.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/microsoft-windows-powershell-ws08-replacement.man (microsoft-windows-powershell-replacement.man)
Using MICROSOFT_WINDOWS_IE_INT000.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/microsoft-windows-ie-internetexplorer-repl.man (microsoft-windows-ie-internetexplorer-repl-2.man)
Using MICROSOFT_WINDOWS_ERRORR000.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/microsoft-windows-errorreportingfaults-replacement.man (microsoft-windows-errorreportingcore-replacement.man)
Using MICROSOFT_WINDOWS_CREDEN000.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/microsoft-windows-credentialmanagementrole-tools-replacement.man (microsoft-windows-credentialmanagementrole-replacement.man)
Using MICROSOFT_CERTIFICATESER000.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/microsoft-certificateservices-webenrollment-serverupgrade-replacement.man (microsoft-certificateservices-policy-serverupgrade-replacement.man)
Using MICROSOFT_CERTIFICATESER001.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/microsoft-certificateservices-policy-serverupgrade-replacement.man (microsoft-certificateservices-ocsp-serverupgrade-replacement.man)
Using MICROSOFT_CERTIFICATESER002.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/microsoft-certificateservices-ocsp-serverupgrade-replacement.man (microsoft-certificateservices-mscep-serverupgrade-replacement.man)
Using MICROSOFT_CERTIFICATESER003.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/microsoft-certificateservices-mscep-serverupgrade-replacement.man (microsoft-certificateservices-ca-serverupgrade-replacement.man)
Using DIRECTORYSERVICES_DOMAIN000.MAN;1 for  /var/cache/distrobuilder.375684900/overlay/sources/replacementmanifests/directoryservices-domaincontroller-tools-replacement.man (directoryservices-domaincontroller-servercoreupg-replacement.man)
Using MICROSOFT_WINDOWS_INTERN000.CAB;1 for  /var/cache/distrobuilder.375684900/overlay/sources/sxs/microsoft-windows-internetexplorer-optional-package~31bf3856ad364e35~amd64~~.cab (Microsoft-Windows-InternetExplorer-Optional-Package~31bf3856ad364e35~amd64~en-US~.cab)
Size of boot image is 2880 sectors -> No emulation
  0.15% done, estimate finish Wed Nov 22 21:44:34 2023

...removed for brevity...

 99.88% done, estimate finish Wed Nov 22 21:44:48 2023
Total translation table size: 2048
Total rockridge attributes bytes: 0
Total directory bytes: 217088
Path table size(bytes): 2464
Max brk space used e9000
3329083 extents written (6502 MB)
INFO   [2023-11-22T21:44:52Z] Removing cache directory
root@imagebuilder:~# ls
SW_DVD9_Win_Pro_11_23H2_64BIT_English_Pro_Ent_EDU_N_MLF_X23-59562.ISO  win11.lxd.iso

VM creation process:

lxc init win11test --vm --empty -p 2313 --target ample-frog
lxc config device override win11test root size=1TiB
lxc config set win11test limits.cpu=16 limits.memory=32GiB
lxc config device add win11test vtpm tpm
lxc config device add win11test install disk source=/home/nickadam/win11.lxd.iso boot.priority=10
lxc config set win11test security.secureboot=false

lxc start win11test --console=vga

For fun I swapped the install iso from win11.lxd.iso to ubuntu-23.10.1-desktop-amd64.iso - no problem booting into live iso.

Thoughts?

Update: It may be hardware or a host OS problem. I am not having the problem on a different box in the same lxc cluster. So far as I know, both CPUs are compatible

  • Intel(R) Xeon(R) CPU E5-2665 0 @ 2.40GHz - works
  • Intel(R) Xeon(R) Gold 6230 CPU @ 2.10GHz - doesn’t work

Another update: I’m guessing this is a software issue. Using lxc, I started a proxmox vm on the system that errors. I am able to install windows 11 in the proxmox vm, via nested virtualization like so:

lxc host

proxmox vm

windows 11 vm

You may want to look at lxc info --show-log win11test as well as the dmesg output.

This kind of “ERROR” hints at at a QEMU crash, this may be related to the kernel version used on the system which may explain why Proxmox isn’t affected (as Proxmox ships a different kernel).

Thanks @stgraber, I miss your LXD videos, it’s been a while.

dmesg shows the interface entering promiscuous mode but nothing else before the “ERROR”. lxc info --show-log log section is blank. FWIW resources, processes shows 0 but there is a qemu process running when the status shows “ERROR”. I saw a monitor handle open with lsof - I tried to connect to the qemu monitor socket with socat but it doesn’t appear to work.

I installed xfce4 and qemu on the host and used virt-manager to try and reproduce the problem where I may be able to get more diagnostics. Creating a windows VM with the virt-manager wizard works, the iso makes it to the windows setup.

I don’t know what the differences are between these two. Looks like a lot.

the process created by virt-manager:

/usr/bin/qemu-system-x86_64 -name guest=win11,debug-threads=on -S -object {"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain-1-win11/master-key.aes"} -blockdev {"driver":"file","filename":"/usr/share/OVMF/OVMF_CODE_4M.ms.fd","node-name":"libvirt-pflash0-storage","auto-read-only":true,"discard":"unmap"} -blockdev {"node-name":"libvirt-pflash0-format","read-only":true,"driver":"raw","file":"libvirt-pflash0-storage"} -blockdev {"driver":"file","filename":"/var/lib/libvirt/qemu/nvram/win11_VARS.fd","node-name":"libvirt-pflash1-storage","auto-read-only":true,"discard":"unmap"} -blockdev {"node-name":"libvirt-pflash1-format","read-only":false,"driver":"raw","file":"libvirt-pflash1-storage"} -machine pc-q35-6.2,usb=off,vmport=off,smm=on,dump-guest-core=off,pflash0=libvirt-pflash0-format,pflash1=libvirt-pflash1-format,memory-backend=pc.ram -accel kvm -cpu host,migratable=on,hv-time=on,hv-relaxed=on,hv-vapic=on,hv-spinlocks=0x1fff -m 8192 -object {"qom-type":"memory-backend-ram","id":"pc.ram","size":8589934592} -overcommit mem-lock=off -smp 4,sockets=4,cores=1,threads=1 -uuid 44d5dea2-4b63-40c2-b238-f79edafe859a -no-user-config -nodefaults -chardev socket,id=charmonitor,fd=34,server=on,wait=off -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime,driftfix=slew -global kvm-pit.lost_tick_policy=delay -no-hpet -no-shutdown -global ICH9-LPC.disable_s3=1 -global ICH9-LPC.disable_s4=1 -boot strict=on -device pcie-root-port,port=16,chassis=1,id=pci.1,bus=pcie.0,multifunction=on,addr=0x2 -device pcie-root-port,port=17,chassis=2,id=pci.2,bus=pcie.0,addr=0x2.0x1 -device pcie-root-port,port=18,chassis=3,id=pci.3,bus=pcie.0,addr=0x2.0x2 -device pcie-root-port,port=19,chassis=4,id=pci.4,bus=pcie.0,addr=0x2.0x3 -device pcie-root-port,port=20,chassis=5,id=pci.5,bus=pcie.0,addr=0x2.0x4 -device pcie-root-port,port=21,chassis=6,id=pci.6,bus=pcie.0,addr=0x2.0x5 -device pcie-root-port,port=22,chassis=7,id=pci.7,bus=pcie.0,addr=0x2.0x6 -device pcie-root-port,port=23,chassis=8,id=pci.8,bus=pcie.0,addr=0x2.0x7 -device pcie-root-port,port=24,chassis=9,id=pci.9,bus=pcie.0,multifunction=on,addr=0x3 -device pcie-root-port,port=25,chassis=10,id=pci.10,bus=pcie.0,addr=0x3.0x1 -device pcie-root-port,port=26,chassis=11,id=pci.11,bus=pcie.0,addr=0x3.0x2 -device pcie-root-port,port=27,chassis=12,id=pci.12,bus=pcie.0,addr=0x3.0x3 -device pcie-root-port,port=28,chassis=13,id=pci.13,bus=pcie.0,addr=0x3.0x4 -device pcie-root-port,port=29,chassis=14,id=pci.14,bus=pcie.0,addr=0x3.0x5 -device qemu-xhci,p2=15,p3=15,id=usb,bus=pci.2,addr=0x0 -device virtio-serial-pci,id=virtio-serial0,bus=pci.3,addr=0x0 -blockdev {"driver":"file","filename":"/var/lib/libvirt/images/win11.qcow2","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"} -blockdev {"node-name":"libvirt-2-format","read-only":false,"discard":"unmap","driver":"qcow2","file":"libvirt-2-storage","backing":null} -device ide-hd,bus=ide.0,drive=libvirt-2-format,id=sata0-0-0,bootindex=2 -blockdev {"driver":"file","filename":"/home/nickadam/win11.23h2.lxd.iso","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"} -blockdev {"node-name":"libvirt-1-format","read-only":true,"driver":"raw","file":"libvirt-1-storage"} -device ide-cd,bus=ide.1,drive=libvirt-1-format,id=sata0-0-1,bootindex=1 -netdev tap,fd=35,id=hostnet0 -device e1000e,netdev=hostnet0,id=net0,mac=52:54:00:a7:f4:1b,bus=pci.1,addr=0x0 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -chardev socket,id=chrtpm,path=/run/libvirt/qemu/swtpm/1-win11-swtpm.sock -tpmdev emulator,id=tpm-tpm0,chardev=chrtpm -device tpm-crb,tpmdev=tpm-tpm0,id=tpm0 -device usb-tablet,id=input0,bus=usb.0,port=1 -audiodev {"id":"audio1","driver":"spice"} -spice port=5900,addr=127.0.0.1,disable-ticketing=on,image-compression=off,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,max_outputs=1,bus=pcie.0,addr=0x1 -device ich9-intel-hda,id=sound0,bus=pcie.0,addr=0x1b -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0,audiodev=audio1 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0,bus=usb.0,port=2 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1,bus=usb.0,port=3 -device virtio-balloon-pci,id=balloon0,bus=pci.4,addr=0x0 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny -msg timestamp=on

the process created by lxc:

/snap/lxd/26200/bin/qemu-system-x86_64 -S -name win11test -uuid 9d7600f1-808f-4b74-be58-27ad561654a4 -daemonize -cpu host,hv_passthrough -nographic -serial chardev:console -nodefaults -no-user-config -sandbox on,obsolete=deny,elevateprivileges=allow,spawn=allow,resourcecontrol=deny -readconfig /var/snap/lxd/common/lxd/logs/win11test/qemu.conf -spice unix=on,disable-ticketing=on,addr=/var/snap/lxd/common/lxd/logs/win11test/qemu.spice -pidfile /var/snap/lxd/common/lxd/logs/win11test/qemu.pid -D /var/snap/lxd/common/lxd/logs/win11test/qemu.log -smbios type=2,manufacturer=Canonical Ltd.,product=LXD -runas lxd

/var/snap/lxd/common/lxd/logs/win11test/qemu.conf:

# Machine
[machine]
graphics = "off"
type = "q35"
accel = "kvm"
usb = "off"

[global]
driver = "ICH9-LPC"
property = "disable_s3"
value = "1"

[global]
driver = "ICH9-LPC"
property = "disable_s4"
value = "1"

[boot-opts]
strict = "on"

# Memory
[memory]
size = "16384M"

# CPU
[smp-opts]
cpus = "1"
maxcpus = "80"

[object "mem0"]
qom-type = "memory-backend-memfd"
size = "16384M"
share = "on"

[numa]
type = "node"
nodeid = "0"
memdev = "mem0"

# Firmware (read only)
[drive]
file = "/snap/lxd/current/share/qemu/OVMF_CODE.4MB.fd"
if = "pflash"
format = "raw"
unit = "0"
readonly = "on"

# Firmware settings (writable)
[drive]
file = "/dev/fd/4"
if = "pflash"
format = "raw"
unit = "1"

# Qemu control
[chardev "monitor"]
backend = "socket"
path = "/var/snap/lxd/common/lxd/logs/win11test/qemu.monitor"
server = "on"
wait = "off"

[mon]
chardev = "monitor"
mode = "control"

# Console
[chardev "console"]
backend = "socket"
path = "/var/snap/lxd/common/lxd/logs/win11test/qemu.console"
server = "on"
wait = "off"

[device "qemu_pcie0"]
driver = "pcie-root-port"
bus = "pcie.0"
addr = "1.0"
chassis = "0"
multifunction = "on"

# Balloon driver
[device "qemu_balloon"]
driver = "virtio-balloon-pci"
bus = "qemu_pcie0"
addr = "00.0"
multifunction = "on"

# Random number generator
[object "qemu_rng"]
qom-type = "rng-random"
filename = "/dev/urandom"

[device "dev-qemu_rng"]
driver = "virtio-rng-pci"
bus = "qemu_pcie0"
addr = "00.1"
rng = "qemu_rng"

# Input
[device "qemu_keyboard"]
driver = "virtio-keyboard-pci"
bus = "qemu_pcie0"
addr = "00.2"

# Input
[device "qemu_tablet"]
driver = "virtio-tablet-pci"
bus = "qemu_pcie0"
addr = "00.3"

# Vsock
[device "qemu_vsock"]
driver = "vhost-vsock-pci"
bus = "qemu_pcie0"
addr = "00.4"
guest-cid = "1675331990"
vhostfd = "3"

# Virtual serial bus
[device "dev-qemu_serial"]
driver = "virtio-serial-pci"
bus = "qemu_pcie0"
addr = "00.5"

# LXD serial identifier
[chardev "qemu_serial-chardev"]
backend = "ringbuf"
size = "16B"

[device "qemu_serial"]
driver = "virtserialport"
name = "org.linuxcontainers.lxd"
chardev = "qemu_serial-chardev"
bus = "dev-qemu_serial.0"

# Spice agent
[chardev "qemu_spice-chardev"]
backend = "spicevmc"
name = "vdagent"

[device "qemu_spice"]
driver = "virtserialport"
name = "com.redhat.spice.0"
chardev = "qemu_spice-chardev"
bus = "dev-qemu_serial.0"

# Spice folder
[chardev "qemu_spicedir-chardev"]
backend = "spiceport"
name = "org.spice-space.webdav.0"

[device "qemu_spicedir"]
driver = "virtserialport"
name = "org.spice-space.webdav.0"
chardev = "qemu_spicedir-chardev"
bus = "dev-qemu_serial.0"

# USB controller
[device "qemu_usb"]
driver = "qemu-xhci"
bus = "qemu_pcie0"
addr = "00.6"
p2 = "8"
p3 = "8"

[chardev "qemu_spice-usb-chardev1"]
backend = "spicevmc"
name = "usbredir"

[device "qemu_spice-usb1"]
driver = "usb-redir"
chardev = "qemu_spice-usb-chardev1"

[chardev "qemu_spice-usb-chardev2"]
backend = "spicevmc"
name = "usbredir"

[device "qemu_spice-usb2"]
driver = "usb-redir"
chardev = "qemu_spice-usb-chardev2"

[chardev "qemu_spice-usb-chardev3"]
backend = "spicevmc"
name = "usbredir"

[device "qemu_spice-usb3"]
driver = "usb-redir"
chardev = "qemu_spice-usb-chardev3"

[device "qemu_pcie1"]
driver = "pcie-root-port"
bus = "pcie.0"
addr = "1.1"
chassis = "1"

# SCSI controller
[device "qemu_scsi"]
driver = "virtio-scsi-pci"
bus = "qemu_pcie1"
addr = "00.0"

[device "qemu_pcie2"]
driver = "pcie-root-port"
bus = "pcie.0"
addr = "1.2"
chassis = "2"

# Config drive (9p)
[fsdev "qemu_config"]
fsdriver = "local"
security_model = "none"
readonly = "on"
path = "/var/snap/lxd/common/lxd/devices/win11test/config.mount"

[device "dev-qemu_config-drive-9p"]
driver = "virtio-9p-pci"
bus = "qemu_pcie2"
addr = "00.0"
multifunction = "on"
mount_tag = "config"
fsdev = "qemu_config"

# Config drive (virtio-fs)
[chardev "qemu_config"]
backend = "socket"
path = "/var/snap/lxd/common/lxd/logs/win11test/virtio-fs.config.sock"

[device "dev-qemu_config-drive-virtio-fs"]
driver = "vhost-user-fs-pci"
bus = "qemu_pcie2"
addr = "00.1"
tag = "config"
chardev = "qemu_config"

[device "qemu_pcie3"]
driver = "pcie-root-port"
bus = "pcie.0"
addr = "1.3"
chassis = "3"

# GPU
[device "qemu_gpu"]
driver = "virtio-vga"
bus = "qemu_pcie3"
addr = "00.0"

[device "qemu_pcie4"]
driver = "pcie-root-port"
bus = "pcie.0"
addr = "1.4"
chassis = "4"

[chardev "qemu_tpm-chardev_vtpm"]
backend = "socket"
path = "/var/snap/lxd/common/lxd/virtual-machines/win11test/tpm.vtpm/swtpm-vtpm.sock"

[tpmdev "qemu_tpm-tpmdev_vtpm"]
type = "emulator"
chardev = "qemu_tpm-chardev_vtpm"

[device "dev-lxd_vtpm"]
driver = "tpm-crb"
tpmdev = "qemu_tpm-tpmdev_vtpm"

# VM Generation ID
[device "vmgenid0"]
driver = "vmgenid"
guid = "9d7600f1-808f-4b74-be58-27ad561654a4"

[device "qemu_pcie5"]
driver = "pcie-root-port"
bus = "pcie.0"
addr = "1.5"
chassis = "5"

[device "qemu_pcie6"]
driver = "pcie-root-port"
bus = "pcie.0"
addr = "1.6"
chassis = "6"

[device "qemu_pcie7"]
driver = "pcie-root-port"
bus = "pcie.0"
addr = "1.7"
chassis = "7"

[device "qemu_pcie8"]
driver = "pcie-root-port"
bus = "pcie.0"
addr = "2.0"
chassis = "8"
multifunction = "on"