FreeBSD Installation auf ausgewählten internem NVMe Laufwerk

dev0

Rock Hopper
Ich habe einen Rechner mit mehreren internen NVMe SSD Laufwerken. Auf dem einem läuft Linux und auf den anderen habe ich meine Nutzdaten abgelegt. Auf einem dieser Laufwerke möchte ich jetzt gerne FreeBSD installieren und dann per UEFI Boot Menu zwischen den Systemen umschalten.

Dazu habe ich folgende Frage: Wie installieren ich FreeBSD in dieser Konfiguration am besten? Da das gesamte Laufwerk für FreeBSD vorgesehen ist würde ich im Installer gerne "Automatic root on ZFS" wählen, aber man kann nicht sehen, auf welchem Laufwerk der Installer FreeBSD installieren will, weil keinerlei Auswahlmöglichkeit besteht. Ich möchte natürlich vermeiden, daß meine Linux-Installation oder meine Daten Schaden nehmen, sondern genau das Laufwerk verwenden, das ich für die Installation vorgesehen habe.

Hat jemand einen Tip, wie eine solche Installation möglich einfach gelingen kann?
 

pit234a

Well-Known Member
Die nvme ausbauen auf der das Linux ist?
aber das ist ja nur die halbe Miete.
Linux-Systeme verlangen afaik einen Bootloader like GRUB2 und der müsste dann ja auch das FreeBSD starten. Ist nun die Linux-Platte weg, die womöglich den GRUB und die ESP enthält, wird FreeBSD zwar korrekt und mit eigener ESP installieren (wenn es sonst keine Probleme gibt) und danach auch booten, aber sobald man die Linux-Platte wieder einhängt, wird das eben nicht mehr gehen.
Oder vielleicht doch, nämlich über ein Boot-Auswahl-Menü des BIOS. Kann gehen, muss aber nicht.
Wie man GRUB2 ein vernünftiges Verhalten beibringen kann, ist mir nie ersichtlich gewesen. Zwar hatte ich einige Erfolge damit, aber mir war persönlich der Aufwand schließlich zu groß und ich mag eh keine Multiboot-Systeme. Lieber das neue System in eine VM und ausgiebig testen oder eben dort behalten. Da braucht man nicht erst neu zu booten, um mal was zu probieren.
 

serie300

Well-Known Member
aber das ist ja nur die halbe Miete.
Linux-Systeme verlangen afaik einen Bootloader like GRUB2 und der müsste dann ja auch das FreeBSD starten. ...
Nein, der Grub kann in der Linux Partition sein; bei UEFI müßte (Konjunktiv weil ich es nicht ausprobiert habe) einer der auswählbaren Bootlader sein. Aus Erfahrung würde ich auch sagen, die nicht benötigte NVME bei der FreeBSD Installation, wenn man sich nicht sicher ist, abzuhängen.
 

CommanderZed

OpenBSD User
Teammitglied
Nein, der Grub kann in der Linux Partition sein; bei UEFI müßte (Konjunktiv weil ich es nicht ausprobiert habe) einer der auswählbaren Bootlader sein. Aus Erfahrung würde ich auch sagen, die nicht benötigte NVME bei der FreeBSD Installation, wenn man sich nicht sicher ist, abzuhängen.

Genau, der Grub2 ist ja auf der Linux-SSD und der FreeBSD Loader auf FreeBSD-SSD - mit dem Boot-Menü vom UEFI wählt man halt mal die eine und mal die andere Platte aus - so mach ichs zb auf einem Gerät mit Windows und OpenBSD, ganz ohne "Gebastel"
 

mr44er

moderater Moderator
Teammitglied
aber man kann nicht sehen, auf welchem Laufwerk der Installer FreeBSD installieren will, weil keinerlei Auswahlmöglichkeit besteht.
Doch, ein Einzelgerät unter zfs ist ein stripe. In diesem Menü wählst du Pool Type/Disks -> Stripe -> ...

