Verschlüsselte und komprimierte Datensicherung mit BorgBackup

Kein Backup? Kein Mitleid! Ist ein treffendes Motto aus der IT-Welt. Deswegen gilt auch hier der bekannte Leitsatz: Vorsorge ist besser als Nachsorge. Um die eignen Daten sicher und vor unbefugten Zugriffen geschützt abzulegen, bieten sich verschiedene Varianten an. Für den privaten Gebrauch nutze ich jetzt seit einiger Zeit BorgBackup.

BorgBackup oder auch nur kurz Borg ist ein mächtiges Kommandozeilenprogramm zur inkrementellen, komprimierten sowie auch verschlüsselten Datensicherung mittels AES. Daneben ist es nicht auf ein Betriebssystem beschränkt, sondern läuft auf MacOS sowie auf verschiedenen Linux Distributionen. Ab Windows 10 kann es über das Windows Subsystem für Linux (WSL) benutzt werden. Aktuell liegt das Programm in der Version 1.2.3 vor und die Version 2.0 befindet sich gerade in der Entwicklung.

Installation

In MacOS kann Borg mithilfe von HomeBrew auf den heimischen Rechner installiert werden.

brew install borgbackup

In der oben aufgeführten Installationsmethode sind ausschließlich OpenSource-Komponenten enthalten. Dadurch ist eine Komfortfunktion nicht vorhanden, indem der Ordner als temporäres Laufwerk mit dem Befehl „borg mount“ eingebunden wird. Unabhängig davon funktioniert das Ver- und Entschlüsseln von Dateien und Ordnerstrukturen hier trotzdem tadellos. Es wird lediglich mehr Festplattenspeicher benötigt.

brew install --cask macfuse
brew install borgbackup/tap/borgbackup-fuse

Mit der angepassten Version von ThomasWaldmann ist das einhängen von Ordner als Laufwerke gegeben.

Unter Linux ist die Installation ebenfalls mit einem Kommando erledigt:
Für Debian und Ubuntu basierte OS:

apt install borgbackup

Arch:

pacman -S borg

Fedora:

dnf install borgbackup

Borg in Aktion

Schritt 1: initialisieren eines verschlüsseltes Repository

Bevor Borg seinen ganzen Charme ausspielen kann, muss zunächst ein sogenanntes Repository mit Borg initialisiert werden. Dieses Repository ist der Ordner, in dem die Daten abgelegt werden. Mit dem Parameter -e im Zusammenspiel mit „repokey“ werden die Daten mit einem selbtst gewähltem Passwort verschlüsselt. Alternativ geht dies auch mit einer Schlüsseldatei „keyfile“. Im folgenden Beispiel können wir uns ein Passwort überlegen und eingeben.

borg init -e repokey /DeinPfad/borg-backup

Schritt 2: komprimiertes Archiv mit Borg erstellen

borg create -s -p -e '*.DS_Store' -C zlib /DeinPfad/borg-backup::2023-01-30-Borg-Dokumente ~/Dokumente/ ~/Downloads/

Bei dem eben genannten Befehl gibt es noch ein paar weitere Möglichkeiten zur Einstellung des gewünschten Ergebnisses. Nun der Reihe nach. Mit borg create wird ein Archiv mit dem Namen „2023-01-30-Borg-Dokumente“ erstellt. Persönlich finde ich das Datum im Iso-Format ganz ansprechend, jedoch seid ihr hier ganz frei eurer Kreativität freien Lauf zu lassen. Wichtig ist, dass ihr die :: nicht vergesst. Mit dem Parameter -s gebt ihr den Status, mit -p den Fortschritt im Terminal aus. Der Parameter -e ist nützlich, falls ihr Dateien von der Sicherung ausschließen wollt. Diese könnt ihr dann innerhalb der einfachen Anführungsstriche angeben. Das * ist ein universeller Platzhalter für beliebig viele Symbole. Die nervigen .DS_Store-Dateien sind somit im Backup nicht enthalten. Mit dem Parameter -C für compress kann die Komprimierung gesteuert werden. Hier bietet borg verschiedene Möglichkeiten an, welche sich in Geschwindigkeit und Kompression unterscheiden.

Nun bleibt noch die Frage zu klären, welche Ordner wir hier eigentlich sichern. Im Konkreten Fall werden die Ordner Dokumente und Downloads sowie alle darunter liegenden Dateien gesichert.

Schritt 3: Wiederherstellen von Daten (Backup testen)

Um zu schauen, ob alles geklappt hat kann man das Archiv testen. Der einfachste und anschaulichste Test ist, das Borg-Archiv zu entpacken. Dabei solltet ihr beachten, dass ihr das Archiv in das aktuelle Verzeichnis im Terminal entpackt. Wichtig dabei ist, dass ihr hier auch den benötigten Speicherplatz auf dem Rechner habt. Falls dieser schon sehr knapp sein sollte lohnt sich der Parameter –dry-run oder kurz -n zu setzten. Damit wird das Entpacken des Verzeichnisses jedoch nur simuliert.

borg extract --list /DeinPfad/borg-backup::2023-01-30-Borg-Dokumente 

Einen alternative Testmöglichkeit gibt es mit den Befehlen

# Komplette Verschlüsselung des Archives und der darin enthaltenen Dateien wird überprüft
# Geschwindigkeit: langsam Genauigkeit: exakt
borg --verify-data check /DeinPfad/borg-backup::2023-01-30-Borg-Dokumente 

# hier werden nur die Hashwerte der Archive und Repositroys überprüft
# Geschwindigkeit: mittel Genauigkeit: mittel
borg check --archives-only /DeinPfad/borg-backup::2023-01-30-Borg-Dokumente 

# hier werden nur die Hashwerte der Repositorys überprüft
# Geschwindigkeit: schnell Genauigkeit: grob
borg check --repository-only /DeinPfad/borg-backup::2023-01-30-Borg-Dokumente 

Schritt 4: Backup einhängen und cherry picking

Da es vor allem bei großen Backups nicht wirklich effizient ist das gesamte Verzeichnis zu extrahieren, um an einzelne Dateien zu gelangen gibt es auch dafür eine Lösung. Mit dem Befehl „mount“ kann das Borg-Archiv in einen selbstgewählten Ordner eingehängt werden.

mkdir ~/mnt/
borg mount /Volumes/Transport/borg-backup::2023-01-29-Dokumente ~/mnt

Den Ordner zum Einhängen habe ich im Homeverzeichnis mit dem Namen „mnt“ angelegt. Wichtig: das eingehangene Archiv sollte nachher unbedingt wieder ausgehangen werden, ansonsten kann es ggf. zu Datenverlust kommen.

Fazit

Borg macht aus meiner Sicht eine gute Figur in Sachen komprimierter Datensicherung. Vor Allem bei wiederholten Backups macht sich die Geschwindigkeit deutlich bemerkbar, da hier nur die veränderten Dateien geschrieben werden. Bei meinem Beispiel von oben hat der erste Durchlauf 20 Minuten und 7 Sekunden gedauert. Beim zweiten Durchlauf waren es gerade einmal 1.2 Sekunden. Das finde ich schon sehr beeindruckend. Zugegebenermaßen sind hier nur eine Handvoll Textdokumenten dazu gekommen.
Bei vielen ähnlichen, statischen Dateien und Dokumenten im Bestand wird somit viel an Speicherplatz und vor Allem an Zeit gespart. Die Verschlüsselung mit AES kann durch eine Schlüsseldatei oder ein ausreichend starkes selbstgewähltes Passwort erfolgen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert