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. Nov 10, 2018 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. Nov 12, 2018 at 3:14
  • Run efibootmgr -v in the affected VM and include the output in your question. Nov 12, 2018 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. Nov 20, 2018 at 0:27
  • 1
    What happened when you ran Boot-Repair? Nov 20, 2018 at 3:30

1 Answer 1


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.