Tambahkan FreeBSD ke menu boot GRUB2

11

Saya menginstal Gentoo x64 dengan Grub2 di drive MBR saya. Hari ini saya menginstal FreeBSD x64 9.2. Sekarang saya di Gentoo dan mencoba menambahkan FreeBSD ke grub2daftar menu.

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

Saya melakukan hal di atas pada Gentoo dan tidak menemukan FreeBSD. Partisi bersarang FreeBSD aktif sda1dan berisi freebsd-ufsserta freebsd-swappartisi.

Bagaimana saya bisa menambahkan FreeBSD grub2?

r004
sumber

Jawaban:

9

Ini milik saya:

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
}
uzsolt
sumber
1
apakah Anda menghasilkannya dengan os-prober atau Anda melakukannya sendiri. juga file mana arahan itu masuk?
r004
arti dari sda1 hd0,1? apakah benar grub2 mulai dari 1 bukan 0?
r004
2
Tidak, ini / bukan yang dihasilkan secara otomatis. Saya telah menulisnya di /etc/grub.d/40_custom, periksa ini: wiki.archlinux.org/index.php/…
uzsolt
1
Ya, (hd0,1) adalah sda1.
uzsolt
freebsd ada di / dev / sda1 tetapi sda1 adalah slice partisi (menurut terminologi bsd); dan itu berisi a /dan swappartisi. Bagaimana saya harus mendahului itu?
r004
4

Tujuan saya adalah: Boot FreeBSD 10 dari Grub2 dengan mengedit 40_custom di /etc/grub.d

Setup saya: FreeBSD10 adalah hdd kelima dari sistem saya (/ dev / sde di Linux, jadi hd4 untuk Grub2. Ingatlah bahwa di bawah Grub2 hd dimulai dari hd0 untuk drive, dan partisi dari 1 dan seterusnya, bukan nol). Partisi root adalah yang kedua (/ dev / sde2) karena saya telah menggunakan partisi FreeBSD (menggunakan seluruh disk) saat menginstal (paling sederhana). Ingat, yaitu: set root = '(hd4,2)' untuk hdd kelima dan partisi ke-2.

info: (chainloader +1 sebenarnya tidak diperlukan! Berikut ini membawa saya langsung ke FreeBSDs Bootloader).

Untuk meringkas sedikit: Anda baru saja menyesuaikan set root = (x, x), tidak ada lagi yang diperlukan. Jika Anda ingin mem-boot kernel secara langsung, segalanya menjadi sedikit lebih rumit daripada entri di bawah ini.

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

Saya sedikit kecewa dengan os-prober yang baru saja menemukan 'Distribusi linux tidak dikenal di / dev / sde2'

ps: jangan lupa 'update-grub' sesudahnya dan Taddaa (semoga). :) Jika seseorang berhasil, lemparkan saya pesan, saya akan senang mendengar dari Anda!

Emi
sumber
baik untuk tabel partisi gpt
r004
Apa insmod part_gpt?
noone
2

Lakukan dengan urutan ini:

  1. Edit Anda /etc/grub.d/40_customdan tambahkan arahan uzsolt . Tambahkan arahan di akhir file. Jangan hapus apa pun yang ada di sana .

  2. Pastikan 40_customdieksekusi. Jika tidak maka chmod u+x 40_custom.

  3. Sekarang lakukan ini untuk menulis perubahan grub.cfg.

    grub2-install /dev/sda 
    os-prober 
    grub2-mkconfig -o /boot/grub/grub.cfg
    
  4. Tada! Nyalakan ulang; Anda harus memiliki FreeBSD dalam daftar OS Anda di menu GRUB.

Untuk memiliki akses ke partisi slice UFS Anda, Anda harus melakukan hal berikut:

  1. Edit konfigurasi kernel Anda untuk menambahkan UFS filesystemdan UFS label.

  2. Kemudian make && make_moduleskernel Anda.

  3. Instal perangkat lunak sistem file UFS .

  4. Pasang UFS Slice Anda di Linux Anda:

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

Menurut situs ini :

  1. Boot Linux.
  2. Buat /boot/grub2/custom.cfgfile.
  3. Tambahkan baris ini ke file yang dibuat:

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

    di mana hd0,3artinya ini adalah hard drive pertama dan FreeBSD pada partisi ketiga (karena disk diberi nomor dari 0 dan partisi diberi nomor dari 1). Mungkin Anda harus menyesuaikan angka-angka itu. Salah satu cara untuk mengetahui apa disk Anda adalah menjalankan fdisk -l.

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

Ingatlah bahwa perintah Anda mungkin sedikit berbeda. grub2-mkconfigmungkin grub-mkconfigdan seterusnya (ini adalah kasus saya di BunsenLabs Linux).


Pikiran bahwa saya menggunakan FreeBSD dengan UFS, bukan ZFS pada mesin ini. Solusi yang disajikan tidak berfungsi untuk instalasi berbasis ZFS dari apa yang saya dengar.

Mateusz Piotrowski
sumber
1

The Arch Linux wiki memiliki penjelasan yang sangat bagus untuk hal yang sama. Ini memandu cara normal yaitu pemuatan OS langsung dan juga pemuatan rantai.

Namun, orang tidak boleh lupa mengeluarkan sudo grub-mkconfig -o /boot/grub/grub.cfguntuk melakukan perubahan.

xitij
sumber