FreeBSDをGRUB2ブートメニューに追加する


11

Gentoo x64をGrub2と共にMBRドライブにインストールしました。今日、私はFreeBSD x64 9.2をインストールしました。今私はGentooにいて、grub2メニューリストにFreeBSDを追加しようとしています。

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

Gentooで上記を実行しましたが、FreeBSDが見つかりませんでした。FreeBSDのネストされたパーティションがオンになっsda1ていてfreebsd-ufsfreebsd-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 2014年

sda1はどのように変換されhd0,1ますか?grub2が0ではなく1から始まるのは本当ですか?
r004 2014年

2
いいえ、これは自動生成されません。:私は/etc/grub.d/40_customにそれを書いてきました、このチェックwiki.archlinux.org/index.php/...
uzsolt

1
はい、(hd0,1)はsda1です。
uzsolt 2014年

freebsdは/ dev / sda1にありますが、sda1はパーティションスライスです(bsdの用語によると)。それはAが含ま/swapパーティションを。次にどうすればよいですか?
r004 14年

4

私の目標は:/etc/grub.dの40_customを編集してGrub2からFreeBSD 10を起動することでした。

私のセットアップ:FreeBSD10は私のシステムの5番目のhddにあります(Linuxでは/ dev / sde、したがってGrub2の場合はhd4。Grub2の下ではドライブのhd0から始まり、パーティションは0ではなく1から始まります)。ルートパーティションは2番目のパーティション(/ dev / sde2)です。これは、インストール中に(最も単純な)FreeBSDのガイド付きパーティション(ディスク全体を使用)を使用したためです。つまり、5番目のhddと2番目のパーティションにroot = '(hd4,2)'を設定します。

info:(chainloader +1は実際には必要ありません!以下は、私を直接FreeBSDブートローダーに連れて行きます)。

少し要約すると、set root =(x、x)を適応させるだけで、それ以上は必要ありません。カーネルを直接起動したい場合、以下のエントリよりも少し複雑になります。

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

「/ dev / sde2上の不明なLinuxディストリビューション」を見つけたos-proberに少しがっかりした

ps:後で 'update-grub'とTaddaa(うまくいけば)を忘れないでください。:)誰かが成功したら、私にメッセージを投げてください、私はあなたから聞いて幸せです!


gptパーティションテーブルに
最適

なにinsmod part_gpt
誰も

2

次の順序で実行してください。

  1. を編集して/etc/grub.d/40_customuzsoltのディレクティブ追加します。ファイルの最後にディレクティブを追加します。そこにあるものは何も削除しないでください

  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. 多田!今すぐ再起動してください。GRUBメニューのOSリストにFreeBSDがあるはずです。

UFSパーティションスライスにアクセスするには、次の操作を行う必要があります。

  1. カーネル構成を編集して、UFS filesystemおよびを追加しUFS labelます。

  2. 次にmake && make_modules、カーネル。

  3. UFSファイルシステムソフトウェアをインストールします

  4. Linuxの下にUFSスライスをマウントします。

    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は3番目のパーティションにあることを意味します(ディスクには0から番号が付けられ、パーティションには1から番号が付けられるため)。おそらく、これらの数値を調整する必要があります。ディスクが何であるかを確認する1つの方法は、実行することfdisk -lです。

  4. を実行しますgrub2-mkconfig -o /boot/grub2/grub.cfg

コマンドが少し異なる場合があることに注意してください。grub2-mkconfigなどの可能性がgrub-mkconfigあります(これはBunsenLabs Linuxでの私のケースでした)。


このマシンでは、ZFSではなくUFSを備えたFreeBSDを使用していたことに注意してください。提示されたソリューションは、私が聞いたところからのZFSベースのインストールでは機能しません。


1

アーチのLinuxのwikiは同じのための非常に素晴らしい説明があります。これは、通常の方法、つまり、OSの直接ロードとチェーンロードをガイドします。

ただし、sudo grub-mkconfig -o /boot/grub/grub.cfg変更をコミットするために発行することを忘れてはなりません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.