UEFI bhyve and EFI shell at boot

Justin Holcomb me at justinholcomb.me
Mon Sep 26 10:31:34 UTC 2016


> From: owner-freebsd-virtualization at freebsd.org <owner-freebsd-virtualization at freebsd.org> on behalf of Stephan CHEDLIVILI <stephan at theched.org>
> Sent: Saturday, September 24, 2016 12:50 AM
> To: freebsd-virtualization at freebsd.org
> Subject: UEFI bhyve and EFI shell at boot
>     
> Hi gents,
> 
> I was giving a try to the UEFI-GOP on a FreeBSD 11.0-RC3. Launching the 
> install of, let's say a Debian works fine and I can attach a VNC viewer for the 
> progress.
> 
> All is fine , even rebooting after the installation is finished I can log in 
> Debian.
> 
> However, when I do a bhyvectl --destroy --vm=xxxxxxx and I try to reboot the 
> VM and it greets me with the error message "Boot failed, EFI Harddrive" at 
> boot and sends me to the EFI shell. 
> 
> I then have to manually use the shell menu to launch the boot via the ad-hoc 
> file (/boot/efi/efi/debian/grubx64.efi) and it boot flawlessly.
> 
> And of course, the same error happens after I reboot the FreeBSD host machine
> 
> Is there somethign I am missing here ? 
> 
> Thanks for this admirable piece of work !
> 
> -Stephan

Stephan,

I have also experienced this as well. My scriptable work around was to start the
guest with a rEFInd ISO[1] instead a 'null.iso'. rEFInd sees the Debian
installation on the image/volume and will boot from it after the 15 seconds
timeout elapses.

As for the why... my rudimentary understanding is the Debian installation
creates and relies on the UEFI boot entry it creates during installation.
However that entry is forgotten once the guest's VMM resources are reclaimed as
the UEFI environment is not saved and is reloaded exactly from the UEFI ROM
file (not from the previous state).

-Justin D Holcomb

[1] http://www.rodsbooks.com/refind/getting.html


More information about the freebsd-virtualization mailing list