1974481

So ziehen Sie Linux auf einen neuen PC um

20.11.2016 | 18:09 Uhr |

Sie haben einen neuen Rechner gekauft, würden aber gern mit Ihrer bewährten Linux-Umgebung darauf weiterarbeiten? Dann muss das System umziehen. Lesen Sie in diesem Beitrag, wie Sie diese Aufgabe relativ einfach erledigen.

Windows-Nutzer, die einen neuen Rechner gekauft haben, kommen meist um eine Neuinstallation ihrer Programme und Anpassung der Arbeitsumgebung nicht herum. Linux bietet hier entscheidende Vorteile. Sie können das Betriebssystem mitsamt den Benutzerdateien einpacken und sich auf dem neuen System schnell einrichten. Das funktioniert sogar über das Netzwerk. Für einen Umzug des gesamten Systems spricht die enorme Zeitersparnis gegenüber der vollständigen Neueinrichtung aller installierten Programme. Umziehen sollten Sie ein System auf neue Hardware selbstverständlich nur dann, wenn das System einwandfrei und stabil läuft. Haben Sie dort mit Problemen zu kämpfen, ist die Wahrscheinlichkeit hoch, dass diese Schwierigkeiten auch in einer neuen Umgebung bestehen.

Dieser Artikel stammt aus der LinuxWelt 4/2014

Das neue Ubuntu LTS, der große Desktop-Guide, Ihre Festplatte 20 x schneller, Linux statt Windows XP - das und mehr finden Sie in der neuen LinuxWelt 4/2014 .

Bewährtes Clonezilla
Vergrößern Bewährtes Clonezilla

1. Festplatte klonen mit Clonezilla

Für den Umzug Ihrer Daten und Programme haben Sie die Wahl zwischen mehreren Strategien. Eine Option, mit der auch Einsteiger gut zurechtkommen, ist das Klonen der gesamten Festplatte. Dabei wird Byte für Byte eine identische Kopie der gesamten Festplatte angefertigt und diese Kopie anschließend auf das neue System übertragen. Die Software Clonezilla leistet für diese Aufgabe gute Dienste. 

Bestandsaufnahme am alten Rechner: Mit fdisk müssen Sie sich zunächst einmal ansehen, welche Partitionen in Ihrem Rechner verbaut sind.
Vergrößern Bestandsaufnahme am alten Rechner: Mit fdisk müssen Sie sich zunächst einmal ansehen, welche Partitionen in Ihrem Rechner verbaut sind.

Um eine komplette Festplatte mit Clonezilla zu kopieren, benötigen Sie natürlich ein externes Laufwerk, das mindestens die gleiche Kapazität besitzt wie jene Festplatte, die Sie kopieren wollen. Wenn Sie mit Terminalkommandos nichts zu tun haben wollen oder wenig Erfahrung mit Linux gesammelt haben, ist diese Variante der risikoärmste Weg.

Starten Sie Clonezilla, indem Sie die ISO-Datei mit einem Brennprogramm Ihrer Wahl auf eine DVD brennen und Ihren PC anschließend darüber booten. Bei einem Umzug auf eine neue Festplatte wählen Sie nach dem Start von Clonezilla die Funktion „device-device“. Im nächsten Schritt wählen Sie aus, ob Sie eine ganze Platte samt ihren Partitionen mit „disk_to_local_disk“ übertragen möchten oder nur eine einzelne Partition mit „part_to_local_part“.

Bei der Auswahl von Quelle und Ziel ist wieder genaues Aufpassen gefragt, damit keine Daten überschrieben werden. Falls bei einem größeren Datenträger nach dem Klonen noch Platz übrig ist, können Sie diesen entweder später neu partitionieren oder mit Parted Magic die kleinere, zurückgeschriebene Partitionen auf die gesamte Platte nachträglich ausdehnen.

Unscheinbar, aber wirkungsvoll: Um eine komplette Sicherung durchzuführen, genügt ein knappes tar-Terminalkommando mit wenigen Parametern.
Vergrößern Unscheinbar, aber wirkungsvoll: Um eine komplette Sicherung durchzuführen, genügt ein knappes tar-Terminalkommando mit wenigen Parametern.

