querying smbios type=1 UUID in Windows not possible when using SMBIOS 64 bit entry
Host environment
- Operating system: Proxmox VE 8 (but using upstream build of QEMU)
- OS/kernel version: Linux pve8a1 6.5.11-5-pve #1 SMP PREEMPT_DYNAMIC PMX 6.5.11-5 (2023-11-27T19:52Z) x86_64 GNU/Linux
- Architecture: x86
- QEMU flavor: qemu-system-x86_64
- QEMU version: QEMU emulator version 8.1.0 (v8.1.0)
- QEMU command line:
./qemu-system-x86_64 \ -accel 'kvm' \ -chardev 'socket,id=qmp,path=/var/run/qemu-server/126.qmp,server=on,wait=off' \ -mon 'chardev=qmp,mode=control' \ -chardev 'socket,id=qmp-event,path=/var/run/qmeventd.sock,reconnect=5' \ -mon 'chardev=qmp-event,mode=control' \ -pidfile /var/run/qemu-server/126.pid \ -smbios 'type=1,uuid=aad890cd-55b7-4e60-b51b-504f6e6ad5ba' \ -smp '4,sockets=1,cores=4,maxcpus=4' \ -vnc 'unix:/var/run/qemu-server/126.vnc,password=on' \ -m 4096 \ -nodefaults \ -device 'pci-bridge,id=pci.1,chassis_nr=1,bus=pci.0,addr=0x1e' \ -device 'pci-bridge,id=pci.2,chassis_nr=2,bus=pci.0,addr=0x1f' \ -device 'pci-bridge,id=pci.3,chassis_nr=3,bus=pci.0,addr=0x5' \ -device 'VGA,id=vga,bus=pci.0,addr=0x2,edid=off' \ -device 'virtio-scsi-pci,id=virtioscsi0,bus=pci.3,addr=0x1' \ -drive 'file=/var/lib/vz/images/126/vm-126-disk-0.qcow2,if=none,id=drive-scsi0,format=qcow2' \ -device 'scsi-hd,bus=virtioscsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0,bootindex=100' \ -machine 'pc-i440fx-8.1'
Emulated/Virtualized environment
- Operating system: Windows Server 2022 (also affects Windows Server 2019 and Windows 10)
- OS/kernel version: Build 20348.fe_release.210507-1500
- Architecture: x86
Description of problem
Querying the UUID in Powershell with
get-wmiobject win32_computersystemproduct | Select-Object -expandProperty UUID
will return no value. When using -machine 'pc-i440fx-8.1,smbios-entry-point-type=32'
or -machine 'pc-i440fx-8.0'
the command works as expected. When using -machine 'pc-i440fx-8.0,smbios-entry-point-type=64'
the issue is also present.
Commit bf376f30 changed the default for machine version 8.1, so that explains that part.
It's not clear to me if this is a bug in QEMU or a bug/limitation of the guest OS when 64 bit entry is used by SMBIOS.
Additional information
Originally reported for Windows 10 in the Proxmox VE community forum (AFAIK the downstream build in Proxmox VE does not patch the relevant code paths): https://forum.proxmox.com/threads/136942/