Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-114121

[ARM64] Windows 11 installation on ARM64 fails due to missing or incorrect virtio drivers.

Linking RHIVOS CVEs to...Migration: Automation ...Sync from "Extern...XMLWordPrintable

    • No
    • Important
    • rhel-virt-windows
    • None
    • False
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • Unspecified
    • Unspecified
    • Unspecified
    • aarch64
    • None

      Setup details:

      qemu-kvm-10.0.0-7.el10.aarch64
      edk2-20250523-2.el10.noarch
      kernel-6.12.0-114.el10.aarch64
      swtpm-0.9.0-5.el10.aarch64

      qemu-kvm cmd line:

      /usr/libexec/qemu-kvm \
      -name guest=win11,debug-threads=on \
      -blockdev '{"node-name": "file_aavmf_code", "driver": "file", "filename": "/usr/share/edk2/aarch64/QEMU_EFI-silent-pflash.raw", "auto-read-only": true, "discard": "unmap"}' \
      -blockdev '{"node-name": "drive_aavmf_code", "driver": "raw", "read-only": true, "file": "file_aavmf_code"}' \
      -blockdev '{"node-name": "file_aavmf_vars", "driver": "file", "filename": "/home/kar/vm1_vars.raw", "auto-read-only": true, "discard": "unmap"}' \
      -blockdev '{"node-name": "drive_aavmf_vars", "driver": "raw", "read-only": false, "file": "file_aavmf_vars"}' \
      -m 25600 \
      -smp 64,maxcpus=64,cores=32,threads=1,clusters=1,sockets=2  \
      -cpu 'host' \
      -chardev socket,server=on,wait=off,id=qmp_id_qmpmonitor1,path=/var/tmp/qmpmonitor1  \
      -mon chardev=qmp_id_qmpmonitor1,mode=control \
      -machine virt,gic-version=host,pflash0=drive_aavmf_code,pflash1=drive_aavmf_vars,memory-backend=mem-machine_mem \
      -object '{"size": 26843545600, "mem-path": "/dev/shm", "share": true, "id": "mem-machine_mem","qom-type": "memory-backend-file"}'  \
      -nodefaults -vnc 0.0.0.0:12 -monitor stdio -enable-kvm \
      -device ramfb \
      -device '{"driver":"qemu-xhci","p2":15,"p3":15,"id":"usb"}' \
      -device '{"driver":"usb-tablet","id":"input0","bus":"usb.0","port":"1"}' \
      -device '{"driver":"usb-kbd","id":"input1","bus":"usb.0","port":"2"}' \
      -device '{"driver":"usb-mouse","id":"input2","bus":"usb.0","port":"3"}' \
      -drive file=/home/kvm_autotest_root/iso/ISO/Win11/en-us_windows_11_business_editions_version_24h2_updated_april_2025_arm64_dvd_1221f08c.iso,media=cdrom,if=none,id=drivers \
      -device '{"driver":"usb-storage","drive":"drivers"}' \
      -drive file=/home/virtio-win-0.1.271.iso,media=cdrom,if=none,id=drivers_win \
      -device '{"driver":"usb-storage","drive":"drivers_win"}' \
      -drive file=/home/kvm_autotest_root/iso/windows/virtio-win-prewhql-0.1-290_aarch64.iso,media=cdrom,if=none,id=drivers_win_2 \
      -device '{"driver":"usb-storage","drive":"drivers_win_2"}' \
      -device '{"driver":"pcie-root-port","port":8,"chassis":1,"id":"pci.1","bus":"pcie.0","multifunction":true,"addr":"0x2"}' \
      -device '{"driver":"pcie-root-port","port":9,"chassis":2,"id":"pci.2","bus":"pcie.0","addr":"0x2.0x1"}' \
      -device '{"driver":"pcie-root-port","port":10,"chassis":3,"id":"pci.3","bus":"pcie.0","addr":"0x2.0x2"}' \
      -device '{"driver":"pcie-root-port","port":11,"chassis":4,"id":"pci.4","bus":"pcie.0","addr":"0x2.0x3"}' \
      -device '{"driver":"pcie-root-port","port":12,"chassis":5,"id":"pci.5","bus":"pcie.0","addr":"0x2.0x4"}' \
      -blockdev '{"driver":"file","filename":"/home/kvm_autotest_root/images/win11-arm64-virtio.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 '{"driver":"virtio-scsi-pci","bus":"pci.3","addr":"0x0"}' \
      -device '{"driver": "scsi-hd", "id": "image1", "drive": "libvirt-2-format", "write-cache": "on"}' \
      -netdev '{"type":"tap","id":"hostnet0"}' \
      -device '{"driver":"virtio-net-pci","netdev":"hostnet0","id":"net0","mac":"52:54:00:dc:d6:7d","bus":"pci.4","addr":"0x0"}' \
      -device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.2","addr":"0x0"}' \
      -device '{"driver":"virtio-gpu-pci","id":"video0","max_outputs":1,"bus":"pci.5","addr":"0x0"}' \
      -chardev socket,id=char_vtpm_avocado-vt-vm1_tpm0,path=/home/kar/workspace/root/avocado/data/avocado-vt/swtpm/avocado-vt-vm1_tpm0_swtpm.sock \
      -tpmdev emulator,chardev=char_vtpm_avocado-vt-vm1_tpm0,id=emulator_vtpm_avocado-vt-vm1_tpm0 \
      -device '{"id": "tpm-crb_vtpm_avocado-vt-vm1_tpm0", "tpmdev": "emulator_vtpm_avocado-vt-vm1_tpm0", "driver": "tpm-tis-device"}' 
       

       

      What were you trying to do that didn't work?  

      I was attempting to install Windows 11 on an ARM64 virtual machine. The installation failed to proceed because it could not find the necessary virtio drivers to recognize the virtual disk.

      What is the impact of this issue to you?

       blocks the installation of Windows 11 on an ARM64 VM

      Please provide the package NVR for which the bug is seen: 

      The issue was observed while using the new virtio-win ISO: virtio-win-prewhql-0.1-290_aarch64.iso

      How reproducible is this bug?:

      100% reproducible. The installation fails at the same step every time.

      Steps to reproduce

      1. Create a new virtual machine for Windows 11 on an ARM64 platform.
      2. Mount the virtio-win-prewhql-0.1-290_aarch64.iso as a virtual CD/DVD drive.
      3. Begin the Windows 11 installation process.
      4. Proceed through the initial setup until the "Where do you want to install Windows?" screen.
      5. Click on "Load driver" to install the virtio drivers.
      6. Browse to the mounted virtio-win ISO and navigate to the aarch64 driver folder.

      Expected results

      The installer should successfully find and load the correct virtio drivers from the ISO, allowing the user to select the virtual disk for installation and proceed with the setup.

      Actual results

      The Windows 11 installer fails to find the virtio drivers for the virtual disk, halting the installation process and making it impossible to install the operating system.

      NOTE: I used https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.271-1/virtio-win.iso vioscsci driver to load driver first and after installation I was able to install network and balloon drivers fron the virtio-win-prewhql-0.1-290_aarch64.iso

              rhn-support-vrozenfe Vadim Rozenfeld
              rh-ee-mbawa Mohammadfaiz Bawa
              Virt Windows SST Bugs Virt Windows SST Bugs
              Xiaoling Gao Xiaoling Gao
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: