GRUB2を使用してMBRからFreeBSDとPC-BSDをデュアルブートする方法は?

GRUB2を使用してMBRからFreeBSDとPC-BSDをデュアルブートする方法は?

マイコンピュータには、異なるパーティションに複数のオペレーティングシステムがインストールされています。

  1. FreeBSD
  2. PC-BSD
  3. ソラリス
  4. 拡張パーティション
  5. /-Linux-Mint パーティション
  6. Linux - ミント交換
  7. Linux-Mint の場合 /home
  8. / - Linux CentOS用パーティション(およびすべて)

私の基本的なオペレーティングシステムはUbuntuから派生したLinux-Mintです。

GRUB2をMBRにインストールしましたが、GRUBはLinux-Mintインストール(/boot/grubなど)のデータを使用します。

FreeBSDとPC-BSDの両方は、パーティションに独自の2段階ブートローダを持っています。 Solarisにはパーティションに独自のGRUBインストールがあります(2番目のステップブートローダとして機能し、他のSolarisカーネルから選択できます)。 Linux-MintとCentOSはMBRのGRUBから起動します。

+++

私の問題はFreeBSDとPC-BSDです。彼らはうまくいきません!両方のBSDインストールのGRUBエントリに別のルートパーティションなどを指定しても、GRUBメニューからFreeBSDを選択するかPC-BSDを選択しても、同じパーティション(FreeBSDまたはPC-BSD)が起動します。

起動* BSDは3段階のプロセスのようです。 MBRローダー(ステップ1)は、ステップ2でBSDパーティションをロードし、最後に実際のカーネル(ステップ3)をロードします。

最後に、* BSDブートに関してRTFMに縮小し、2番目のステップBSDブートローダー(両方のBSDパーティションにインストールされている)に関する次の情報を見つけました。

  • パーティションテーブルにアクティブ(起動可能)とマークされたBSDパーティションがない場合、ローダは次の場所にあるBSDカーネルロードの3番目のステップを開始します。最初のBSDパーティションディスクから - 2番目のステップがロードされるBSDパーティションに関係なく。私の場合はそうです。いつもFreeBSDをロードします(最初のものなので)。
  • 一方、BSDパーティションがアクティブ(起動可能)とマークされている場合、これは3番目のステップでロードされたBSDカーネルになります。私の場合は、常にFreeBSDを使用するか、常にPC-BSDを使用します。

明らかに、この問題を解決する方法があります。おそらく2番目のステップをスキップし、GRUBに3番目のステップカーネルを直接ロードさせることもできます。その他カーネルは私の選択によって異なります...それとも、2番目のステップのいくつかの特別なパラメータ、または構成または代替の2番目のステップローダーですか?ここで同様の問題が発生し、解決した人はいますか?

PS:MBRにGRUBをインストールすると、FreeBSD(およびPC-BSD)インストールの最初のステップブートローダは無視されます。しかし、私が知っている限り、問題は2番目のステップローダーにあるので、FreeBSDの最初のステップを使用すると私の問題が解決されるとは思わない。

答え1

まず、4つのオペレーティングシステムがあり、それほど遠くないのでMBRを使用しません。 /boot パーティションを拡張パーティションではなくプライマリパーティションにする必要があります。したがって、SolarisインストールまたはLinuxインストールを放棄します。 GRUB2を使用すると、FreeBSD(またはPC-BSD ...何の違いもありません)で起動するのは簡単です。 「set root=...」を定義し、「kfreebsd /boot/loader」と言います。あなたのタイプはGUID / GPTパーティションテーブルを使用し、すべてのパーティションをこのテーブルに分割することもできます。これにより、追加のBSDスライスは必要ありません。

関連情報