QEMU/KVM “No bootable option or device was found”

I could use some help installing QEMU or setting up a VM.

QEMU is installed and running:

I can also set up a VM:

However, after it starts, the message “No bootable option or device was found” appears and nothing happens.

I’ve already spent the entire weekend troubleshooting online, but I’m not getting anywhere.

I suspect the problem is not QEMU but whatever it is that you use to drive QEMU.

I’m successfully using QEMU (including kvm acceleration) on all MNT platforms.

From the error message I suspect that the problem might be that the OS you are installing doesn’t do the right thing for QEMU on ARM or, alternatively, that whatever you are using is not doing the right thing to start QEMU in a way that the OS in your VM expects.

If you can give me a raw QEMU command line that works or does not work I might be of help. I’m working with multiple tools in Debian that drive QEMU+kvm.

Thanks, Josch, for the offer—I’ll be happy to get back to you on that.

I’m using Virtual Machine Manager 5.1.0.

I created a new VM using the WIN11-Arm64 ISO.

After the VM was created, it booted up and the following error message appeared:

I’d do the whole thing in the console, too, but I don’t know how …

Sorry, I fear I cannot help with Windows problems. I don’t know anything about the requirements that that operating system has on the VM.

That error is the EDK2 UEFI boot manager telling you that it looked through the boot options and attached devices, but did not see anything with a bootable EFI loader.

A few things could be wrong:

  1. Make sure the VM is actually ARM64, not x86_64 (easy mistake, ensure the VM Architecture is aarch64)
  2. Is the Windows 11 ARM ISO directly bootable?
  3. Check whether your ISO contains the ARM64 EFI loader

For #1, I think the GUI will tell you somewhere what the architecture is, but you can also check in the terminal:

virsh dumpxml <vm-name> | grep -E "arch|loader|machine"

Hopefully you’ll see something like:

<os>
  <type arch='aarch64' machine='virt'>hvm</type>
  <loader readonly='yes' type='pflash'>/usr/share/AAVMF/AAVMF_CODE.fd</loader>
</os>

For the other 2 issues might try this:

mkdir /tmp/winiso
sudo mount -o loop WIN11-Arm64.iso /tmp/winiso

ls /tmp/winiso/EFI/BOOT/

You should see BOOTAA64.EFI.

Caveat: My Windoze knowledge hasn’t been well tested in a decade or so. I do run a x86_64 Windows VM for the odd task like recovering the emmc on a bricked A311D. :slight_smile:

I’m not sure if it has anything to do with Windows. Any attempt to install Kali or Alpine ends the same way.

Thanks for the suggestion.

Here’s the result:

micha@mntremk:~/Downloads$ mkdir /tmp/winiso
mkdir: cannot create directory ‘/tmp/winiso’: Die Datei existiert bereits
micha@mntremk:~/Downloads$ sudo mount -o loop Win11_25H2_German_Arm64_v2.iso /tmp/winiso
[sudo] Passwort für micha: 
mount: /tmp/winiso: /home/micha/Downloads/Win11_25H2_German_Arm64_v2.iso is already mounted.
micha@mntremk:~/Downloads$ ls /tmp/winiso/EFI/BOOT/
ls: Zugriff auf '/tmp/winiso/EFI/BOOT/' nicht möglich: Datei oder Verzeichnis nicht gefunden
micha@mntremk:~/Downloads$ 

Huh, normally I’d say you probably have a bad ISO but since you say this happens on Linux images as well, I’m less inclined to think that.

For the windows ISO there are a couple other tools for checking the contents…

sudo apt install xorriso  # if not already installed
xorriso -indev ~/Downloads/Win11_25H2_German_Arm64_v2.iso -toc

Or…

7z l ~/Downloads/Win11_25H2_German_Arm64_v2.iso | less

If I were in your place I’d want to be sure I had a “known good setup” first. I’d download something commonly run in virtualization on Arm.

Debian 12 netinst (arm64) is small, minimal, very well-exercised on aarch64 KVM since Debian’s own builds are often arm64.

Canonical does a lot of Arm testing too. Look for ubuntu-24.04-live-server-arm64.iso. I often use this as a “does my VirtManager setup work” test on Arm.

If you can get that working in VirtManager then try debugging the issue with your Windows ISO. It’s still possible that image is bad.

Virtualization is a tricky thing to get right, especially with Windows. Viel Glück!