Додати FreeBSD до меню завантаження GRUB2


11

У мене Gentoo x64 встановлений разом із Grub2 на моєму накопичувачі MBR. Сьогодні я встановив FreeBSD x64 9.2. Зараз я перебуваю в Gentoo і намагаюся додати FreeBSD до grub2списку меню.

grub2-install /dev/sda
os-prober
grub2-mkconfig -o /boot/grub2/grub.cfg

Я зробив вище на Gentoo, і він не знайшов FreeBSD. Вкладений розділ FreeBSD увімкнено, sda1містить freebsd-ufsі freebsd-swapрозділи.

Як я можу додати FreeBSD grub2?

Відповіді:


9

Ось моя:

menuentry "FreeBSD" --class freebsd --class bsd --class os {
 insmod ufs2
 insmod bsd
 set root=(hd0,1)
 kfreebsd /boot/kernel/kernel
 kfreebsd_loadenv /boot/device.hints
 set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada0s1a
 set kFreeBSD.vfs.root.mountfrom.options=rw
 set kFreeBSD.hw.psm.synaptics_support=1
}

1
ти генерував це за допомогою os-prober чи робив це сам. також у який файл увійшла ця директива?
r004

чи перекладається sda1 hd0,1? чи правда, що grub2 починається з 1, а не з 0?
r004

2
Ні, це / не генерується автоматично. Я написав це в /etc/grub.d/40_custom, перевірте це: wiki.archlinux.org/index.php/…
uzsolt

1
Так, (hd0,1) - sda1.
uzsolt

freebsd знаходиться в / dev / sda1, але sda1 є фрагментом розділу (згідно з терміналогією bsd); і він містить /і swapрозділ. Як я повинен передувати тоді?
r004

4

Моєю метою було: завантажувати FreeBSD 10 з Grub2, редагуючи 40_custom в /etc/grub.d

Моя установка: FreeBSD10 знаходиться на п’ятому hdd моєї системи (/ dev / sde під Linux, тому hd4 для Grub2. Пам’ятайте, що під Grub2 hd починається з hd0 для накопичувачів, а розділи з 1 і далі, а не з нуля). Корінний розділ є другим (/ dev / sde2), оскільки я використовував керований розділ FreeBSD (використовувати весь диск) під час встановлення (найпростіший). Нагадаємо, що це: set root = '(hd4,2)' для п’ятого hdd та другого розділу.

інформація: (ланцюговий завантажувач +1 насправді не потрібен! Наступне приводить мене безпосередньо до завантажувача FreeBSDs).

Підводячи підсумок: ви просто повинні адаптувати встановлений root = (x, x), більше нічого не потрібно. Якщо ви хочете завантажувати ядро ​​безпосередньо, речі стають трохи складнішими, ніж запис нижче.

menuentry "FreeBSD 10.0" {
    insmod part_gpt
    set root='(hd4,2)'
    kfreebsd /boot/loader
}

Мене трохи розчарував os-prober, який щойно знайшов "Невідомий дистрибутив Linux на / dev / sde2"

ps: не забудьте "update-grub" згодом і Taddaa (сподіваємось). :) Якщо комусь вдасться, киньте мені повідомлення, я був би радий почути вас!


добре для таблиці розділів gpt
r004,

Що таке insmod part_gpt?
ніхто не

2

Зробіть це в такому порядку:

  1. Відредагуйте свої /etc/grub.d/40_customта додайте директиви uzsolt . Додайте директиву в кінці файлу. Не видаляйте нічого, що є там .

  2. Переконайтеся, що 40_customвін виконується. Якщо ні, то chmod u+x 40_custom.

  3. Тепер зробіть це, щоб записати зміни до grub.cfg.

    grub2-install /dev/sda 
    os-prober 
    grub2-mkconfig -o /boot/grub/grub.cfg
    
  4. Тада! Перезавантажте негайно; ви повинні мати FreeBSD у своєму списку ОС у меню GRUB.

Щоб мати доступ до фрагмента розділу UFS, слід зробити наступне:

  1. Відредагуйте конфігурацію ядра, щоб додати UFS filesystemта UFS label.

  2. Тоді make && make_modulesваше ядро.

  3. Встановіть програмне забезпечення файлової системи UFS .

  4. Встановіть свій UFS-фрагмент під ваш Linux:

    sudo mkdir /mnt/freebsd && sudo mount -r -t ufs -o ufstype=ufs2 /dev/sda1 /mnt/freebsd
    

2

За даними цього сайту :

  1. Завантажте Linux.
  2. Створіть /boot/grub2/custom.cfgфайл.
  3. Додайте ці рядки до створеного файлу:

    menuentry "FreeBSD" {
    set root='(hd0,3)'
    kfreebsd /boot/loader
    }
    

    де hd0,3означає, що це перший жорсткий диск, а FreeBSD знаходиться на своєму третьому розділі (оскільки диски нумеруються від 0, а розділи - з 1). Можливо, вам доведеться скоригувати ці цифри. Один із способів дізнатися, які ваші диски - це запуск fdisk -l.

  4. Біжи grub2-mkconfig -o /boot/grub2/grub.cfg.

Пам'ятайте, що ваші команди можуть дещо відрізнятися. grub2-mkconfigможе бути grub-mkconfigі так далі (це був мій випадок у BunsenLabs Linux).


Майте на увазі, що я використовував FreeBSD з UFS замість ZFS на цій машині. Представлене рішення не працює для установ на базі ZFS з того, що я чув.


1

У вікі Arch Arch є дуже приємне пояснення того ж. Він керується нормальним способом, тобто прямим завантаженням ОС, а також завантаженням ланцюга.

Однак не слід забувати про те, sudo grub-mkconfig -o /boot/grub/grub.cfgщоб здійснити зміни.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.