Für das Klonen spricht, dass am Ende eine absolute identische Kopie vorliegt und die Nutzung der Software unkompliziert ist. Gegen das Klonen spricht die bereits erwähnte Tatsache, dass mit Aufspielen der Kopie die Arbeit meistens nicht abgeschlossen ist. Denn nur in den seltensten Fällen dürfte die Festplatte im neuen System genauso groß wie das Original sein. Folglich müssen Sie noch einmal manuell eingreifen, denn nach dem Aufspielen besitzen Sie auf der neuen Platte ungenutzten Speicherplatz, den Sie mit dem Betriebssystem verwalten und zuweisen müssen.

Perfekter Schutz für Ihr Linux

2a. Übersicht: Linux-System mit tar kopieren

Bei einem Umzug von einer Wohnung in eine andere benötigen Sie einen Transporter. Das ist beim Umzug des Betriebssystems nicht anders. Der Transporter kann eine externe Festplatte sein oder auch ein USB-Stick mit einer ausreichenden Kapazität. Ferner benötigen Sie ein Linux-Live-System, mit dem Sie Quell- und Zielrechner starten. Für den kompletten Umzug müssen Sie folgende Arbeiten durchführen, die wir hier als ersten Überblick in aller Kürze zusammenfassen:

  • Sie starten ein Live-System und hängen das bestehende Dateisystem Ihres alten Systems in die Live-Umgebung ein.

  • Sie schließen einen externen Datenträger an, der automatisch eingebunden werden sollte.

  • Sie kopieren mit dem Archivierungswerkzeug tar alle Daten inklusive der Rechte von der alten Festplatte auf den externen Datenträger.

  • Sie starten dann den neuen Rechner mit dem Live-System und partitionieren damit die eingebauten Festplatten.

  • Sie hängen die frisch partitionierten Platten in das Live-System ein.

  • Sie kopieren mit tar die Daten vom externen Datenträger auf die eingehängte (noch leere) Festplatte.

  • Sie hängen die Pseudodateisysteme des Live-Systems in den gleichen Mount-Punkt der neuen Platte ein.

  • Sie installieren den Bootmanager Grub neu.

2b. Im Detail: Linux-System mit tar kopieren

Mit einer Live-Distribution starten Sie den alten Rechner. Binden Sie in einem Terminal die Root-Partition des Systems ein. Dazu müssen Sie ermitteln, welche Platten und Partitionen es auf dem System gibt. Das erledigen Sie im Terminal mit diesem Befehl:

sudo fdisk -l

Sie erhalten eine übersichtliche Liste. Liegt diese Partition etwa auf „sda1“, müssen Sie diese so einbinden:

mount /dev/sda1 /mnt

Damit wird diese Platte unter dem Mount-Punkt „/mnt“ im Live-System eingehängt und kann danach genutzt werden. Schließen Sie dann die externe Platte oder den USB-Stick an. Aktuelle Live-Systeme binden solche externen Datenträger normalerweise automatisch über den Mount-Punkt „/media“ ein. Falls nicht, können Sie das auch manuell im Terminal erledigen:

mount /dev/sdb1 /media

Achtung, die Gerätebezeichnung, in diesem Fall „sdb1“, müssen Sie an Ihre Verhältnisse anpassen. Dazu öffnen Sie im Live-System mit einem Editor die Datei „/var/log/messages“. Hier hat das System eine Gerätebezeichnung eingetragen, als Sie den externen Datenträger eingesteckt haben.

Öffnen Sie ein Terminal, und wechseln Sie mit dem Kommando

cd /mnt

in das Verzeichnis, in das Sie zuvor die alte Platte eingebunden haben. Jetzt beginnen Sie damit, das alte System für den Umzug zu verpacken. Dazu verwenden Sie das Packprogramm tar, das zu den Urgesteinen auf allen Linux-Systemen gehört.

tar -cpf --exclude /proc /media/neu_system.tar *

Das tar-Komprimierungsprogramm kennt eine ganze Reihe von Parametern und Optionen. Unentbehrlich in diesem Zusammenhang ist insbesondere der Schalter „p“, denn dieser sorgt dafür, dass auch die Dateiberechtigungen und Eigentümerinformationen im Archiv gespeichert werden. Das Archiv landet als eine Datei „neu_system“ auf der Platte, die unter „/media/“ eingebunden wurde. Mit der Exclude-Anweisung --exclude /proc verhindern Sie, dass der Inhalt des Verzeichnisses „proc“ gesichert wird. Dabei handelt es sich um Gerätedateien in einem Pseudodateisystem des Live-Systems.