Aber1: Mit der Variante AutoZFS macht der Installer das ganze device platt.
Aber2: grub und efi sollten nebeneinander koexistieren können, sicher bin ich mir aber nicht. Auch nicht, ob die manuelle Partitionierung im Installer das hergibt. Erst recht nicht, wie und ob die bestehenden Partitionen nachträglich verändert werden können, dass am Ende noch alles ohne Datenverlust geht und wie man die Einträge in welchen Loader packt.

Häng trotzdem alle nicht benötigten Geräte ab, sicher ist sicher. Backup wieder reinpopeln dauert Zeit. Du hast doch aktuelle Backups, ODER? ;)
Unterm Strich sind solche Wünsche heikle Operationen und ohne Backup würde ich da gar nichts machen, da gibts zuviele Fallstricke.
Ungeprüft, aber mal als Anregung:

Meine Antwort auf multiboot-Krams ist immer eine weitere Platte oder noch besser: Virtualisierung.
Damit hast du alles sauber getrennt, allgemein wenig Risiko und kannst vom BIOS her auswählen.

Szenario: Du hast grub das FreeBSD beigebracht, alles läuft wie es soll. Es vergeht ein Monat, du arbeitest an einem Projekt unter Linux, hast updates samt reboot alle paar Tage brav installiert. Jetzt hast du wieder Zeit für FreeBSD, aber es bootet nicht mehr. :ugly:
Klar, wenn man sich zu dem multiboot mal reingefuchst hat, sicher ein Klacks das zu reparieren, aber es ist unerwartet, nervig und kostet Zeit. Vor allem will man wissen, welches update jetzt update-grub getriggert hat und warum und wie man das in Zukunft vermeidet.
 

Alexco

Well-Known Member
Ich nehme bei Multiboot-Szenarien immer einen Bootmanager, nämlich rEFInd. Das spart meine Zeit und Nerven, denn ich h**se grub. Ich kam noch nie damit klar und jetzt setzt bei mir der Altersstarrsinn ein, ich will grub auch nicht mehr verstehen.
Allerdings hat der EFI-Loader von FreeBSD das Problem, dass er die Root-Partition nur auf der Platte findet, von der er auch gestartet wird, d.h. man braucht bei mehreren Platten/SSDs halt auch mehrere EFI-Partitionen.
 

CommanderZed

OpenBSD User
Teammitglied
Man kann auch über Einträge in das NVRAM das UEFI als Boot-Manager nutzen und da relativ beliebige partionen oder .efis etc laden.

Das erstmalige Editieren ist aber nen ziemlicher Krampf.

So habe ich gerade auf einem anderen Notebook Multiboot von Encrypted OpenBSD und Bitlockered Windows realisiert - vorteil: Man braucht keinen speziellen Boot-Manager oder so, jedes OS arbeitet "transparent" im Boot "ganz normal" für sich.
 

Alexco

Well-Known Member
Ja, das ist bei einem guten UEFI-BIOS die beste Methode. Leider mag das mein UEFI-BIOS hier überhaupt nicht, es würfelt das immer durcheinander, sobald man mal von USB bootet.
 

dettus

Bicycle User
Ich kenne die Installation von FreeBSD leider nicht.
Kann man dort nicht einfach(tm) eine der beiden Platten zum Booten von FreeBSD auswaehlen?
Sollte der auf der nicht auch eine extra-EFI partition einrichten?

Und falls du GRUB doch etwas besser verstehen moechtest, vielleicht hilft dir Step 7 weiter:
 

pit234a

