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?


fdisk -l /VMs/VMs/video_gpu.img

shows that there is an EFI parition, then the Linux Filesystem, then Linux Swap.


cd efi
cd ubuntu

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


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?

  • I don't understand your comment. Did you actually solve this yourself? If so, you should post an answer. There is no need to wait for someone else to do it, and you should not wait, because you'll just cause people to try to solve a problem that is already solved. – Michael Hampton Nov 10 '18 at 15:01
  • My problem is that yes, I can get it to boot, but I have a EFI shell that I have to manually launch my grubx64.efi. I would hope that like when running virt-manager, my single VM with a single rootfs should just get to the OS without user interaction at an EFI level. – IDLacrosseplayer Nov 12 '18 at 3:14
  • Run efibootmgr -v in the affected VM and include the output in your question. – Michael Hampton Nov 12 '18 at 3:29
  • Sorry, I was out of the country. I see 4 boot orders, none of which appear to point to the grubx64.efi. I'll add an edit above with the output. – IDLacrosseplayer Nov 20 '18 at 0:27
  • 1
    What happened when you ran Boot-Repair? – Michael Hampton Nov 20 '18 at 3:30

Installing and executing boot-repair as linked above by Michael Hampton solved the issue.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.