Загрузка FreeBSD через GRUB





















































FreeBSD



Однажды я решил установить на попавшийся под руку компьютер 8 популярных дистрибутивов Linux и одну FreeBSD. Да, вот так оригинально. Последней установил Ubuntu, т.к. она замечательно определила все 7 остальных установленных дистрибутивов и добавила необходимые строчки в GRUB (мне было лень возиться самому, вспоминая, на какой раздел что я установил). Но это не главное.







Осталось только добавить в GRUB пару строчек для загрузки FreeBSD.







menuentry "FreeBSD" {



root (hd0,a)


kernel /boot/loader


}








Но не тут-то было — у меня стоял GRUB 1.98, который ругался на команду kernel:







error: unknown command `kernel'.








Тогда я попробовал загрузить шнягу наподобие windows:







set root=(hd0,a)



chainloader +1








Но тут мне показалась другая ошибка:







error: invalid signature








После довольно продолжительного поиска, я нашел такой способ:







set root=(hd0,a)



freebsd /boot/loader








Но и тут меня ждала неудача :(







error: unknown command `freebsd'.








И лишь в четвертый раз все получилось — когда в консоль GRUB я ввел следующие строки, пошла загружаться Фря.







set root=(hd0,a)



kfreebsd /boot/loader


boot








Т.е. команды freebsd нет, есть kfreebsd. Необычно.







А в сам конфиг Grub'а ( /boot/grub/grub.cfg) нужно добавить следующее:







menuentry "FreeBSD" {



set root=(hd0,a)


kfreebsd /boot/loader


}








Такой вариант подходит для GRUB 1.98, для остальных — не знаю, с GRUB2 я дел особо не имел и не собираюсь, т.к. привычный grub 0.97 на моих рабочих компьютерах выполняет все необходимое и смысла пробовать что-то другое пока нет :)







Если вы не знаете, какой раздел указывать для загрузки, то определить его можно простым перебором. Включаете компьютер, дожидаетесь появления меню Grub, жмете C, попадаете в его командную консоль и смотрите, где что:







grub> root (hd0,0)



error: no such partition


grub> root (hd0,3)


(hd0,3): Filesystem is ext2


grub> root (hd0,1)


(hd0,3): Filesustem is unknown


grub> root (hd0,a)


(hd0,a): Filesystem is ufs2








Вот на ufs2, скорее всего, и стоит FreeBSD. Надеюсь, что кому-то удалось помочь, удачи!