Partimage #
Partimage (http://www.partimage.org) ist ein ausgezeichnetes Programm, um Daten zu sichern. Manchmal ist es sinnvoll, eine ganze Partition zu sichern. Dies gibt einem z.B. die Möglichkeit, das gesamte System später wieder in den Ursprungszustand zu versetzen. Dies ist insbesondere auch bei Microsoft-Betriebssystemen sehr interessant, weil diese oft dazu neigen, in einen instabilen Zustand zu geraten und man diese dann so gut wie gar nicht reparieren kann. Aber auch das Backup ganzer Linux-Partitionen kann als regelmäßiges Komplett-Backup Teil einer sinnvollen Backup-Strateie sein.
Partimage ist nun ein Programm, das genau dies tut. Im Gegensatz zur "einfachen" Lösung z.B. mit einer Pipe aus dd und tar "erkennt" partimage den Partitionstyp und sichert nur benutzte Bereiche der Partition. Dabei werden zuverlässig ext2, ext3, fat, ntfs, u.a. bearbeitet. Wird das ackup wiederhergestellt, liegt nachher wieder jeder Datenblock genau an der gleichen Stelle wie vorher (wie man es von einem Partitionsbackup erwartet), so daß Systemdateien, Kernel und Bootfiles an der richtigen Stelle sind. Die unbenutzten Datenblocks werden jedoch nicht mitgesichert (wie man es von einem Dateibackup erwartet).
Partimage kann zum Packen der Zieldatei gzip oder bzip2 verwenden. Man kann auch die Zieldatei aufteilen, um so z.B. 650MB-Blöcke zu erhalten, die man auf CDs brennen kann.
Ein weiterer Vorteil ist die Netzwerktauglichkeit des Programms. Man kann so z.B. einen wildfremden Rechner (sprich: einen Windows-Rechner) sichern, indem man ihn mit Knoppix bootet und dann die Daten von einem Partimage-Server im Netzwerk sichern lässt.
Installation #
Einfach das Debian-Paket partimage installieren und fertig. Als Neuling sollte man noch partimage-doc dazunehmen, das eine gute HTML-Dokumentation enthält. Natürlich steht diese aber auch unter http://www.partimage.org
Wer einen Server aufsetzen will, braucht das Paket partimaged. Bei der Installation wird gefragt, ob der Server direkt gestartet werden soll. Wer da "ja" sagt, hat schon fast alles fertig. Es muss lediglich noch in die Datei /etc/partimaged/partimagedusers eine Zeile für einen vorhandenen Linux-User angelegt werden. Einfach den Usernamen reingeschrieben, Server neu gestartet und fertig!
Sicherung auf eine lokale Platte #
Wer einfach partimage aufruft, bekommt ein sehr hübsches und übersichtliches Userinterface, das eigentlich alles von alleine erklärt. Wichtig ist natürlich, dass man sich vorher Gedanken macht, dass man auch genug Platz im Zielverzeichnis hat, aber das sollte klar sein.
Sicherung übers Netzwerk #
Wer den Server nicht per Startskript gestartet hat, weil er nur hin und wieder mal partimage verwenden will, geht am besten per CD in das Zielverzeichnis, wo die Dateien abgelegt werden sollen und startet mit partimaged den Server. Eine Übersichtsseite zeigt die Verbindungen und Tätigkeiten des Servers an. Leider habe ich nicht herausgefunden, wie man ihn wieder beendet. Ein killall partimaged in einer zweiten Shell tat mir dann den Gefallen.
Auf dem Client geht nun eigentlich alles wie bei der lokalen Sicherung auch. Man kreuzt lediglich die Netzwerksicherung an und gibt die Adresse (Hostname oder IP-Adresse) des Servers an. Die Übertragung ohne SSL-Verschlüsselung ging bei mir übrigens nicht, aber schaden tat die Verschlüsselung auch nicht.
Geschwindigkeit #
Bei mir habe ich auf zwei Rechnern, die mit einem 100MBit-Netz verbunden waren, eine Geschwindigkeit von 120 MB/Minute erreicht. Diese Geschwindigkeit gilt allerdings für die Größe der gepackten Zieldatei.
-- ThomasBayen
Alternativen #
Andere Backupprogramme, um ganze Partitionen zu sichern, scheint es unter Linux nicht wirklich zu geben. Aber natürlich darf man den Linux-Baukasten nicht vergessen, der Tools wie dd, gzip, ssh u.a. zur Verfügung stellt. Eine gute Seite zum Thema ist http://www.inference.phy.cam.ac.uk/saw27/notes/backup-hard-disk-partitions.html. Die dortige Methode läuft auf folgende Befehle zum Backup und Restore hinaus:
dd if=/dev/hda1 bs=1k conv=sync,noerror | gzip -c | ssh -c blowfish user@hostname "dd of=filename.gz bs=1k" dd if=filename.gz | ssh -c blowfish root@deadhost "gunzip -c | dd of=/dev/hda1 bs=1k conv=sync,noerror"
Der Haupt-Unterschied dieser Methode ist, daß das Filesystem in der Partition nicht erkannt wird, um nur die belegten Blocks zu speichern, sonder die Partition wird in Ihrer ganzen Länge gespeichert. Ein Vorteil ist, daß durch o.g. Optionen auch defekte Festplatten so gut es geht gesichert werden können, während partimage bei Lesefehlern abbricht.
Nach einiger Zeit habe ich doch noch eine echte Alternative gefunden. Wer sich dafür interessiert, kann sich ja mal G4U anschauen.