Bhyve, Debian – EFI Boot Failure

At first it took several tries just to make a successful VNC connection (using Remmina) with the new virtual machine (VM) created in bhyve running under FreeNAS 11. Even if I got something to display, the image was completely undecipherable – some sort of resolution mismatch. The key here is to configure the VNC device as follows:

Resolution: 800×600
Web Interface: unchecked

The real objective was to create a Debian 10 email server.

After completing the OS installation steps via GUI, I decided to delete the hypervisor’s CD-ROM device with its mapping to the installation ISO. Unbeknownst to me, that renumbered installed device mappings and effectively changed my NIC’s Predictable Network Interface Name: enp0s5 -> enp0s4.

After rebooting the VM, I was faced with two surprising problems:

  1. the system booted into the EFI CLI {FACEPALM}
  2. the NIC lost network connection {facepalm}

To solve the first problem, research illuminated that apparently Debian does not have a consistent way of saving its EFI data – though CentOS at one point did not have this problem. Instructions that helped solve this came from discussion thread (#3).


  • from UEFI CLI, type exit
  • from the EFI menu select Boot Maintenance Manager
  • select Boot from File
  • navigate down to and select file grubx64.efi

Then after booting your VM, from the terminal:

  • # mkdir /boot/efi/EFI/BOOT
  • # cp /boot/efi/EFI/debian/grubx64.efi /boot/efi/EFI/BOOT/bootx64.efi
  • reboot

To solve the second problem … get your current interface name from

$ ip a

.. then edit your /etc/network/interfaces file:

# nano /etc/network/interfaces

# The primary network interface
allow-hotplug enp0s4
iface enp0s4 inet dhcp
# This is an autoconfigured IPv6 interface
iface enp0s4 inet6 auto

Final Notes

Someone in the discussion thread (#146) suggested that when installing Debian, select the Expert Mode; when asked Force grub-efi installation to the removable media path, select Yes. I have not tried this.

Lastly, if there is a change to UEFI, you may need to go through the above steps again and manually copy bootx64.efi.

C’est tout ~

Leave a Reply