Just installed FreeBSD 8 on a spare partition of my computer. Was planning to use the Debian-installed GRUB to boot it, but when I went to edit GRUB config files they had changed beyond recognition. GRUB 2, it seems, is very different to GRUB 1. For the benefit of anyone else who has a similar setup, edit /etc/grub.d/40_custom and add the following:

menuentry "FreeBSD" {
   set root=(hd0,1,a)
   chainloader +1

Make sure you edit the root parameter to the partition where you installed FreeBSD. Remember that “real” partitions are numbered 0,1.. and UFS partitions go a,b.. and you need both.

Now run update-grub2 and /boot/grub/grub.cfg should be generated from the config files in /etc/grub.d. Verify that FreeBSD menu item has been added and reboot.