Agregar FreeBSD al menú de arranque GRUB2


11

Tengo Gentoo x64 instalado con Grub2 en mi unidad MBR. Hoy instalé FreeBSD x64 9.2. Ahora estoy en Gentoo e intento agregar FreeBSD a la grub2lista del menú.

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

Hice lo anterior en Gentoo y no encontró FreeBSD. La partición de FreeBSD es anidada en sda1y contiene freebsd-ufsy freebsd-swapparticiones.

¿Cómo podría agregar FreeBSD grub2?

Respuestas:


9

Aquí esta el mio:

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
¿Lo generó con os-prober o lo hizo usted mismo? ¿también en qué archivo entró esa directiva?
r004

Cómo se traduce el sda1 hd0,1? ¿Es cierto que grub2 comienza desde 1 no desde 0?
r004

2
No, esto / no se genera automáticamente. Lo escribí en /etc/grub.d/40_custom, verifique esto: wiki.archlinux.org/index.php/…
uzsolt

1
Sí, (hd0,1) es sda1.
uzsolt

el freebsd está en / dev / sda1 pero el sda1 es un segmento de partición (según la terminología de bsd); y contiene una /y swappartición. ¿Cómo debo preceder entonces?
r004

4

Mi objetivo era: Arrancar FreeBSD 10 desde Grub2 editando 40_custom en /etc/grub.d

Mi configuración: FreeBSD10 está en el quinto disco duro de mi sistema (/ dev / sde en Linux, entonces hd4 para Grub2. Recuerde que en Grub2 hd comienza desde hd0 para unidades y particiones desde 1 en adelante, no cero). La partición raíz es la segunda (/ dev / sde2) ya que utilicé la partición guiada de FreeBSD (uso del disco completo) durante la instalación (la más simple). Recordando, es decir: establecer root = '(hd4,2)' para el quinto disco duro y la segunda partición.

info: (chainloader +1 en realidad no es necesario! Lo siguiente me lleva directamente a FreeBSDs Bootloader).

Para resumir un poco: solo tiene que adaptar set root = (x, x), no se necesita nada más. Si desea iniciar el kernel directamente, las cosas se vuelven un poco más complejas que la entrada a continuación.

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

Me decepcionó un poco os-prober que acaba de encontrar 'Distribución desconocida de Linux en / dev / sde2'

ps: no olvides 'update-grub' después y Taddaa (con suerte). :) Si alguien tiene éxito, envíame un mensaje, ¡me encantaría saber de ti!


bueno para la tabla de partición gpt
r004

¿Qué es insmod part_gpt?
nadie

2

Hazlo en este orden:

  1. Edite su /etc/grub.d/40_customy agregue las directivas de uzsolt . Agregue la directiva al final del archivo. No elimines nada que esté allí .

  2. Asegúrese de que 40_customsea ​​ejecutable. Si no entonces chmod u+x 40_custom.

  3. Ahora haga esto para escribir los cambios grub.cfg.

    grub2-install /dev/sda 
    os-prober 
    grub2-mkconfig -o /boot/grub/grub.cfg
    
  4. Tada! Reinicie ahora; deberías tener FreeBSD en tu lista de SO en el menú de GRUB.

Para tener acceso a su división de partición UFS, debe hacer lo siguiente:

  1. Edite la configuración de su núcleo para agregar UFS filesystemy UFS label.

  2. Entonces make && make_modulestu núcleo.

  3. Instale el software del sistema de archivos UFS .

  4. Monta tu UFS Slice bajo tu Linux:

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

2

De acuerdo con este sitio :

  1. Arranque Linux.
  2. Crea un /boot/grub2/custom.cfgarchivo.
  3. Agregue estas líneas al archivo creado:

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

    donde hd0,3significa que este es el primer disco duro y FreeBSD está en su tercera partición (ya que los discos están numerados de 0 y las particiones están numeradas de 1). Probablemente tendrás que ajustar esos números. Una forma de averiguar cuáles son sus discos es ejecutarlos fdisk -l.

  4. Ejecutar grub2-mkconfig -o /boot/grub2/grub.cfg.

Recuerde que sus comandos pueden ser ligeramente diferentes. grub2-mkconfigpodría ser grub-mkconfigy así sucesivamente (este fue mi caso en BunsenLabs Linux).


Tenga en cuenta que estaba usando FreeBSD con UFS en lugar de ZFS en esta máquina. La solución presentada no funciona para instalaciones basadas en ZFS por lo que he escuchado.


1

El wiki de Arch Linux tiene una muy buena explicación para lo mismo. Guía la forma normal, es decir, la carga directa del sistema operativo y la carga en cadena.

Sin embargo, uno no debe olvidar emitir sudo grub-mkconfig -o /boot/grub/grub.cfgpara confirmar los cambios.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.