Установку загрузчика можно выполнить либо из портов
bsd$ whereis -s grub2
grub2: /usr/ports/sysutils/grub2
bsd$ sudo make -C /usr/ports/sysutils/grub2 -D BATCH install clean
Либо из бинарных пакетов (можно выполнить еще до первой перезагрузки)
# csh
# setenv PACKAGESITE ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9.0-stable/Latest/
# pkg_add -r grub2
Инсталляция загрузчика на диск /dev/ada0
bsd$ rehash
bsd$ sudo grub-install /dev/ada0
Конфигурация /boot/grub/grub.cfg
bsd$ sudo grub-mkconfig | sudo tee /boot/grub/grub.cfg
menuentry "FreeBSD, with kFreeBSD kernel" {
insmod ufs2
set root='(/dev/ada0,1,a)'
echo Loading kernel of FreeBSD kernel ...
kfreebsd /boot/loader
set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada0s1d
set kFreeBSD.vfs.root.mountfrom.options=rw
Замечание по поводу перезаписи загрузчика: обновленный установщик FreeBSD, начиная с версии 9.0, после создания разделов на диске не предлагает установить загрузчик (boot или boot0). Поэтому, если ранее был установлен grub, потребуется перезаписать загрузчик вручную
# sysctl kern.geom.debugflags=16
# fdisk -B -b /boot/boot/boot /dev/ada0
При установке загрузчика из пакета может возникнуть сложность в том случае, если ветка устанавливаемого релиза FreeBSD уже отсутствует. В моем случае устанавливалась FreeBSD 9.0-Release, а ветки были только
tfp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9-stable/Lastest/
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9.0-stable/Lastest/
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9.1-release/Lastest/
Соответственно, пришлось менять PACKAGESITE, для csh это будет так:
# csh
# setenv PACKAGESITE ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9.0-stable/Latest/
Пакеты с других веток устанавливались с ошибками