I finally got the boot into FreeBSD to work. Here's what I put in 40_custom before running update-grub:
#!/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" {
set root=(hd0,2,a)
chainloader +1
boot
}
So the root specification is based on the FreeBSD slice (number) and partition (letter) method of specifying a partition, as in the legacy GRUB, except that the primary partition ("slice") numbering starts at 1 rather than 0.
I finally got the boot into FreeBSD to work. Here's what I put in 40_custom before running update-grub:
#!/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" {
set root=(hd0,2,a)
chainloader +1
boot
}
So the root specification is based on the FreeBSD slice (number) and partition (letter) method of specifying a partition, as in the legacy GRUB, except that the primary partition ("slice") numbering starts at 1 rather than 0.
Problem solved!