
On 5/19/25 19:30, Paul Larochelle via Users wrote:
Hello,
I'm writing to better understand a surprising discrepancy I encountered while attempting to install Windows 11 in different virtualization environments.
On my Arch Linux system, I tested two setups:
1. **VirtualBox (GUI):** Windows 11 installs successfully out of the box. 2. **QEMU/KVM with libvirt (manually crafted XML):** Windows 11 refuses to install, stating that the system doesn't meet the requirements.
The libvirt domain configuration includes: - UEFI boot using OVMF (`OVMF_CODE.4m.fd` and `OVMF_VARS.ms.fd`)
I have no idea what these ^^^ are since they are not what I usualy encounter. Nevertheless, it looks there's OVMF_CODE_4m.secboot.fd which would suggest it has secure boot enabled while the _CODE you chose hasn't?
- TPM 2.0 emulator (`tpm-crb` with `backend type='emulator' version='2.0'`) - Secure Boot enabled (verified using Microsoft-signed vars) - 8 GiB of RAM, 4 vCPUs - VirtIO disk + virtio-win ISO attached - QXL or VirtIO video model - `<hyperv>` feature set enabled - Valid boot order (CD-ROM first, then disk)
Despite this, Windows 11 either refuses installation with the "This PC can't run Windows 11" message or fails to detect a valid bootable device.
In contrast, VirtualBox seems to pass all checks without exposing TPM configuration explicitly or enabling Secure Boot manually.
---
**My question:**
What is VirtualBox doing under the hood that makes Windows 11 accept the environment without issues?
- Is it exposing a minimal TPM implicitly? - Is it modifying SMBIOS/ACPI fields in a way that satisfies Windows validation logic? - Are there known tricks or missing XML elements in libvirt domains to replicate this behavior?
Using virt-install I install Windows 11 happily. I never tried to come up with domain XML from scratch myself and I'm with the project for ~15 years. There are tools for that. Is there something specific that you need and virt-install is not offering?
My goal is not to bypass Microsoft's requirements, but rather to understand the technical differences and replicate a compliant setup in QEMU/libvirt, ideally without resorting to ISO modifications.
This was never the case for me. Michal