Qemu Uefi lacks mpt/sas boot support

I was installing a windows virtual machine with a stock iso from microsoft. I found that the install disc not showing up in installer because of no virtio drivers are builtin. And there’s no way to use legacy hw emu controllers like ahci or sas in Type: disk - Incus documentation
I still managed to do this by overriding [device “qemu_scsi”] entry. However, it seems the uefi firmware used does not have drivers for sas/mpt. So it simply won’t boot.
I tinkered around and still found a hacky solution though.
I added another disk entry for the same iso but set the bus to nvme, so the firmware can boot from it magically.
After entering the installer I can see the iso from the legacy controller now.
(I used a disk manage tool and I can also see the iso from nvme, but it shows as a raw device)

Suggest:
Add hw emulated controller to disk device (mpt/sas/ahci any will do)
or
Add sas/mpt support to the uefi firmware.

When researching how to install stock Windows ISO I came up with this guide: Specifics of running Windows VM in Incus - #9 by FoxtrotCZ

I agree that it would be easier if there was support for legacy AHCI or IDE device in Incus but luckily its possible with custom QEMU config.

1 Like

For modern Windows, you can also just use io.bus=nvme which doesn’t need additional drivers.

Yup I’m already using nvme for c driver.

The iso “virtual disk” does not work with nvme under windows(and installer environment) though,it shows as raw disk but can be used to boot the PE.