How do I boot FreeBSD from GRUB on a UEFI system?
Using Debian on a system with two disks, as an example:
$ cat /etc/grub.d/40_custom
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "FreeBSD" {
insmod part_gpt
insmod chain
search --fs-uuid --no-floppy --set=root 7D10-E4A0
search --fs-uuid --no-floppy --set=root 7D0F-1D08
chainloader ($root)/EFI/freebsd/loader.efi
}The last part of each search line is the UUID of the ESP, not to be confused with the PARTUUID. Find them with blkid:
$ blkid | grep EFI /dev/sdb2: LABEL_FATBOOT="EFI" LABEL="EFI" UUID="7D0F-1D08" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="efi1" PARTUUID="02c68f5d-dda6-4207-aab3-92f54966394a" /dev/sda2: LABEL_FATBOOT="EFI" LABEL="EFI" UUID="7D10-E4A0" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="efi0" PARTUUID="0001a159-991c-4f6a-9ab6-325ab842a49f"