I have successfully installed QEMU to do VGA passthrough. I can get the guest to read the Ubuntu ISO and it will find the img drive I have allocated with
fallocate -l 100G /VMs/VMs/video_gpu.img
The install appears to go fine. When I remove the -drive line with the ISO, I fall to the EFI shell. Some answers have suggested to simply "exit", but I get a BIOS menu, and the drive does not boot.
If I proceed to try to reinstall Ubuntu Guest, the installer will detect an existing Ubuntu and will ask to install alongside it.
Did I misconfigure the -drive options below?
(Edit)
fdisk -l /VMs/VMs/video_gpu.img
shows that there is an EFI parition, then the Linux Filesystem, then Linux Swap.
EDIT
fs0:
cd efi
cd ubuntu
grubx64.efi
at that EFI prompt solves the problem, but is there a way to auto-launch this? I'll wait a bit for someone to answer to give them some rep, if not, I'll answer my own question and maybe post just the specifics as another question.
qemu-system-x86_64 \
-name $vmname,process=$vmname \
-machine type=q35,accel=kvm \
-cpu host,kvm=off \
-smp 4,sockets=1,cores=2,threads=2 \
-m 16G \
-mem-prealloc \
-balloon none \
-rtc clock=host,base=localtime \
-vga none \
-nographic \
-serial none \
-parallel none \
-soundhw hda \
-usb -usbdevice host:04ca:007d -usbdevice host:413c:3016 \
-device vfio-pci,host=89:00.0,multifunction=on \
-device vfio-pci,host=89:00.1 \
-drive if=pflash,format=raw,readonly,file=/usr/share/OVMF/OVMF_CODE.fd \
-drive if=pflash,format=raw,file=/tmp/my_vars.fd \
-boot order=dc \
-drive id=disk0,if=virtio,cache=none,format=raw,file=/VMs/VMs/video_gpu.img \
-drive file=/home/user/ub16044.iso,index=3,media=cdrom \
-netdev type=tap,id=net0,ifname=tap0,vhost=on \
-device virtio-net-pci,netdev=net0,mac=00:16:3e:00:01:01
EDIT 2
In the Guest VM I ran
efibootmgr -v
which output:
BootCurrent: 0003
Timeout: 0 seconds
BootOrder: 0000,0001,0002,0003
Boot0000* EFI DVD/CDROM PciRoot(0x0)/Pci(0x1f,0x2)/Sata(2,0,0)
Boot0001* EFI Misc Device PciRoot(0x0)/Pci(0x5,0x0)
Boot0002* EFI Network PciRoot(0x0)/Pci(0x4,0x0)/MAC(00163e000101,1)
Boot0003* EFI Internal Shell MemoryMapped(11,0x900000,0x11fffff)/FvFile(7c04a583-9e3e-4f1c-ad65-e05268d0b4d1)
Looks like I need to create a new order?
efibootmgr -vin the affected VM and include the output in your question.