Wie kann ich FreeBSD und PC-BSD im Dual-Boot-Modus starten – mit GRUB2 im MBR?

Wie kann ich FreeBSD und PC-BSD im Dual-Boot-Modus starten – mit GRUB2 im MBR?

Ich habe einen Computer mit mehreren Betriebssystemen, die auf verschiedenen Partitionen installiert sind:

  1. FreeBSD
  2. PC-BSD
  3. Solaris
  4. Erweiterte Partition
  5. / -Partition für Linux-Mint
  6. Swap für Linux-Mint
  7. /home für Linux-Mint
  8. / -Partition (und alles) für Linux CentOS

Mein Hauptbetriebssystem ist Linux-Mint, ein Ubuntu-Derivat.

Ich habe GRUB2 im MBR installiert und es (GRUB) verwendet Daten aus der Linux-Mint-Installation (/boot/grub usw.).

FreeBSD und PC-BSD haben jeweils ihren eigenen Bootloader der zweiten Stufe in ihrer Partition. Solaris hat seine eigene GRUB-Installation in seiner Partition (die als Bootloader der zweiten Stufe fungiert und es mir ermöglicht, zwischen verschiedenen Solaris-Kerneln auszuwählen). Linux-Mint und CentOS werden vom GRUB im MBR gebootet.

+++

Mein Problem ist, dass FreeBSD und PC-BSD einfach nicht gut miteinander funktionieren! Obwohl ich in den GRUB-Einträgen für die beiden BSD-Installationen unterschiedliche Root-Partitionen usw. angegeben habe, wird immer dieselbe (entweder FreeBSD oder PC-BSD) gebootet, unabhängig davon, ob ich im GRUB-Menü FreeBSD oder PC-BSD ausgewählt habe.

Das Booten von *BSD scheint ein dreistufiger Prozess zu sein: Der MBR-Loader (1. Stufe) lädt eine 2. Stufe in die BSD-Partitionen, die schließlich den eigentlichen Kernel lädt (3. Stufe).

Als ich mich schließlich dazu durchringen konnte, das Handbuch zum Booten in *BSD zu lesen, entdeckte ich die folgende Kleinigkeit über den BSD-Bootloader der 2. Stufe (der auf beiden meiner BSD-Partitionen installiert ist):

  • Wenn keine BSD-Partition als aktive (bootfähige) Partition in der Partitionstabelle markiert ist, dann beginnt der Loader mit dem Laden der 3. Stufe des BSD-Kernels, der sich im1. BSD-Partitionauf der Platte -- egal von welcher BSD-Partition die 2. Stufe geladen wurde. In meinem Fall wird esstetsLaden Sie FreeBSD (da es das erste ist).
  • Wenn dagegen eine BSD-Partition als aktiv (bootfähig) markiert ist, ist dies der BSD-Kernel, der als 3. Stufe geladen wird. In meinem Fall erhalte ich entweder immer FreeBSD oder immer PC-BSD.

Es muss doch einen Weg geben, das zu umgehen?! Vielleicht könnte man die zweite Stufe irgendwie überspringen und GRUB den Kernel der dritten Stufe direkt laden lassen – und dannandersKernel, je nach meiner Wahl ... Oder vielleicht einige spezielle Argumente oder Konfigurationen für die 2. Stufe – oder vielleicht ein alternativer Loader für die 2. Stufe? Ist hier jemand auf ein ähnliches Problem gestoßen und hat es gelöst?

PS: Die Installation von GRUB im MBR überschrieb den von FreeBSD (und PC-BSD) installierten Bootloader der ersten Stufe. Ich bezweifle jedoch, dass die Verwendung der ersten Stufe von FreeBSD mein Problem gelöst hätte, da das Problem (soweit ich weiß) der Loader der zweiten Stufe ist.

Antwort1

Erstens würde ich MBR nicht verwenden, da Sie dort 4 Betriebssysteme haben und das nicht weit reichen wird. Sie müssen die /boot-Partition als primäre Partition haben und nicht als erweiterte Partition. Sie werfen also entweder die Solaris-Installation oder die Linux-Installation weg. Das Booten in FreeBSD (oder PC-BSD ... was auch immer, macht keinen Unterschied) mit GRUB2 ist einfach. Sie definieren einfach Ihr „set root=...“ und sagen dann „kfreebsd /boot/loader“ und schon sind Sie fertig. Für Ihren Typ würde ich eine GUID/GPT-Partitionstabelle verwenden, dort können Sie auch alle Partitionen darin aufteilen, Sie brauchen dann keine zusätzlichen BSD-Slices.

verwandte Informationen