Erzeuge boot environments nach einer Installation

bsd4me

Well-Known Member
Hi,
ich habe da mal eine Frage: kann man boot environments auch nachträglich nach einer Installation einbauen? Ziel ist ein bereits lauffähiger Server. Ich meine, dass sollte irgendwie machbar sein - aber vielleicht hat jemand Infos darüber - das wäre super :)
VG Norbert
 
Ich kann jetzt nicht für alle Fälle eine Aussage machen, da ich das nur ein System hatte, wo das eigentliche System auf einer geli-verschlüsselten Partition lag, das mit FreeBSD 10.x installiert wurde. Da ging es nicht. Das lag daran, dass dort ein bootpool und ein zroot Pool für das eigentliche System angelegt wurden. Boot Environments benötigen aber nur den zroot Pool, um zu funktionieren. Das wurde mit FreeBSD 11.0 eingeführt. Aber wie gesagt, da ich meine Systeme immer auf einer verschlüsselten Partition betreibe, kann ich nicht sagen, wie das bei unverschlüsselten Installationen ist.
 
das klingt gut - danke Dir!!

Also ich habe jetzt folgende Konfiguration

# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zroot 63.5G 14.8T 8.48G legacy
zroot/local 55.0G 13.9T 55.0G /local

Dann müsste man die Dateisysteme ROOT und ROOT/default unter zroot anlegen:

zfs create zroot/ROOT
zfs create zroot/ROOT/default


bei mir liegen alle Verzeichnisse wie /bin, /sbin, /mnt, /var direkt unter zroot (also unter /). Die weiteren lokalen Daten wie jails, datenbanken etc... immer irgendwo unter /local. Wie dem auch sei, dann kopiere ich / (also zroot) nach zroot/ROOT/default - wie macht man das am besten? Ausserdem müsste man ja den mountpint von zroot/ROOT/default auf / oder legacy legen, oder? dann sollte ja alles für "default" vorbereitet sein, oder? Wenn alles klappt, müsste ich noch das ursprünglich unter zroot bzw / löschen...

Wäre das in etwa korrekt so?

VG Norbert
 
Ja, das ist korrekt. Zum Schluss musst du noch das Boot-Dataset setzen: zpool set bootfs=zroot/ROOT/default zroot. Sonst findet der Loader das Root-Dateisystem nicht. Alternativ müsste auch einmal bectl activate default gehen. Zum Kopieren der sicherste Weg, eine Pipe mit tar, da tar anders als z.B. rsync auch Hardlinks sauber auflöst. tar ist notorisch kompliziert, daher kein fertiges Kommando, aber grob sowas: tar cf - /bin | tar xpf -
 
Zurück
Oben