ubuntuusers.de

Ubuntu umziehen

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Dieser Artikel beschreibt, wie man eine vorhandene Ubuntu-Installation auf eine neue Festplatte kopieren kann. Es gibt viele Gründe, warum man eine Installation auf eine andere Festplatte umziehen möchte: kein freier Speicherplatz mehr, eine neue leistungsfähigere Festplatte oder ein neuer PC wurde angeschafft.

Eine andere Art von Umzug ist es, wenn vorhandene Festplatten einfach in einen anderen Computer eingebaut werden. Dies ist meist ohne weiteres möglich, sofern die neue Hardware unterstützt wird, und man ggf. benutzte proprietäre Grafiktreiber vorher deinstalliert. Manchmal muss man auch die Bootoptionen anpassen, falls diese nicht auch für das neue System passen.

Da es eine Vielzahl an Installationsmöglichkeiten und Spezialfällen gibt, die dieser Artikel nicht alle abdecken kann, wird nur die "Standardinstallation" berücksichtigt:

Informationen zum Umziehen eines Software-RAID gibt es z.B. auf ubuntuforums.org 🇬🇧

Voraussetzungen

Im folgenden Beispiel wird von folgenden Annahmen ausgegangen:

  • Das umzuziehende Standardsystem ist auf der Festplatte sda installiert und

  • soll auf die neue Festplatte sdb kopiert werden

  • Das Homeverzeichnis befindet sich im Root-Dateisystem (auf der gleichen Partition)

Achtung!

Durch Tippfehler z.B. beim Kopieren des Betriebssystems kann das alte System unbrauchbar werden. Daher wird dringend empfohlen, zuvor ein Backup zu erstellen (siehe Datensicherung)!

Überblick verschaffen

Zunächst sollte man sich einen Überblick über das System verschaffen und die Partitionen identifizieren, auf denen sich das Root-System befindet.

Über den Befehl [1]:

mount | egrep ^/dev/ 

erhält man eine Liste der eingebundenen Geräte. Besonders interessant ist das Root-Dateisystem (im Beispiel sda1), das als Wurzelverzeichnis (/) eingebunden ist:

/dev/sda1 on / type ext3 (rw)

Hat man ein anderes Dateisystem, wie ReiserFS oder ext4, ist das Wort hinter type natürlich reiserfs oder ext4. Ebenso kann die Zahl hinter sda variieren, wenn man Ubuntu nicht auf der 1. Partition liegen hat.

Man erkennt, dass das Root-Filesystem auf der ersten Partition der Festplatte /dev/sda eingebunden ist. Man sollte sicherheitshalber in der Liste überprüfen, dass sich das gesamte Ubuntu-System auf dieser Partition befindet. Tauchen in der Liste noch andere Einträge auf, wie z.B. /dev/sda2 on /home ext3 (...), so befindet sich das System verteilt auf verschiedene Partitionen. Das bedeutet, dass man dies beim späteren Anlegen der Partitionen auf der neuen Platte und beim Kopieren der Daten berücksichtigen muss.

Ubuntu Live-DVD herunterladen

Zuallererst wird die Desktop-DVD von Ubuntu benötigt, diese kann von der Wikiseite heruntergeladen werden. Wichtig ist bei 64 Bit Systemen entsprechend eine 64 Bit ISO herunterzuladen, da chroot andernfalls nicht korrekt funktioniert. Nach dem Download wird das ISO-Image der Live-DVD auf eine DVD gebrannt.

Nun wird die neue Festplatte zusätzlich zur alten in den Computer eingebaut. Danach bootet man von der Ubuntu Live-DVD.

Partition erstellen

Nach dem Booten werden zuerst die aktuellen Festplattenbezeichnungen ermittelt:

sudo fdisk -l 

Die Ausgabe könnte folgendermaßen aussehen:

Platte /dev/sda: 500.1 GByte, 500107862016 Byte
255 Köpfe, 63 Sektoren/Spuren, 60801 Zylinder
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes
Disk identifier: 0x000da950

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sda1   *           1       60737   487869921   83  Linux
/dev/sda2           60738       60801      514080   82  Linux Swap / Solaris

Platte /dev/sdb: 250.0 GByte, 250059350016 Byte
255 Köpfe, 63 Sektoren/Spuren, 30401 Zylinder
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes
Disk identifier: 0x0007f522

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System

Die Festplatte sda enthält das zu kopierende System in zwei Partitionen: Auf der ersten befindet sich das Ubuntu-System, die zweite Partition ist eine Swap-Partition. Die Festplatte sdb ist komplett leer, es befinden sich keine Partitionen darauf.

Nun muss man die Festplatte sdb mit GParted analog der alten Festplatteneinteilung sda einrichten. Mit analog ist hier die Anzahl der Partitionen gemeint, nicht die Größe. Letztere kann an die tatsächlichen Gegebenheiten angepasst werden:

  • ggf. eine Boot Partition, falls bisher auch schon verwendet

  • Systempartition (/): muss mit einem Linux-tauglichen Dateisystem formatiert werden

  • Swap-Partition (/swap): siehe Swap-Partition erstellen

Hinweis:

Eine ausführliche Anleitung zum Partitionieren erhält man hier: Partitionierung und Manuelle Partitionierung.

Weiterhin sollte man beim Umzug auf eine SSD besonders das Alignment beachten.

Partitionen unter der Live-DVD einbinden

Nach dem nun die neue Festplatte erfolgreich eingerichtet wurde, hängt man die neue Root-Partition wie auch die alte ein. In diesem Beispiel wird davon ausgegangen, dass das bestehende System auf sda1 liegt und die Partition auf der neuen Festplatte sdb1 ist. Dazu werden neue Ordner erstellt und die Partitionen dort eingebunden. Im Terminal werden folgende Befehle für die alte Festplatte benötigt, die mit der Option -o ro nur Read-only gemountet wird, damit nicht aus Versehen die bestehende Installation verändert werden kann:

sudo mkdir /mnt/alt
sudo mount -o ro /dev/sda1 /mnt/alt 

Dann hängt man die neue Festplatte bzw. Partition, auf die das "neue" Betriebssystem kopiert werden soll, ein.

sudo mkdir /mnt/neu
sudo mount /dev/sdb1 /mnt/neu 

Falls separate Boot Partitionen genutzt werden, sollten diese ebenfalls gemountet werden:

sudo mkdir /mnt/neu/boot

sudo mount /dev/sdaX /mnt/alt/boot
sudo mount /dev/sdbX /mnt/neu/boot 

Daten mit dem Programm rsync kopieren

Nun kopiert man alle Dateien mit dem Befehl rsync von der alten Partition zur neuen:

sudo rsync --stats --progress --numeric-ids -axAhHSP  /mnt/alt/ /mnt/neu 

Hinweis:

Um den Kopiervorgang zu beschleunigen, kann zusätzlich die Option --quiet gesetzt werden. Dies bewirkt das keine Hinweismeldungen ausgegeben werden, was den Flaschenhals der Ausgabegeschwindigkeit der Konsole umgeht. Nutzt man diese Variante, so läuft der Kopiervorgang, bis auf Fehlermeldungen, blind ab.

Möchte man sicherstellen, dass die Betriebssystem-Kopie vollständig ist und mit dem Original exakt übereinstimmt, kann man einen zweiten Durchlauf mit rsync machen. Mit der zusätzlichen Option -c wird dann Quelle und Ziel per Prüfsummen verglichen:

sudo rsync --stats --progress --numeric-ids -axAhHSPc  /mnt/alt/ /mnt/neu  

Ohne Auflistung geänderter Dateien ist die Kopie erfolgreich.

Hinweis:

rsync ist dem Shell-Befehl cp vorzuziehen.

Bei einer defekten Festplatte kann es vorkommen, dass der Kopiervorgang einfach "hängen bleibt", ggf. friert sogar das gesamte System beim Zugriff auf defekte Sektoren ein. Tritt dieses Problem auf, ist ein schrittweises Kopieren der Daten nötig. Man nimmt sich also analog zu obiger Syntax jedes Verzeichnis einzeln vor. Wird der Kopiervorgang für ein Verzeichnis erfolgreich abgeschlossen, wendet man sich dem nächsten zu - nachdem man mit dem Befehl sync sichergestellt hat, dass die kopierten Daten aus dem Cache auch auf die Platte geschrieben wurden. Kommt es zu besagtem "Hänger", ist die verursachende Datei die letzte in der Ausgabe des Kopierbefehls - diese darf also beim Kopieren nicht (mehr) angefasst, und muss stattdessen später aus einem (hoffentlich vorhandenen) Backup wieder hergestellt werden.

Alternative - Daten mit dem Programm cp kopieren

Kopierbefehl mit cp:

sudo cp -avxT /mnt/alt /mnt/neu  # Kopieren mit Übernahme alter Dateiinformationen und detaillierter Ausgabe 

Hinweis:

Der Kopiervorgang kann je nach Datenvolumen (und Leistungsfähigkeit des Rechners) etwas mehr Zeit in Anspruch nehmen. Man sollte daher mind. 1-2 Stunden einberechnen!

fstab

Als nächstes muss man die Datei /etc/fstab auf der neuen Partition ändern. Falls man das vergisst, kann Ubuntu von der neuen Festplatte nicht gestartet werden, obwohl es erfolgreich kopiert wurde. Für die Einträge in fstab wird die UUID benötigt, siehe UUID.

Hinweis:

Da Ubuntu seit Edgy Eft (Abschnitt „UUIDs“) statt der Schreibweise /dev/xxx UUIDs benutzt, verweisen die Daten in der fstab sowie auch in grub.cfg nach wie vor auf die "alte" Festplatte. Wer sich mit der "alten" Device-Schreibweise leichter tut, kann bei den Anpassungen natürlich auch diese wieder verwenden - es sollten jedoch Vor- und Nachteile gut abgewogen werden. Näheres dazu findet sich an dieser Stelle.

Die UUIDs aller angeschlossenen Laufwerke lassen sich mit folgendem Befehl anzeigen:

sudo blkid 

Beispiel:

/dev/sda1: UUID="eb95423b-612f-416b-ad31-02bfedfd74d3" TYPE="ext3" #Alte root-Partition
/dev/sda2: TYPE="swap" UUID="ee472e83-66a8-4397-8648-69abe711a467" #Alte swap-Partition
/dev/sdb1: UUID="6346681b-b88a-4c75-8882-81fa4e731d18" TYPE="ext3" #Neue root-Partition
/dev/sdb2: TYPE="swap" UUID="44887afe-b82b-4fa5-bab6-68afebc4599d" #Neue swap-Partition

Die UUID der neuen Partition (sdb1) lautet hier: 6346681b-b88a-4c75-8882-81fa4e731d18. Nun öffnet man die Datei /etc/fstab auf sdb1 in einem Editor[2] mit Root-Rechten[4] und sucht nach den Einträgen der einzuhängenden Partitionen. Hier ein Beispiel:

# /dev/sda1
UUID=eb95423b-612f-416b-ad31-02bfedfd74d3 /               ext3    relatime,errors=remount-ro 0       1
# /dev/sda2
UUID=ee472e83-66a8-4397-8648-69abe711a467 none            swap    sw               0       0

Diese ändert man wie folgt ab:

# /dev/sdb1
UUID=6346681b-b88a-4c75-8882-81fa4e731d18 /               ext3    relatime,errors=remount-ro 0       1
# /dev/sdb2
UUID=44887afe-b82b-4fa5-bab6-68afebc4599d none            swap    sw               0       0