Well-Known Member
meine Kenntnisse sind bescheiden und deshalb womöglich meine Erfahrungen damit umso ruinöser verlaufen und haben schließlich dazu geführt, dass ich multiboot gar nicht will.
Aber: natürlich will ich auch mal ein System von einem USB-Stick booten oder von einer DVD.
Solche Szenarien verstehe ich nicht unter multiboot. Es gibt allerdings sehr wohl PCs, die ein solches Booten "am installierten System vorbei", nahezu unmöglich machen. Meine Erinnerung ist getrübt, aber ich meine mal einen Laptop von HP bekommen zu haben, auf dem ich zur Fehlersuche ein Knoppix booten wollte und daran schier verzweifelt bin. Das Ding wollte unbedingt nur Windows (10) booten und ich hätte es am liebsten gleich an die Wand geknallt.
Das soll nur der Vervollständigung möglicher Szenarien dienen.

Wenn man von seinem BIOS (UEFI) bereits einen "Boot-Manager" geboten bekommt, mit welchem man vor dem eigentlichen Booten bereits ein Medium auswählen kann (wie das früher gute Sitte war und zumindest im BIOS frei gegeben werden konnte), dann ist es in der Regel recht einfach mehrere Systeme unabhängig voneinander zu installieren und auch zu benutzen. Man wählt hier nicht das System oder dessen Bootmechanismus, sondern ein Medium und das kann auch eine andere interne Platte sein. Man sieht hier nicht ein System mit Namen und muss sich deshalb merken, auf welcher Platte denn was installiert ist.
Schwierig könnte es dann werden, wenn etwa zwei recht identische FreeBSD-Installationen vorhanden sind. Denn der FreeBSD-Loader, der aus der ESP gestartet wird, "sucht nach FreeBSD" und könnte dann auch die zweite Installation finden und womöglich booten. So hatte ich meine erste Umstellung auf UEFI-Boot realisiert: die ESP legte ich auf einen USB Stick, bootete zunächst von diesem, der dann das FreeBSD auf den internen Platten fand und startete.
Schwierig könnte es eben auch dann werden, wenn man auf dem jeweiligen Medium einen SW-Bootmanager (etwa GRUB2) verwendet und dieser seine Magie frei entfaltet und nach alternativen Systemen sucht, um diese im Auswahlmenü anbieten zu können. So könnte dort dann (konstruiert, nicht erlebt) plötzlich ein Windows oder Solaris auftauchen, das er glaubt erkannt zu haben und wenn man das booten möchte, kann es dann ein vollkommen anderes System sein und vielleicht auch gar nicht booten.

Wenn einem sein System aber gar keinen BIOS-Boot-Manager anbietet, ist man womöglich auf einen SW-Boot-Manager angewiesen, den man entsprechend konfigurieren müsste und wenn das dann GRUB2 ist, dann lies mal bei dettus nach.

Was wir gar noch nicht besprochen hatten, sind so unterschiedliche Hürden wie Secure-Boot oder dass manche BIOSe gar nicht mehr den (P)MBR beachten, andere aber schon, aber dann manchmal nur innerhalb dieser Grenzen booten können und so weiter.
Kurzum: multiboot ist ein echtes Elend!
Und außer diesen Schwierigkeiten hat es auch immense Nachteile, wie etwa den, dass man das System ja immer erst starten muss, um es zur Verfügung zu haben. Zwar benutze ich selbst (aus Kompatibilitätsgründen) nur VirtualBox und ausgerechnet hier läuft meiner Erfahrung nach (mit älteren Versionen) der FreeBSD-Gast nicht so gut (integriert), aber zum kennen lernen und gelegentlich mal was machen langt das allemal.
 

CommanderZed

OpenBSD User
Teammitglied
Schwierig könnte es dann werden, wenn etwa zwei recht identische FreeBSD-Installationen vorhanden sind. Denn der FreeBSD-Loader, der aus der ESP gestartet wird, "sucht nach FreeBSD" und könnte dann auch die zweite Installation finden und womöglich booten. So hatte ich meine erste Umstellung auf UEFI-Boot realisiert: die ESP legte ich auf einen USB Stick, bootete zunächst von diesem, der dann das FreeBSD auf den internen Platten fand und startete.

