Una vez instalado Ubuntu Server en la maquina virtual podemos encontrar que no inicia y que al conectarnos via VNC encontramos que no sale del shell EFI.

Para solucionar esto haremos lo siguiente:

escribimos exit y nos saldrá un menú en el cual tenemos que dirigirnos a la siguiente ruta:

"Boot Maintenance Manager" y luego seleccionamos "Boot from file" y localizamos el fichero grubx64.efi que normalmente está en EFI>ubuntu>

Hacemos clic en el fichero grubx64.efi para poder arrancar Ubuntu. Una vez el sistema esté arrancado ya podremos conectarnos a el mediante SSH y acceder a los ficheros de arranque. Nos logueamos como root y accedemos a:

/boot/efi/EFI/

El firmware UEFI de bhyve cumple con el conocido "Comportamiento de arranque predeterminado" y busca el archivo EFIBOOToot64.efi en la partición EFI de nuestra máquina virtual. Si no existe tendremos que crearlo a mano, sino nos lleva al shell EFI.

creamos la carpeta BOOT dentro de EFI:

mkdir BOOT

accedemos a la carpeta ubuntu /boot/efi/EFI/ubuntu

cd ubuntu


y copiamos el fichero grubx64.efi en la carpeta BOOT con el nombre bootx64.efi

cp grubx64.efi /boot/efi/EFI/BOOT/bootx64.efi

Importante: Si grubx64.efi se actualiza, tendremos que volver a crear bootx64.efi

Una vez finalizado esto, ya arrancará el sistema operativo sin problemas.

Otro de los problemas que podemos encontrar es que el sistema no inicia automaticamente hasta que no accedemos via VNC. Esto se soluciona desactivando la casilla "Wait to boot" que está dentro de "Devices" y "VNC" de nuestra configuración de la máquina virtual.