Dabei werden jeweils die UUIDs ausgetauscht und dazu noch der Kommentar (alles hinter dem #) zur späteren Übersichtlichkeit geändert.

Hinweis:

Die Mountoptionen sollten insbesondere bei einem Wechsel des verwendeten Dateisystems oder einem Umstieg von konventionellen Festplatten auf SSDs angepasst werden, siehe hierzu Mount-Optionen. Weiterhin sollte man spezielle Einschränkungen des Dateisystems beachten, z.B. bei Btrfs Btrfs-Mountoptionen, sowie den folgenden Abschnitt "Verbotene Mountoptionen".

GRUB

Hinweis:

Hier wird die Einrichtung von GRUB 2 beschrieben. Falls das System mit dem „alten“ GRUB gelaufen ist, muss nach dieser Anleitung vorgegangen werden.

Hinweis:

Für die chroot-Umgebung muss die Architektur des Livesystems (32-Bit- bzw. 64-Bit-Architektur) identisch sein.

Als nächstes muss der GRUB 2 auf der Festplatte sdb installiert werden. Um Verwechslungen zu vermeiden und um sicherzustellen, dass das System mit der neuen Platte läuft, empfiehlt es sich, das Livesystem herunterzufahren, die alte Platte abzuklemmen und das Livesystem wieder zu starten. Jetzt heisst die neue (und einzige) Platte sda.

Zur Installation des Bootloaders muss mit chroot in das Wurzelverzeichnis der Installation gewechselt werden.

Dazu muss zuerst die Partition eingebunden werden:

sudo mount /dev/sda1 /mnt 

Damit im installierten System alle wichtigen Systeminformationen zur Verfügung stehen:

sudo mount -o bind /dev /mnt/dev
sudo mount -o bind /sys /mnt/sys
sudo mount -t proc /proc /mnt/proc 

Falls es eine separate boot-Partition gibt, muss diese noch mit:

sudo mount -t vfat /dev/sda2 /mnt/boot/efi 

eingehängt werden.

Danach kann man mit

sudo chroot /mnt 

in das installierte System wechseln. Mit dem Befehl:

update-grub2
grub-install /dev/sda 

wird GRUB 2 in den MBR der neuen Platte geschrieben. Mit

update-grub 

wird die Konfigurationsdatei aktualisiert. Jetzt kann mit

exit 

die chroot-Umgebung verlassen werden.

Abschließende Schritte

Es sollten noch die beiden Dateien 70-persistent-cd.rules und 70-persistent-net.rules im Verzeichnis /mnt/etc/udev/rules.d der neuen Festplatte gelöscht werden. Dort hat das Udev-System die Einstellungen für Netzwerkkarte bzw. optisches Laufwerk des Originalsystems hinterlegt. Fehlen diese Dateien, werden sie beim Booten des neuen Systems entsprechend angelegt.

Nach einem Neustart sollte der Rechner jetzt mit dem umgezogenen System normal starten. Bei Problemen startet man den Rechner erneut mit der Live-DVD und kontrolliert nochmal sorgfältig die UUIDs und die GRUB 2-Konfiguration.

Falls der Ruhezustand (suspend-to-disk) genutzt werden soll, muss die Datei /etc/initramfs-tools/conf.d/resume mit Root-Rechten editiert werden und folgende Zeile eingefügt bzw. mit der eigenen Swap- <UUID> angepasst werden:

RESUME=UUID=<UUID>

Eventuell ist es zusätzlich notwendig, /etc/uswsusp.conf und/oder /etc/suspend.conf anzupassen:

resume device = /dev/disk/by-uuid/<UUID>

Danach muss das initrd-Image neu geschrieben werden, das geht über folgenden Terminalbefehl:

sudo update-initramfs -u 

Intern

Extern

Diese Revision wurde am 16. Februar 2020 14:44 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Datenrettung, Einsteiger, System