現在、コンピューターにWindows7とUbuntu11.04(Natty)がインストールされています。また、FreeBSD liveUSB(またはインストーラー、わからない。imgをUSBスティックにdd
edしただけ)を作成し、ブートローダーをインストールせずにインストールしました(GRUB 2、そして私はGRUB 2はほとんど何でも起動できるはずです)と思いました。FreeBSDには独自のパーティションがあり、その中にFreeBSDパーティションがあります(おそらくスライスと呼ばれますか?)インストーラーによって自動的に割り当てられたように、私はすでにupdate-grub
を実行しようとしました-不明なLinuxであり、エントリーを追加しなかったと言っていました。
したがって、2つの質問:
/etc/grub.d/40_custom
に何を入れますか?3つの選択肢があります。GrubでFreeBSDを不明なOSとして扱い、FreeBSDのステージ1ブートローダーをチェーンロードするか、GrubにFreeBSDのステージ2ブートローダーをロードさせるか、またはGrubにFreeBSDカーネルをロードさせることができます。
これは最も簡単で信頼性の高い方法です。必要なのは、FreeBSDブートローダーを独自のスライスにインストールすることだけです(* BSDがスライスと呼ぶのは、LinuxとWindowsがパーティションと呼ぶものです)。次に、/etc/grub.d/30_os-prober
を実行すると、Grubが自動的に(update-grub
を介して)検出します。 /boot/grub/grub.cfg
のエントリは次のようになります(FreeBSDが/dev/sda2
a.k.a. /dev/wd0s2
にある場合):
menuentry "FreeBSD" {
set root=(hd0,2)
chainloader +1
}
Grub2 現在サポート中 すべての主要なBSDカーネル(コンピューターがBIOSから起動することを前提としています)。インストールスクリプト(Ubuntu 10.04に同梱されているもの、少なくとも11.04はチェックしていません)がないため、このルートを選択する場合は、/etc/grub.d/40_Custom
を使用して独自のエントリを追加する必要があります。
以下はサンプルエントリです FreeBSDフォーラムのDavid Marecから 。私はそれらをテストしていませんが、もっともらしいように見えます。最良の方法は、FreeBSDステージ2ブートローダーをロードすることのようです。 FreeBSDのインストール場所は、ディスク番号、スライス番号、パーティションa
として指定できます。
menuentry "FreeBSD (/boot/loader)" {
insmod ufs2
set root=(hd0,1,a)
kfreebsd /boot/loader
}
または searching 特定のUUID、ファイル、またはラベルを持つファイルシステム:
menuentry "FreeBSD (/boot/loader)" {
insmod ufs2
search --no-floppy --file /boot/loader
kfreebsd /boot/loader
}
特定のUUID、ファイル、またはラベルでファイルシステムを検索する:
menuentry "FreeBSD (/boot/loader)" {
insmod ufs2
search --no-floppy --file --set=root /boot/loader
kfreebsd /boot/loader
}
または:
menuentry "FreeBSD (/boot/loader)" {
insmod ufs2
search --no-floppy --file /boot/loader --set=root /boot/loader
kfreebsd /boot/loader
}
update-grub
の実行を検討しましたか?これにより、GRUBシステムとそのアイテムのリストが自動的に更新されます。