freeBSD auf neuer SSD

myBSD

Member
Hallo Freunde,

ich musste mir eine neue SSD kaufen, weil die alte zu klein geworden ist.

Nun muss ich meine BSD Installation auf die neue SSD kopieren;
wie stelle ich das an ... ?

Danke für Eure Hilfe !
 
Nutzt du irgendwelche speziellen Features (z.B. Verschlüsselung)? Wenn du ZFS nutzt, kannst du mittels zfs send/receive deine Daten verschieben.
Du kannst deine Partitionen auch von Hand anlegen und dann die Daten rüber schaufeln (z.B. mit tar). Du kannst deine Daten aus deinem Backup einspielen.
 
Wenn du ohne besonderes Setup von SSD A auf SSD B migrieren willst, sollte es auch ein dd vom Livesystem, mit anschliesendem resize der Partitions/Filesysteme tun.
 
OK. Ich habe das gerade hinter mir und zuvor aufgeschrieben, wie ich es machen möchte. Dazu hatte ich erreichbare Dokumentation ausgewertet und für mich angepasst. Die befehle, die ich mir dazu ausgesucht hatte, habe ich nich fast ausnahmslos in einer Datei liegen und kopiere sie gleich mal her, ABER: ich bereinige die nicht. Sie waren für mich eher Leitfaden denn cp_n_paste -fähig. So wechsele ich zwischendurch mal die Device-Names, weil das eben Kopien zum jeweiligen Stand waren und du musst da jedenfalls aufpassen und für dich umdenken.
Was ich übertragen habe, war ein aktueller rekursiver snapshot und ich habe andere snapshots vorher gelöscht, weil ich nicht mit inkrementellen Übertragungen hantieren mochte. Ich wollte ja das laufende System übertragen.
Wichtig war mir außerdem, dem neuen Pool einen anderen Namen zu geben, als der vorhandene. Weil die auf dem gleichen PC liegen und ich schon sehr schlechte Erfahrung damit gemacht habe, wenn zwei Pools den gleichen Namen auf dem gleichen PC haben wollen.

Ähmm. Es ist vielleicht doch besser, wenn ich nicht alles in einem Rutsch herstelle, sondern Zeile für Zeile vorgehe.

Die neue Platte ist ada0 und sie ist leer. Der Quell-Pool ist PitPool und der neue soll PitsPool sein
einrichten
Code:
gpart create -s gpt ada0
freebsd-boot anlegen, der Label boot0 ist nicht notwendig
Code:
gpart add -t freebsd-boot -l boot0 -a4k -s 512k ada0
bootcode hinein schreiben
Code:
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
swap anlegen, Größe anpassen
Code:
gpart add -t freebsd-swap -l swap0 -b 1m -s 8g ada0
fredsd-zfs anlegen, Größe anpassen (etwas kleiner als Plattenplatz, es sollte noch ein wenig am Ende der Platte frei bleiben, der Label ist wieder optional
Code:
gpart add -t freebsd-zfs -l system0 -a 1m -s 235g ada0
Zpool kreieren, mein neuer Poolname ist PitsPool und ich kreierte auch gleich einen mirror, musste also die folgende Zeile verändern und deshalb solltest du damit besonders vorsichtig sein. Der angegebene Mountpoint wird automatisch erstellt (/tmp/PitsPool) und der kann natürlich auch anders heißen, logisch.
Code:
zpool create -R /tmp/PitsPool PitsPool /dev/ada0p3
ZFS-Eigenschaften für den neuen Pool setzen, halt meine Auswahl. Die muss dir nicht gefallen.
Code:
zfs set compression=lz4 PitsPool
zfs set checksum=fletcher4 PitsPool
zfs set atime=off PitsPool
Dann Daten kopieren, also aus dem aktuellen rekursiven snapshot, der bei mir
PitPool@backup hieß. Und Achtung auf den Unterschied in den beiden Pool-Namen.
Code:
zfs send -R PitPool@backup | zfs recv -Fduv PitsPool
Beim nächsten Befehl bin ich nicht mehr sicher, ich weiß, was er macht, aber ich weiß nicht, ob ich das machen musste. Ich habe ihn so in meiner Liste stehen
Code:
zpool set bootfs=<poolname>/ROOT/default <poolname>
Weil da <poolname> steht und ich das nicht mit tatsächlichem Namen gefüllt habe, bin ich mir etwas unsicher. Es wird jedenfalls erklärt, welches das Boot-fs sein soll und korrekt hätte ich da nutzen müssen:
Code:
zpool set bootfs=PitsPool/ROOT/default PitsPool
nun kann man das neue mounten
Code:
zfs mount PitsPool/ROOT/default
und editieren, also in meinem Fall etwa die loader.conf anpassen und dort den anpassen:
Code:
vfs.root.mountfrom="zfs:PitsPool/ROOT/default"

Dieser letzte Schritt war für mich wichtig, weil ich nicht nur den Namen des neuen Pools geändert habe, sondern auch einige weitere Details ändern musste oder wollte, etwa in der fstab wegen swap. Je nach deinen Verhältnissen, muss das nicht so sein.

Wohl vor allem wegen meiner eigenen Unsicherheit traute ich mich das zunächst nicht ernsthaft, sondern nahm eine externe Platte und übte damit. Erst, als ich dort einen "Klon" meines laufenden Systems drauf hatte, den ich auch (an einem anderen PC) erfolgreich booten konnte, machte ich mich daran, die neuen Platten zusätzlich einzubauen und das System zu übertragen.

Ausdrücklich warne ich davor, das oben hin kopierte als eine Anleitung zu begreifen. Die folgenden Links hatte ich während der gesamten Prozedur geöffnet und las jeden Befehl genau und mehrfach nach, um ihn auch zu verstehen, bevor ich ihn anwende. Es kann sein, dass ich nicht immer mein Script (also die Grundlage für die oben kopierten Befehle) auch ordentlich pflegte. Ein Beisiel nannte ich ja schon.

https://www.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/zfs-zpool.html
https://www.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/zfs-zfs.html
https://www.freebsd.org/cgi/man.cgi....1-RELEASE+and+Ports&arch=default&format=html
https://www.freebsd.org/cgi/man.cgi....1-RELEASE+and+Ports&arch=default&format=html
https://www.freebsd.org/cgi/man.cgi....1-RELEASE+and+Ports&arch=default&format=html
 
und natürlich brauchte ich ein wenig für den Beitrag oben und habe die vorherigen Posts deshalb nicht gesehen.

Bei mir ist nichts verschlüsselt.
 
nochmal kurz nach-gefasst: In meinem Beispiel oben hatte ich auch nicht eingefügt, den Pool wieder zu exportieren und zu umounten.
 
... vielen Dank ! wenn sich jetzt noch jemand findet, der mir das für meine, verschlüsselte BSD Installation übersetzt, bin ich sehr glücklich ...
 
Zurück
Oben