If you upgraded to FreeBSD 12 or 13, you might experience, that the boot menu has a broken layout with special characters and the console resolution is incorrect. Fix it with the new UEFI kernel loader.
Confirm, which device, you are booting from. In the following example, it is ada0p1, which is often the case on FreeBSD systems.
# ls /dev/ad* crw-r----- 1 root operator 0x66 Dec 26 18:05 /dev/ada0 crw-r----- 1 root operator 0x67 Dec 26 18:05 /dev/ada0p1 crw-r----- 1 root operator 0x68 Dec 26 18:05 /dev/ada0p2 crw-r----- 1 root operator 0x69 Dec 26 18:05 /dev/ada0p3 crw-r----- 1 root operator 0x6d Dec 26 18:05 /dev/ada0p3.eli
Mount the EFI system partition (ESP).
# mount -t msdosfs /dev/ada0p1 /mnt
Copy the new EFI boot loader.
# cp /boot/loader.efi /mnt/efi/boot/BOOTx64.efi
Unmount the boot partition.
# umount /tmp
You can now reboot and you should see the new neat FreeBSD boot menu with correct layout and better console font resolution.
More about the FreeBSD boot menu, boot kernel loader and boot process.
You can read more about this boot menu layout problem in Broken boot menu layout since update to 13.0 and Upgrade FreeBSD with ZFS Boot Environments on FreeBSD Forums. You can read more about the FreeBSD UEFI kernel loader in loader.efi in FreeBSD Manual Pages. You can read more about the FreeBSD boot process in The FreeBSD Boot Process by James A. Fix small font in FreeBSD virtual terminal system console by myself.
This page was last updated 2022-01-06.