Eine Installation von einer alten Festplatte auf eine neue Festplatte kopieren
(mit der gleichen MoBo).
Eine
andere Art von Umzug ist es, wenn 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 deinstalliert, oder ggf. benutzte spezielle Bootoptionen anpasst, falls diese nicht auch für das neue System passen.
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 usw.
Da
es eine Vielzahl an Installationsmöglichkeiten und Spezialfälle 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
Informationen zum umziehen einer Software-RAID Installation gibt es z.B. auf ubuntuforums.org
Im folgenden Beispiel wird angenommen: Das umzuziehende Standardsystem ist auf der Festplatte sda installiert und soll auf die neue Festplatte sdb kopiert werden. Das Homeverzeichnis befindet sich mit im Root-Dateisystem (selbe 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]:
erhält
man eine Liste der eingebundenen Geräte. Besonders interessant ist das
Root-Dateisystem (im Beispiel sda1), das als Wurzelverzeichnis (/) eingebunden ist:
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.
Über den Befehl [1]:
mount | egrep ^/dev/
/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 LiveCD herunterladen
Zu allererst wird die Desktop-CD von Ubuntu benötigt, diese kann hier heruntergeladen werden. Wichtig ist bein 64 Bit Systemen entsprechend ein
64 Bit ISO herunterzuladen, da chroot andernfalls nicht korrekt funktioniert. Nach dem Download wird das ISO-Image der Live-CD auf eine CD gebrannt.
Nun wird die neue Festplatte zusätzlich zur alten in den Computer eingebaut. Danach bootet man von der Ubuntu-LiveCD.
Nun wird die neue Festplatte zusätzlich zur alten in den Computer eingebaut. Danach bootet man von der Ubuntu-LiveCD.
Partition erstellen
Nach dem Booten werden zuerst die aktuellen Festplattenbezeichnungen ermittelt:
Die Ausgabe könnte folgendermaßen aussehen:
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:
sudo fdisk -l
vergrößern
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 SystemDie 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:
- 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
Partitionen unter der LiveCD 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:
sudo mkdir /mnt/alt sudo mount /dev/sda1 /mnt/alt
sudo mkdir /mnt/neu sudo mount /dev/sdb1 /mnt/neu
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 -aAhHSP /mnt/alt/ /mnt/neu/
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
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 -a /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, ob wohl es erfolgreich kopiert wurde.
Für die Einträge in fstab wird die UUID benötigt, siehe UUID.
Beispiel:
Hinweis:
Die UUIDs aller angeschlossenen Laufwerke lassen sich mit folgendem Befehl anzeigen:
Da Ubuntu seit Edgy Eft statt der Schreibweise
/dev/xxx
UUIDs benutzt, verweisen die Daten in der fstab sowie auch in menu.lst
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.
sudo blkid
/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-PartitionDie 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=4dbbaf05-b0bb-4e3b-bba6-61c8d5d62a77 / ext3 relatime,error s=remount-ro 0 1 # /dev/sda2 UUID=3d5ede6f-1c19-4bc2-84da-68fdb1f70c85 none swap sw 0 0Diese ändert man wie folgt ab:
# /dev/sdb1 UUID=6346681b-b88a-4c75-8882-81fa4e731d18 / ext3 relatime,error s=remount-ro 0 1 # /dev/sdb2 UUID=44887afe-b82b-4fa5-bab6-68afebc4599d none swap sw 0 0Dabei werden jeweils die UUIDs ausgetauscht und dazu noch der Kommentar (alles hinter dem #) zur späteren Übersichtlichkeit geändert.
GRUB
Hinweis:
Hinweis:
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
Danach kann man mit
sudo chroot /mnt
in das installierte System wechseln. Mit dem Befehl:
grub-setup /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ßend 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-CD 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=
Danach muss das initrd-Image neu geschrieben werden, das geht über folgenden Terminalbefehl:
sudo update-initramfs -u
No comments:
Post a Comment