Inhaltsverzeichnis
Systembackup
Als Backup für mein Notebook setze ich eine externe Festplatte mit USB 2.0-Anbindung ein. Bei der Festplatte handelt es sich um eine Western Digital Caviar Green 640GB WD640. Das Gehäuse ist ein RaidSonic IB-351U-B ICY in Schwarz. Das Backup beinhaltet zum einen meine persönlichen Daten aus dem /home-Verzeichnis, das /etc-Verzeichnis, sowie eine Paketliste von apt bzw. dpkg, womit im Grunde das System wieder komplett hergestellt werden kann. Im folgenden soll die komplette Vorbereitung der Festplatte, des Backupssystems, des Backups selbst, sowie das Rückspielen des Backups erläutert werden.
Festplattenvorbereitung
Da ich das Dateisystem ext3 bereits auf meinem Notebook einsetze habe ich mich dafür entschieden auch die Festplatte mit diesem Dateisystem zu bestücken. Folgende Schritte sind dazu notwendig.
Festplatte partitionieren
Mit sudo cfdisk /dev/*platte* cfdisk im interaktiven Modus starten (Dateisystem darf nicht eingebunden sein). Anschließend eine neue Partionierung vornehmen und mit einem Linux-Dateisystem (83) markieren. In meinem Fall nimmt eine primäre Partition den kompletten Speicher von 640 GB in Anspruch.
ext3-Dateisystem einrichten
Mit folgendem Kommando wird das ext3-Dateisystem eingerichtet:
mkfs -t ext3 /dev/*plattenpartition*
Festplatte immer im gleichen Verzeichnis einbinden
Dazu einfach folgenden Befehl ausführen:
sudo tune2fs -L backupdisk /dev/sdb1
Dadurch bekommt die Festplatte ein Label gesetzt dieses udev verwendet um den Mountpunkt bzw. Name des Verzeichnises zu definieren.
Backupsystem einrichten
Paketlisten backup
Mit dem nachfolgenden Kommando kann eine Liste aller Pakete im System erzeugt werden, diese dann in der Datei packages.list gespeichert wird.
dpkg --get-selections | awk '!/deinstall|purge|hold/ {print $1}' > packages.list
Um dies zu automatisieren nutze ich folgendes backup_packages.sh-Script. Dieses Script speichert im aktuellen Verzeichnis eine Datei mit dem namen packages.list.
#!/bin/sh #Erstellung der Paketliste und abspeichern dpkg --get-selections | awk '!/deinstall|purge|hold/ {print $1}' > packages.list
rsnapshot ruft dieses Script auf (siehe unten) und führt es in einem temporären Verzeichnis aus. Anschließend wird die erstellte Liste nach /media/backupdisk/backups/paketliste kopiert.
Wichtig ist das diese Datei ausschließlich für root schreibbar sein darf. Da rsnaphot mit root-rechten gestartet wird, könnte eine andere Konfiguration zu Problemen führen, da eine Dritte-Person so Befehle als root ausführen könnte.
rnsapshot einrichten
Im Grunde erstelle ich dann auf der Festplatte nur noch zwei Verzeichnisse.
mkdir /media/backupdisk/backups/ mkdir /media/backupdisk/backups/paketliste
und ersetze unter /etc/rsnapshot.conf die Datei mit folgender rsnapshot.conf
Dabei ist vor allem die letzte Zeile interessant. rsnapshot führt das oben erstellte Script aus und speichert die Ausgabe in das zuvor auf der Festplatte erstellte Verzeichnis „paketliste“.
Backup durchführen
Da die Festplatte nicht dauerhaft an meinem Notebook angeschlossen ist, werden alle Backups manuell ausgeführt. Da auch die Paketliste automatisch mit gesichert wird reicht es, eines der folgenden drei Kommandos auszuführen (mit sudo unter Ubuntu)
sudo rsnapshot daily sudo rsnapshot weekly sudo rsnapshot monthly
Die Namen daily, weekly, monthly haben keine Bedeutung für das Backupintervall. Sie sind willkürlich. Erst durch einen Cronjob würden diese automatisch erstellt werden. Für die Organisation der Backups ist folgendes anzumerken. Das letzte Backup vom daily-Intervall bildet das erste Backup vom weekly-Intervall, selbiges gilt bei monthly, etc.
Rückspielen vom Backup
Dateien
Die Dateien werden von hand per cp kopiert. Für Config-Dateien in /etc/ empfiehlt es sich diese einzeln und nicht komplett zu kopieren, so schließt man mögliche Fehler direkt aus.
Paketliste
Mit folgendem Kommando können aus der Datei packages.list die Pakete wieder automatisch installiert werden.
xargs -a "packages.list" sudo apt-get install
Tipp: Zuvor alle nicht benötigten Pakete bzw. deren Zeilen händisch löschen.