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
に追加するにはどうすればよいですか?
これが私のものです:
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
}
私の目標は:/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(うまくいけば)を忘れないでください。 :)誰かが成功した場合、私にメッセージを投げてください、私はあなたから聞いて幸せです!
/etc/grub.d/40_custom
とzsoltのディレクティブを追加を編集します。ファイルのendにディレクティブを追加します。 そこにあるものは何も削除しないでください。
40_custom
が実行可能であることを確認してください。そうでない場合はchmod u+x 40_custom
。
これを行って、grub.cfg
に変更を書き込みます。
grub2-install /dev/sda
os-prober
grub2-mkconfig -o /boot/grub/grub.cfg
多田!今すぐ再起動してください。 GRUBメニューのOSリストにFreeBSDがあるはずです。
カーネル構成を編集して、UFS filesystem
とUFS label
を追加します。
次に、カーネルをmake && make_modules
します。
UFSファイルシステムソフトウェアをインストールします。
Linuxの下にUFSスライスをマウントします。
Sudo mkdir /mnt/freebsd && Sudo mount -r -t ufs -o ufstype=ufs2 /dev/sda1 /mnt/freebsd
このサイト によると:
/boot/grub2/custom.cfg
ファイルを作成します。作成したファイルに次の行を追加します。
menuentry "FreeBSD" {
set root='(hd0,3)'
kfreebsd /boot/loader
}
ここで、hd0,3
は、これが最初のハードドライブであり、FreeBSDが3番目のパーティションにあることを意味します(ディスクには0から番号が付けられ、パーティションには1から番号が付けられるため)。おそらく、これらの数値を調整する必要があります。ディスクが何であるかを確認する1つの方法は、fdisk -l
を実行することです。
grub2-mkconfig -o /boot/grub2/grub.cfg
を実行します。
コマンドが少し異なる場合があることに注意してください。 grub2-mkconfig
はgrub-mkconfig
などになる可能性があります(これはBunsenLabs Linuxでの私のケースです)。
このマシンでは、ZFSではなくUFSでFreeBSDを使用していたことに注意してください。提示されたソリューションは、私が聞いたことから、ZFSベースのインストールでは機能しません。
Arch Linux wiki は、これについて非常に素晴らしい説明があります。これは、通常の方法、つまりOSの直接ロードとチェーンロードをガイドします。
ただし、変更をコミットするにはSudo grub-mkconfig -o /boot/grub/grub.cfg
を発行することを忘れないでください。