Tar ist standardmäßig wortkarg: Wenn Sie über den Fortschritt, so wie hier gezeigt, informiert werden wollen, ergänzen Sie die Parameter-Kombination um ein „v“ („-cpfv“).
Vergrößern Tar ist standardmäßig wortkarg: Wenn Sie über den Fortschritt, so wie hier gezeigt, informiert werden wollen, ergänzen Sie die Parameter-Kombination um ein „v“ („-cpfv“).

Tar ist ein sehr fixes Archivprogramm; dennoch können Sie nach Auslösen des Befehls je nach Größe des Systems, das Sie einpacken, in Ruhe Kaffee trinken.

Der Artikel geht davon aus, dass Sie bei der Installation Ihres Linux-Systems keine Besonderheiten eingestellt hatten. Liegen dagegen die Benutzerverzeichnisse in einer separaten Partition „/home“, dann müssen Sie diese ebenfalls in einem eigenen Archiv verpacken. 

Wenn das Einpacken erledigt ist, können Sie mit dem eigentlichen Umzug beginnen. Fahren Sie also den alten Rechner herunter, und starten Sie dann den neuen Rechner mit dem Live-System Ihrer Wahl. Hilfreich ist dabei ein Ubuntu-Live-System, denn es enthält das komfortable grafische Partitionierungswerkzeug  Gparted. Damit legen Sie auf der Festplatte des neuen Rechners die Partitionen für den Betrieb für Linux an, sofern Sie dies noch nicht erledigt haben sollten. Notfalls geht das natürlich auch ohne grafische Unterstützung:

fdisk /dev/sda

Dieser Befehl bearbeitet die erste Festplatte des Rechners. Drücken Sie die Taste „n“, um eine neue Partition anzulegen. Definieren Sie eine primäre Partition, und legen Sie deren Größe fest. Wählen Sie anschließend erneut „n“. Diesmal definieren Sie die Swap-Partition. Beide Partitionen benötigen auch ein Dateisystem. Das erledigt dieser Befehl:

mkfs.ext4 /dev/sda4

Damit erhält die Partition „sda4“ das Ext4-Dateisystem. Sehen Sie sich die Liste der Partitionen an, und schreiben Sie sich die Gerätenamen auf, die vergeben worden sind. Sie brauchen diese, um das System in Betrieb zu nehmen. Starten Sie aus dem Live-System erneut eine Konsole. Sie binden jetzt die beiden Dateisysteme ein – einmal das der neuen Platte und einmal die externe Platte, also Ihren „Umzugswagen“:

mount /dev/sda4 /mnt

mountet die neue Festplatte unter „/mnt“ und

mount /dev/sdb1 /media

hängt die externe Platte unter „/media“ein.

Sind die beiden Platten eingebunden, genügen zwei Kommandos, um die Sicherung zurückzuspielen:

cd /mnt tar -xvzf /media/neu_system.tar

Sobald tar diese Aufgabe abgearbeitet hat, sind bereits alle Dateien kopiert. Das System ist damit aber noch nicht startfähig, denn eingepackt wurden auch Dateien, die Einfluss auf den Start haben und noch die Werte des alten Systems enthalten.

Als root öffnen Sie daher in einem Terminal die Datei „/etc/fstab“, die Sie auf den neuen Rechner kopiert haben. Dort werden die Platten über die UUID (Universally Unique Identifier) eingebunden, und diese Kennungen sind jetzt nicht mehr korrekt. Ersetzen Sie diese durch die altmodischen Gerätebezeichnungen „sda1“, „sda2“ et cetera, wie Sie sie vorher aus dem Partitionierungswerkzeug ermittelt haben, zum Beispiel:

/dev/sda4 ext3 acl,user_xattr 1 1 /dev/sda5 swap defaults 0 0

Speichern Sie die „fstab“-Datei. Sofern sich im Verzeichnis „/etc/udev/“ der neuen Platte bereits Dateien befinden, löschen Sie diese. Sie stammen ebenfalls aus der Sicherung und enthalten (wahrscheinlich) nicht mehr zutreffende Eintragungen zum optischen Laufwerk und der Netzwerkkarte des alten Systems. Die Dateien werden beim Systemstart automatisch neu und korrekt angelegt, sofern sie fehlen.

Nun fehlt noch ein letzter Schritt – die Anpassung des Bootmanagers. Dazu müssen Sie die Pseudodateisysteme des Live-Systems verwenden und diese einbinden. Öffnen Sie dazu wieder ein Terminal, und geben Sie dort folgende Mount-Befehle ein:

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

