So booten Sie FreeBSD, das in der zweiten Partition eines externen Laufwerks installiert ist

So booten Sie FreeBSD, das in der zweiten Partition eines externen Laufwerks installiert ist

Ich habe FreeBSD 9.1 auf der zweiten Partition einer externen Festplatte installiert und kann meinen Computer nicht davon booten. FreeBSD wurde mithilfe des FreeBSD-Memstick-Image installiert, das per DD auf einen USB-Stick kopiert wurde.

Die erste Partition ist eine NTFS-Partition, auf der sich mein Backup befindet. Als ich feststellte, dass ich eine FreeBSD-Installation brauche, habe ich die erste Partition (in Windows) „verkleinert“, um freien Speicherplatz für die Installation von FreeBSD zu erhalten, und dann FreeBSD installiert. Ich wurde nie gefragt, ob ich einen Bootmanager installieren soll.

Als ich das erste Mal versuchte zu booten, schlug es ohne Fehlermeldung fehl (vielleicht war kein Bootmanager installiert). Also bootete ich von meinem Flash-Laufwerk und führte den Befehl aus boot0cfg -B /dev/ad1)(ad1 bezieht sich auf die externe Festplatte). Beim Booten wird nun ein Menü wie das folgende angezeigt:

F1 Win
F2 FreeBSD
F5 First disk

und beim Drücken von F1 oder F2 erhalte ich die Fehlermeldung: „BOOTMGR fehlt“. Was könnte das Problem sein?

Bitte helfen Sie mir beim Booten meiner FreeBSD-Installation.

Antwort1

Beide Festplatten ad0 und ad1 müssen den Bootcode boot0 haben, und der Slice (MBR-Partition) von ad1, auf dem FreeBSD liegt, muss boot1 haben. Das ist etwas verwirrend, resultiert aber aus einer früheren architektonischen Entscheidung, BSD-Disklabels innerhalb von MBR-Partitionen zu verwenden.

Boot0 ist sehr klein und dynamisch, sodass die Bootloader anderer Betriebssysteme weiterlaufen können. Boot0 befindet sich grundsätzlich im MBR. Boot0 kann keine Disklabels lesen, lädt also nur die ersten Blöcke einer Partition (Slice) und springt, um diesen Code auszuführen.

Boot1 ist der Ort, an dem der FreeBSD-spezifische Code wirklich beginnt. Der Speicher wird in Modi eingerichtet, die für den FreeBSD-Kernel geeignet sind, und der Boot1-Code kann das BSD-Disklabel lesen, / finden und sogar das Dateisystem ausreichend lesen, um eine Kerneldatei nach Namen zu finden. Boot1 ist ziemlich kompliziert und erledigt eine Menge Dinge, darunter das Laden von weiterem Bootcode, Modulen und dem Kernel und das Starten der Kernel-Ausführung.

Ich vermute, dass Ihr Festplattenlayout ungefähr so ​​aussieht:

ad0 – interne Festplatte (boot0)
ad0s1 – erste und einzige Partition (Slice) der internen Festplatte, C:\

ad1 – externe Festplatte (boot0)
ad1s0 – eine FAT- oder NTFS-Partition (Slice) auf einer externen Festplatte, D:\
ad1s1 – FreeBSD-Partition (Slice) (boot1)
ad1s1a – FreeBSD /
ad1s1b – FreeBSD-Swap
ad1s1c – FreeBSD /usr
...

Ich habe notiert, wo Sie Boot0- und Boot1-Loader benötigen.

Wenn Sie dies manuell tun, lernen Sie wertvolle Dinge darüber, wie FreeBSD bootet. Als Nächstes folgen die Konfiguration der /boot/-Umgebung, das Ändern eines benutzerdefinierten Images und das Auswählen und Konfigurieren von Kernelmodulen, bevor der Kernel selbst geladen wird.

Ich vermute, Sie machen das hauptsächlich zu Lernzwecken und könnten daran interessiert sein, die Installation zu vereinfachen. NanoBSD ist einen Blick wert.

verwandte Informationen