{{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] [:Partitionierung/Grundlagen: Grundlagen: Partitionen] [:sudo: Root-Rechte] }}} [[Inhaltsverzeichnis]] 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 [:Booten: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: * eine Partition für das System * eine Partition für swap Welche Partitionen im eigenen Fall berücksichtigt werden müssen, entnimmt man der '''/etc/fstab''' mit `cat /etc/fstab | grep -v "^#"` = 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 [:Partitionierung#Einteilung-der-Partitionen:Partition]) {{{#!vorlage Warnung 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]: {{{#!vorlage Befehl 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 [:Downloads: heruntergeladen] werden. Wichtig ist bei 64 Bit Systemen entsprechend eine 64 Bit ISO herunterzuladen, da [:chroot/Live-CD#Einrichtung: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: {{{#!vorlage Befehl 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 [:Partitionierung: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#Swap-Partition-nachtraeglich-erstellen:Swap-Partition] erstellen {{{#!vorlage 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 [:SSD/Grundlagen#Alignment: 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: {{{#!vorlage Befehl 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. {{{#!vorlage Befehl sudo mkdir /mnt/neu sudo mount /dev/sdb1 /mnt/neu }}} Falls separate Boot Partitionen genutzt werden, sollten diese ebenfalls gemountet werden: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl sudo rsync --stats --progress --numeric-ids -axAhHP /mnt/alt/ /mnt/neu }}} {{{#!vorlage 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: {{{#!vorlage Befehl sudo rsync --stats --progress --numeric-ids -axAhHPc /mnt/alt/ /mnt/neu }}} Ohne Auflistung geänderter Dateien ist die Kopie erfolgreich. {{{#!vorlage 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:]: {{{#!vorlage Befehl sudo cp -avxT /mnt/alt /mnt/neu # Kopieren mit Übernahme alter Dateiinformationen und detaillierter Ausgabe }}} {{{#!vorlage 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 [:fstab:/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:]. {{{#!vorlage Hinweis Da Ubuntu seit [:Edgy Eft#UUIDs:] statt der Schreibweise `/dev/xxx` [:UUID:]s benutzt, verweisen die Daten in der [:fstab:] sowie auch in [:GRUB_2/Grundlagen: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 [:Datenträger#Wie-heissen-die-Datentraeger:an dieser Stelle]. }}} Die UUIDs aller angeschlossenen Laufwerke lassen sich mit folgendem Befehl anzeigen: {{{#!vorlage Befehl 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. {{{#!vorlage 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: Mount-Optionen]. Weiterhin sollte man spezielle Einschränkungen des Dateisystems beachten, z.B. bei Btrfs, sowie den folgenden Abschnitt "Verbotene Mountoptionen". }}} = GRUB = {{{#!vorlage Hinweis Hier wird die Einrichtung von [:GRUB_2:] beschrieben. Falls das System mit dem „alten“ GRUB gelaufen ist, muss nach dieser [:Archiv/GRUB#Methode-3-Chroot-ueber-ein-Live-System:Anleitung] vorgegangen werden. }}} {{{#!vorlage Hinweis Für die chroot-Umgebung muss die [:CPU-Architektur:] des Livesystems 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/Live-CD#Einrichtung:chroot] in das Wurzelverzeichnis der Installation gewechselt werden. Dazu muss zuerst die Partition eingebunden werden: {{{#!vorlage Befehl sudo mount /dev/sda1 /mnt }}} Damit im installierten System alle wichtigen Systeminformationen zur Verfügung stehen: {{{#!vorlage Befehl sudo mount -o bind /dev /mnt/dev sudo mount -o bind /sys /mnt/sys sudo mount -t proc /proc /mnt/proc }}} Falls weitere Partitionen zum System gehören (s. '''/etc/fstab'''), sind diese noch mit: {{{#!vorlage Befehl sudo mount -t TYP /dev/sdaY /mnt/MOUNTPOINT }}} einzuhängen. Danach kann man mit {{{#!vorlage Befehl sudo chroot /mnt }}} in das installierte System wechseln. Mit dem Befehl: {{{#!vorlage Befehl update-grub2 grub-install /dev/sda }}} wird [:GRUB_2:] in den MBR der neuen Platte geschrieben. Mit {{{#!vorlage Befehl update-grub }}} wird die Konfigurationsdatei aktualisiert. Jetzt kann mit {{{#!vorlage Befehl 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: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- angepasst werden: {{{ RESUME=UUID= }}} Eventuell ist es zusätzlich notwendig, '''/etc/uswsusp.conf''' und/oder '''/etc/suspend.conf''' anzupassen: {{{ resume device = /dev/disk/by-uuid/ }}} Danach muss das initrd-Image neu geschrieben werden, das geht über folgenden Terminalbefehl: {{{#!vorlage Befehl sudo update-initramfs -u }}} = Dualboot mit LUKS = * https://forum.ubuntuusers.de/topic/ubuntu-luks-umziehen/ (letzter [post:9395058:Beitrag]) = Links = == Intern == * [:cp:] * [:rsync:] * [:Dateisystem:] * [:Dateisystemcheck:] * [:Datensicherung:] * [:Dualboot_Partitionierung:] * [:GRUB 2:] * [:Manuelle_Partitionierung:] * [:Partitionierung:] * [:Partitionierung/Grundlagen:] * [:Festplatten Problembehebung:] * [:Swap:] == Extern == * [wikipedia:Clonezilla:] - englischsprachiges Profi-Werkzeug zum Duplizieren ("Klonen") von Festplatten * [https://bugs.launchpad.net/ubuntu/+source/cryptsetup/+bug/497110/comments/3] - Ubuntu-Bugreport 497110 für cryptsetup #tag: System, Einsteiger, Datenrettung