Sie haben jetzt ein laufendes Live-System und ein ausgepacktes System im Punkt „/mnt“, außerdem unter „/proc“ und „/dev“ die aktuellen Daten der Pseudodateisysteme des Live-Systems. Damit können Sie jetzt den Bootmanager neu auf der frischen Festplatte mit dem entpackten Live-System einrichten. Dazu nutzen Sie erneut das Terminal:

chroot /mnt grub-install /dev/sda
Gparted im Live-System: Wenn Sie nicht gern auf der Konsole arbeiten, partitionieren Sie die Festplatten des neuen Systems mit einer grafischen Oberfläche.
Vergrößern Gparted im Live-System: Wenn Sie nicht gern auf der Konsole arbeiten, partitionieren Sie die Festplatten des neuen Systems mit einer grafischen Oberfläche.

Mit „chroot“ wechseln Sie mit root-Rechten in das ausgepackte System und installieren dort Grub mit dem zweiten Befehl. Wird der Rechner nun ohne den Datenträger des Live-Systems gestartet, sollte Ihnen Grub die bisher gewohnte Auswahl anzeigen, und Sie können Ihr gewohntes System auf dem neuen Rechner starten.

Die wichtigsten Tools für ein sparsames Linux

2c. Linux-System über das Netz kopieren

Die ausführliche vorgestellte Methode mit tar funktioniert auch mit zwei Ubuntu-Systemen, die im Netzwerk miteinander verbunden sind. Dazu werden auf dem System, das kopiert werden soll, möglichst alle nicht benötigten Dienste und Server abgeschaltet. Lediglich der Zugriff per SSH muss noch geöffnet sein. Vom neuen (Live-) System loggen Sie sich per SSH in das alte System ein:

ssh root@Altessystem "tar czf - --exclude /proc /" | tar xvzf -.

Dieses Kommando kopiert alle Dateien vom alten System in das aktuelle Verzeichnis. Dieses Verzeichnis befindet sich im laufenden Live-System.

Alle weiteren Schritte, nachdem der Kopiervorgang abgeschlossen wurde, sind dann identisch. Das Einbinden der Pseudosysteme mittels chroot und die Neuinstallation des Bootloaders Grub funktionieren dann so wie bereits oben beschrieben.

Filesystem-Tabelle korrigieren: Die UUID-Einträge in der „fstab“ sind nach dem Übertragen der umgezogenen Dateien natürlich nicht mehr gültig.
Vergrößern Filesystem-Tabelle korrigieren: Die UUID-Einträge in der „fstab“ sind nach dem Übertragen der umgezogenen Dateien natürlich nicht mehr gültig.

Kopieren mit tar - Die Risikovariante

Sie verfügen über Erfahrungen in Hardware-Basteleien? Dann können Sie die Variante des Kopierens mit tar abkürzen, wenn Sie die Platten über UUID mounten. Dazu bauen Sie die Festplatte des neuen Rechners in den alten Rechner ein. Sie booten das System mit einer Live-CD und legen zwei Mount-Punkte an. Mit tar kopieren Sie (wie im Haupttext beschrieben) die Daten des alten Systems auf die neue Festplatte, also zum Mount-Punkt der neuen Platte.

Anschließend müssen Sie in diesem Dateisystem auf der neuen Platte, das aber noch die alten Werte enthält, die Datei „/fstab anpassen“. Mit blkid suchen Sie sich die UUIDs der Platten heraus. Die alten Werte tauschen Sie jetzt gegen die Werte der neuen Platte in den Dateien „/etc/fstab“ und „/boot/grub/menu.lst“ aus. Sie müssen dann noch den Bootmanager in die neue Platte installieren. Das erledigen Sie im Terminal mit den folgenden Kommandos (wenn der Mount-Punkt der neuen Platte „/mnt/new“ ist). Sie wechseln auf die alte Platte und geben

mount -o bind /dev /mnt/new/dev mount -t proc proc /mnt/new/proc chroot /mnt/new /bin/bash

ein.

Danach führen Sie auf der neuen Platte diesen Befehl aus:

grub-install /dev/sdc

Die Kennung „/sdc“ ist hier unabhängig davon zu benutzen, wie viele Partitionen vorhanden sind. Fahren Sie dann den Rechner herunter, bauen Sie die alte Platte aus, schließen Sie die neue Platte statt der alten Festplatte an, und starten Sie den Rechner. Er sollte jetzt mit Ihrem umgezogenen System starten.

0 Kommentare zu diesem Artikel
1974481