Aggiungi FreeBSD al menu di avvio di GRUB2


11

Ho Gentoo x64 installato con Grub2 sul mio disco MBR. Oggi ho installato FreeBSD x64 9.2. Ora sono su Gentoo e sto provando ad aggiungere FreeBSD grub2all'elenco dei menu.

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

Ho fatto quanto sopra su Gentoo e non ho trovato FreeBSD. La partizione nidificata di FreeBSD è attiva sda1e contiene freebsd-ufse freebsd-swappartizioni.

Come posso aggiungere FreeBSD a grub2?

Risposte:


9

Ecco il 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
l'hai generato con os-prober o l'hai fatto tu stesso. anche in quale file è entrata quella direttiva?
r004,

sda1 si traduce in hd0,1? è vero che grub2 parte da 1 non da 0?
r004,

2
No, questo / non è generato automaticamente. L'ho scritto in /etc/grub.d/40_custom, controlla questo: wiki.archlinux.org/index.php/…
uzsolt

1
Sì, (hd0,1) è sda1.
sciopero

il freebsd è in / dev / sda1 ma sda1 è una sezione di partizione (secondo la terminologia bsd); e contiene una /e una swappartizione. Come dovrei precedere allora?
r004,

4

Il mio obiettivo era: avviare FreeBSD 10 da Grub2 modificando 40_custom in /etc/grub.d

La mia configurazione: FreeBSD10 è sul quinto hdd del mio sistema (/ dev / sde sotto Linux, quindi hd4 per Grub2. Ricorda che in Grub2 hd inizia da hd0 per unità e partizioni da 1 e in poi, non zero). La partizione di root è la seconda (/ dev / sde2) poiché ho usato il partizionamento guidato di FreeBSD (usa l'intero disco) durante l'installazione (più semplice). Ricordando, cioè: set root = '(hd4,2)' per il quinto hdd e la seconda partizione.

info: (il chainloader +1 non è effettivamente richiesto! Quanto segue mi porta direttamente al Bootloader di FreeBSDs).

Per riassumere un po ': devi solo adattare set root = (x, x), non serve altro. Se vuoi avviare direttamente il kernel, le cose diventano un po 'più complesse rispetto alla voce qui sotto.

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

Sono stato un po 'deluso da os-prober che ha appena trovato' Unknown linux distribution su / dev / sde2 '

ps: non dimenticare 'update-grub' in seguito e Taddaa (si spera). :) Se qualcuno ci riesce, lanciami un messaggio, sarei felice di sentirti!


buono per la tabella delle partizioni gpt
r004

Che cosa è insmod part_gpt?
nessuno il

2

Fallo in questo ordine:

  1. Modifica la tua /etc/grub.d/40_custome aggiungi le direttive di uzsolt . Aggiungi la direttiva alla fine del file. Non eliminare nulla che è lì dentro .

  2. Assicurarsi che 40_customsia eseguibile. Altrimenti allora chmod u+x 40_custom.

  3. Ora fai questo per scrivere le modifiche grub.cfg.

    grub2-install /dev/sda 
    os-prober 
    grub2-mkconfig -o /boot/grub/grub.cfg
    
  4. Tada! Riavvia ora; dovresti avere FreeBSD nell'elenco del tuo SO nel menu di GRUB.

Per avere accesso alla partizione di partizione UFS è necessario:

  1. Modifica la configurazione del kernel per aggiungere UFS filesysteme UFS label.

  2. Quindi il make && make_modulestuo kernel.

  3. Installa il software del filesystem UFS .

  4. Montare il tuo UFS Slice sotto il tuo Linux:

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

2

Secondo questo sito :

  1. Avvia Linux.
  2. Crea un /boot/grub2/custom.cfgfile.
  3. Aggiungi queste righe al file creato:

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

    dove hd0,3significa che questo è il primo disco rigido e FreeBSD è sulla sua terza partizione (poiché i dischi sono numerati da 0 e le partizioni sono numerate da 1). Probabilmente dovrai regolare quei numeri. Un modo per scoprire quali sono i tuoi dischi è eseguire fdisk -l.

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

Ricorda che i tuoi comandi potrebbero essere leggermente diversi. grub2-mkconfigpotrebbe essere grub-mkconfige così via (questo era il mio caso su BunsenLabs Linux).


Ricorda che stavo usando FreeBSD con UFS invece di ZFS su questa macchina. La soluzione presentata non funziona per le installazioni basate su ZFS da quello che ho sentito.


1

La wiki di Arch Linux ha una bella spiegazione per lo stesso. Guida il modo normale, ovvero il caricamento diretto del sistema operativo e il caricamento a catena.

Tuttavia, non bisogna dimenticare di emettere sudo grub-mkconfig -o /boot/grub/grub.cfgper eseguire le modifiche.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.