Hier muss ich kurz wiedersprechen, anders als noch zu BIOS Zeiten kann UEFI durchaus auch verschiedene Boot-Loader von der gleichen "Festplatte" Booten - dazu muss man aber uu die Boot-Einträge im NVRAM eintragen.

So hab ich das neulich auch mit OpenBSD gemacht, da ist dann einmal Windows halt drinn und einmal nen verweis zur .efi datei von OpenBSD aufder EFI-Partition.

Ich glaube dir das es das gibt, aber ich hatte bislang noch kein Uefi-Gerät ohne Auswahl-Menü in der Hand gehabt.

Manchmal ist das aber nicht so offensichtlich - bei MS-Surface-Geräten muss man zb die "Lauter" Taste beim einschalten Gedrückt halten.

/edit: Kleines PS: Ob IDE, SATA, NVME oder USB-Stick ist dem Boot-Prozess da für die meisten Szenarien eigentlich egal.
 

pit234a

Well-Known Member
Hier muss ich kurz wiedersprechen, anders als noch zu BIOS Zeiten kann UEFI durchaus auch verschiedene Boot-Loader von der gleichen "Festplatte" Booten - dazu muss man aber uu die Boot-Einträge im NVRAM eintragen.
jaja, das meinte ich so ungefähr, mit nicht ganz so einfach. ;)

Trotzdem denke ich, dass etwa der FreeBSD-Boot-Loader aus der ESP starten kann und sowohl ein FreeBSD auf dieser Platte, als auch ein solches auf der nächsten Platte finden könnte (was nun beliebig verschoben werden kann). Er wird das zuerst gefundene, also das naheliegende FreeBSD booten.
Ich will damit aber nicht Panik verbreiten, nur darauf hinweisen, dass man womöglich etwas mehr lesen und auch durchführen muss, um sein eigenes Szenario sicher um zu setzen.
Und auch das nur womöglich, wenn denn....
 

dev0

Rock Hopper
Um das Thema abzuschließen, wollte ich mitteilen, wie ich die Installation durchgeführt habe, um zu einem funktionierenden System zu kommen. Die größte Schwierigkeit dabei war, herauszufinden, wie das Ziellaufwerk der Installation unter FreeBSD heißt. Nachdem ich das herausgefunden hatte, konnte die Installation starten. Dabei konnte ich nicht den Installer benutzen, sondern musste alle Schritte manuell aus dem Live System heraus durchführen. Zunächst habe ich folgendes Partitionsschema angelegt und den Bootcode in die entsprechende Partition installiert.

Code:
root@host:~ # gpart show nvd2
=>        40  1000215136  nvd2  GPT  (477G)
          40      409600     1  efi  (200M)
      409640         512     2  freebsd-boot  (256K)
      410152     4194304     3  freebsd-swap  (2.0G)
     4604456   995610720     4  freebsd-zfs  (475G)

Anschließend habe ich einen zpool auf der ZFS Partition erzeugt und die Dateisysteme darauf angelegt. Die installation erfolgt dann durch das Auspacken der Archive mittels tar. Der EFI Bootloader muß manuell auf die EFI Partition kopiert werden

Code:
root@host:~ # mkdir -p /mnt/efi/EFI/BOOT
root@host:~ # cp /boot/loader.efi  /mnt/efi/EFI/BOOT/BOOTX64.efi

Nachdem ich dann von Hand die /boot/loader.conf und die /etc/rc.conf angelegt und darin die für mein System nötigen Einstellungen vorgenommen hatte, konnte das System neu gestartet werden. Die Auswahl des zu startenden Betriebssystem erfolgt ganz einfach über das Boot Menü der EFI Firmware. GRUB und Konsorten werden nicht benötigt.

Jetzt habe ich eine funktionierende FreeBSD Installation, die sich wunderbar mit dem installierten Linux verträgt und von der aus ich auf meine Nutzdaten problemlos zugreifen kann.
 
Oben