Howto: Das aktuelle Linux clonen/migrieren

    • Offizieller Beitrag

    Howto: Das aktuelle Linux clonen/migrieren

    Jeder hat diesen Moment mal vor sich: Der Speicherplatz wird knapp oder ein neuer Computer steht bereit und man möchte doch am liebsten sein aktuelles System übertragen.

    Dank der grossen Kompatibilität, stehen da auch nicht viele Hürden im Weg, auf den neuen Computer umzuziehen.


    Eine Möglichkeit ist natürlich ein aktuelles Backup des Systems z.b. mit Timeshift.

    Auch eine Software wie Clonezilla die eine volle Kopie via Image oder Netzwerkübertragung vollzieht ist eine Lösung.


    Gut zu Wissen: Räumt doch euer System vorher gründlich auf, entfernt unnötige Pakete und Downloads so dass sich die Datenmenge so klein wie möglich hält. Das spart nicht nur Zeit.
    Tipps bzw. Anleitungen zur Unterstützung: Datensystem aufräumen & alte Kernel entfernen. 8o

    1) Clonezilla

    Hier handelt es sich um eine clevere Software aus Taiwan die alles was man zum Backup/Clonen braucht über viele Jahre der Entwicklung verfeinert und verbessert hat.

    Man startet das Clonezilla Live Medium und stellt zu Beginn ein paar einfache Dinge wie z.b. Keyboard Layout und mögliche Netzwerkkonfiguration ein.


    Die populärste und schnellste Möglichkeit ist Clonen via Image auf eine separate Festplatte.


    Ihr benötigt folgende Dinge:

    - Das aktuelle Wissen der Gesamtgrösse eurer Systemplatte sowie Devicepfad (dev/sda, dev/sda1...)

    - Ein Clonezilla Live Medium

    - Eventuell ein Linux Live Medium (Linux Mint, Ubuntu etc.)

    - Eine leere externe Festplatte mit mindestens der Grösse von der Systemplatte (EXT4 formatiert! - Anleitung hier)


    Hinweis 1: Clonezilla berücksichtigt beim Wiederherstellen die Ursprungsgrösse der Partitionen/des Laufwerks. Das neue Laufwerk muss also mindestens die gleiche Grösse besitzen, damit ihr erfolgreich abschliessen könnt.


    Hinweis 2: Bei argen Schwierigkeiten/in der Not mit dem Platz auf der neuen Umgebung, könnt ihr mit dem Linux Live Medium und der Software geparted das alte Systemlaufwerk verkleinern.

    !Datenverlust droht bei diesem Vorgang, geht nicht zu weit runter beim Resize des Laufwerks/Partition!


    Falls das alles passen sollte, wählt ihr in den einfachen Menüs das lokale Clonen mit dem Ziel auf ein lokales Laufwerk. Die Auswahl dazu bekommt ihr dann im weiteren Bildschirm angezeigt.

    Nicht irritiert sein - eine kleine Auflistung erfolgt zuvor was Clonezilla im System erkannt hat. Dort werden auch die Partitionen angezeigt. Merkt euch eure Systempartition (dev/sdx .. dev/nvme...)


    Wähl dieses Laufwerk/Partition nun im nächsten Bildschirm aus, Clonzilla erfasst die Grösse, Layout (Grub) und prüft ggf. optional auf Fehler.

    Abschliessend wählt ihr das Ziellaufwerk für das Image aus (die externe Festplatte).


    Nach dem Bestätigen beginnt der Clonevorgang. Die Zeit die es circa bis zur Fertigstellung benötigt wird angezeigt.


    Die Wiederherstellung erfolgt im umgekehrter Reihenfolge von oben. Nur dass eben lokale Wiederherstellung sowie das kopieren eines lokalen Image gewählt wird.

    Hier muss der finale Vorgang vorher zweimal Bestätigt werden.

    Beim Herstellen auf einem neuen Computer, erledigt Clonezilla im ideal auch bereits die Anpassung der Bootvariablen (Grub), so dass ihr bei Abschluss den neuen Computer einfach durchstarten könnt.
    Beim Clonen auf dem bestehenden System auf ein neues Laufwerk spielt das keine Rolle.

    2) System selbst kopieren (rsync)

    Der Terminalkönig möchte sich vielleicht doch die Zeit nehmen und alles von Hand erledigen. 8)

    Umstand: Zwei Computer


    Ihr benötigt folgende Dinge:

    - Das aktuelle Wissen der Partitionen der aktuellen Systemplatte sowie Grösse und Devicepfade (dev/sda, dev/sda1...)

    - Zwei Linux Live Medien (Linux Mint, Ubuntu etc.)

    - Eine leere externe Festplatte mit mindestens der Grösse von der Systemplatte (EXT4 formatiert! - Anleitung hier)


    Startet euer altes System mit dem Linux Live Medium sowie das neue System mit einem Linux Live Medium.

    Gut zu Wissen: Wer einfach das System auf eine (externe) Platte kopieren möchte, spart sich natürlich den zweiten Start und überspringt die betreffenden Punkte.


    Erstellt auf dem neuen Computer mit gparted das gleiche Partitionslayout, wie euer altes bestehendes System aufzeigt. Erstellt einen Mountpunkt:

    Code
    mkdir /mnt/bcube
    mount /dev/sdaX /mnt/bcube


    Am alten bestehenden System:

    Öffnet das Terminal (root) und erstellt erstmal für jede vorhandene Partition einen Mountpunkt (Swap ignorieren):

    Code
    mkdir /mnt/bcube
    mount /dev/sdaX /mnt/bcube

    Die alten Hasen unter euch, haben vermutlich eine eigene Home Partition eingerichtet. Das würde dann eben so aussehen:

    Code
    mkdir /mnt/home
    mount /dev/sdaZ /mnt/home
    
    etc.

    Im weiteren Schritt mounted ihr nun die externe Festplatte:

    Code
    mkdir /mnt/usb
    mount /dev/sdbX /mnt/usb

    Wer mehr als eine Partition hat, muss vorher die externe Festplatte entsprechend dem vorhandenen Layout des Systemlaufwerks anpassen.


    Nun startet ihr den Kopiervorgang jeweils mit:

    Code
    rsync -avHX -exclude ‘mnt’ /mnt/bcube/ /mnt/usb/bcube/

    Wenn der Vorgang abgeschlossen ist, hängt ihr die Partitionen der externen Festplatte aus, steckt sie ab und steckt sie beim neuen System ein.

    Nun mounted ihr die externe Festplatte/Partionen erneut (wie oben angegeben) und startet das kopieren mit:

    Code
    rsync -avHX -exclude ‘mnt’ /mnt/usb/bcube/ /mnt/bcube/

    Gut zu Wissen: -a behält die Dateiattribute bei (Besitzer und Zugriffsrechte), -v detaillierte Ausgabe des Vorgangs, -H behält Hardlinks, -X behält erweiterte Dateiattribute bei.


    Sobald auch dieser Schritt abgeschlossen ist, bleibt im Terminal. Wir müssen nun die Variablen für Grub einholen und dann anpassen. Listet die UUID der Partitionen des neuen Systems auf mit:

    Code
    blkid /dev/sdaX
    oder
    ls -l /dev/disk/by-uuid/

    Lasst das Fenster offen und schaut nach der UUID von / sowie von eurer Swap Partition. Wer mehr als eine Partition hat, muss hier entsprechend mehr auslesen.

    Öffnet ein neues Terminalfenster (root). Wir editieren die fstab Datei wie folgt:

    Code
    nano /mnt/bcube/etc/fstab

    Ersetzt die alten UUIDs mit denen der ausgelesenen von eben. Achtet auf die Zugehörigkeit der jeweiligen Partition.


    Jetzt folgt der finale Abschluss und wir lassen Grub die Werte auslesen und die Bootconfig anpassen:

    Code
    mount --bind /proc /mnt/bcube/proc
    mount --bind /sys /mnt/bcube/sys
    mount --bind /dev /mnt/bcube/dev
    mount --bind /run /mnt/bcube/run

    Damit wir nun in den MBR sowie die Grubconfig schreiben können wechseln wir die root Umgebung:

    Code
    chroot /mnt/bcube

    Führt nun folgende Befehle aus:

    Code
    grub-install /dev/sda
    update-grub

    Fahrt das Livesystem herunter, hängt die externe Festplatte ab und startet euer System erneut.

    Voila, wenn bis hier hin keine Fehler und Error aufgetaucht sind, habt ihr es geschafft. :thumbup:




    Quellen:

    Timeshift | Clonezilla | GParted | rsync