Images von Partitionen erstellen und in's Dateisystem einhängen
h1Vor Neuinstallationen, größeren Änderungen am System und sonstigen großen Schritten, die man gern rückgängig machen würde, empfiehlt es sich, eine Sicherungskopie des ganzen Systems anzulegen. Dazu bietet sich an, ein Festplattenimage zu erstellen: ein 1:1-Abbild der Partitionen, das sich bei Bedarf zurückspielen lässt, um den vorherigen Zustand wiederherzustellen.
Die Anleitung ist Plattform-unabhängig, d.h. obwohl ein Linux-System zur Sicherung verwendet wird, können auch Windows-Partitionen damit gesichert werden.
Voraussetzung: Live-System
Solche Abbilder sollten niemals im laufenden Betrieb des Rechners erstellt werden, da sich ständig Dateien ändern können und so das Erstellen eines zuverlässigen Abbilds verhindern. Wenn die zu sicherende Partition also nicht aushängbar ist, etwa weil es sich um die System- oder Datenplatte handelt, muss der Vorgang von einer Live-CD (oder -USB) durchgeführt werden.
Ich verwende dafür meist GRML, ein für verschiedene Wartungsvorgänge sehr praktisches Livesystem, das sich sowohl auf CD brennen als auch auf USB-Stick installieren lässt. Der hier beschriebene Vorgang verwendet jedoch nur äußerst grundlegende Techniken und ist daher mit fast allen Linux-Systemen (darunter Installationsmedien) durchführbar.
Nachdem alle Befehle hier mit Systemverwaltung zu tun haben, ist die
Anmeldung als root
für die Anleitung vorausgesetzt, sudo
wird nicht
dazugeschrieben.
Herausfinden der Partitionskennungen
Hat man in ein Live-System gebooted, muss man noch die Kennung der jeweiligen Partitionen wissen. In den allermeisten Fällen findet man die Festplatten nach dem folgenden System nummeriert:
sdxy
x
bezeichnet hier einen Buchstaben, beginnend bei (klein)a
für die erste im System eingebaute Platte. Die zweite heißtsdb
, etc. Auch USB-Datenträger und ähnliche Laufwerke bekommen so eine Nummerierung.y
bezeichnet die Nummer der Partition - von1
bis4
findet man die primären Partitionen, startend bei5
beginnen die logischen. Die MSDOS-kompatible Einteilung von Festplatten lässt nur 4 Partitionen zu, daher wird für gewöhnlich eine dieser Partitionen in einen Container (eine “erweiterte Partition”) umgewandelt, in dem sich weitere (“logische”) Partitionen befinden können.
Eine gültige Partitionskennung lautet daher etwa sda3
für die dritte
Partition auf der ersten Festplatte.
Nun muss man wissen, welche Partitionen man sichern möchte. Die Auslagerungspartition etwa muss nicht mitgesichert werden. Dazu lässt man sich am besten die Partitionstabelle anzeigen:
fdisk -l /dev/sda
Man erhält eine Liste der vorhandenen Partitionen, samt Partitionstyp (etwa “Linux”) und die Größe der Festplatte (in Blocks). Das könnten bereits ausreichend Indizien sein, welche Partitionen davon man sichern möchte - für gewöhnlich hat man ja einen Überblick, wie groß die Festplatten sind. Falls man doch auf Nummer Sicher gehen möchte, lassen sich die Partitionen einhängen und die Inhalte einsehen:
mount /dev/sda3 /mnt
ls /mnt
umount /mnt
Damit wird die dritte Partition der ersten Platte in das Verzeichnis
/mnt
eingehängt, mit dem zweiten Befehl lässt sich also dann der
Inhalt betrachten. Der dritte Befehl hängt die Partition wieder aus.
Nicht sichern (oder einhängen) kann man die “erweiterte Partition”, also den oben erklärten Container. Die darin enthaltenen Daten befinden sich allesamt in den logischen Partitionen, die es zu sichern gilt.
Erstellen eines Abbilds
Zum Erstellen des Abbilds wird natürlich ein ausreichend großer Datenträger benötigt, der zur Sicherheit mindestens so groß sein sollte, wie die zu sichernde Partition. Es gibt platzsparendere Methoden, die vorliegende braucht jedoch so viel Platz. Um dennoch nicht 1:1 so viel Platz zu benötigen wie das ausgewählte Laufwerk Kapazität (inklusive freiem Speicher!) hat, wird das Abbild direkt beim Erstellen noch komprimiert. Über die Effizienz davon lassen sich allerdings nur schwierig Vorhersagen treffen.
Zunächst muss der Zieldatenträger eingehängt werden. Wenn es sich dabei
etwa um eine USB-Festplatte handelt, lässt sich dessen Partitionsnummer
leicht herausfinden: wenn nur eine Festplatte im Gerät verbaut ist
(sda
), man vom USB-Stick gestartet hat (sdb
), wird die externe
Platte meist einfach die nächste sein (sdc
). Wer hier auf Nummer
Sicher gehen möchte, kann mit fdisk -l
und dem oben beschriebenen
Einhängen der Platte nachsehen.
Stellt sich heraus, dass die externe Platte unter sdc
hängt, kann man
deren erste Partition wie folgt einhängen:
mount /dev/sdc1 /mnt
Das Image der Partition sda3
etwa kann wie folgt erstellt werden:
dd if=/dev/sda3|gzip > /mnt/sda3.img.gz
Dabei wird mit dem Programm dd
von /dev/sda3
gelesen. Statt das
Resultat direkt irgendwohin zu schreiben, schicken (“pipen”) wir die
Ausgabe mittels des |
an das Programm gzip
, das den Datenstrom
komprimiert wieder ausgibt. Diesen fangen wir ab und leiten ihn mittels
des >
in die Datei /mnt/sda3.img.gz
um.
Diese Schritte wiederholt man mit allen zu sichernden Partitionen, was
bei großen Datenmengen eine Weile dauern kann. Der Fortschritt lässt
sich abfragen, indem man von einer anderen Konsole (ggf. Alt+F2
drücken) den folgenden Befehl eingibt:
pkill -USR1 -x dd
Auf der ursprünglichen Konsole erhält man eine Fortschrittsanzeige.
Einhängen und öffnen des Image
Möchte man sich vom Erfolg der Arbeit überzeugen oder zu einem späteren Zeitpunkt einzelne Dateien aus dem Image wiederherstellen, lässt sich das so erstellte Image als virtuelles Laufwerk einhängen. Dazu muss es zunächst entpackt werden, wofür auf dem Ziellaufwerk ausreichend Platz vorhanden sein muss:
gunzip /mnt/sda3.img.gz
Man erhält dann eine sda3.img
, die das reine 1:1-Abbild der Partition
enthält. Dieses kann mittels des “Loop”-Device eingehängt werden:
mkdir /media/loop_sda3
mount -oloop /mnt/sda3.img /media/loop_sda3
Jetzt kann das Verzeichnis /media/loop_sda3
durchsucht werden und
Dateien lassen sich herauskopieren.
Zurücksichern des Abbilds
Sollte man in die Notwendigkeit geraten, eine Partition wiederherstellen
zu müssen, startet man natürlich wieder die Live-CD, hängt den
Datenträger mit dem Backup ein (im Beispiel wieder nach /mnt
) und gibt
den Befehl ein:
gunzip -c /mnt/sda3.img.gz|dd of=/dev/sda3
Hier passiert das Vorgehen von oben andersherum: gunzip entpackt die
Datei und der Schalter -c
legt fest, dass die Ausgabe nicht in eine
Datei erfolgen soll, damit wir sie mit dem |
an
dd` weiter-pipen können, das damit die Partition
/dev/sda3``
überschreibt. Dabei muss natürlich die selbe Partition gewählt werden
oder zumindest eine, die größer ist als die gesicherte!
Alternativen
Sollte man kompliziertere Anliegen haben, etwa Netzwerkserver als Ziel für Backups verwenden möchte oder sonstige Sonderwünsche hat, empfiehlt sich die Verwendung von Partimage, das auf verschiedenen Live-CDs mitgeliefert wird.
Soll es ein auf Backups ausgerichtetes Spezialsystem sein, ist CloneZilla interessant.