BorgBackup, das grafische Frontend Vorta und der Storage-Service BorgBase bilden ein Trio, mit dem Sie Ihre Backups stressfrei erledigen.
Der alte Spruch “real men don’t make backups” klingt zwar lässig, aber jeder, der seine Daten gern behalten möchte, tut dessen ungeachtet gut daran, sich eine Datensicherungsstrategie zu überlegen und sie konsequent umzusetzen. Je wichtiger die Daten, desto sicherer sollte man das Backup aufbewahren. Dabei gilt es, unersetzliche Daten am besten doppelt zu sichern, wobei ein Sicherungsort außerhalb der eigenen vier Wände liegen sollte.
Linux bietet dafür eine Vielzahl an Backup-Anwendungen, sowohl für den häuslichen Gebrauch als auch für professionelle Ansprüche. Viele davon basieren auf dem Netzwerkprotokoll Rsync. Einige beschränken sich auf den Desktop, andere eignen sich auch für das Sichern von Daten auf entfernten Servern. Zu Letzteren zählt auch das mächtige und für viele Systeme verfügbare BorgBackup [1] oder kurz Borg, das wir Ihnen an dieser Stelle vorstellen. Es basiert nicht auf Rsync, sondern stellt eine komplette Eigenentwicklung dar.
BorgBackup
Das in Python 3 geschriebene Borg definiert sich über die Begriffe Deduplizierung, Komprimierung und authentifizierte Verschlüsselung. Sie bedienen es über die Kommandozeile oder alternativ über die grafische Anwendung Vorta. Backups speichert es in Repositories, deren Untergruppen im Borg-Jargon Archive heißen. Während Komprimierung und Verschlüsselung keiner Erklärung bedürfen, lassen Sie uns kurz erläutern, was Deduplizierung bei Borg bedeutet.
Unter Deduplizierung versteht man generell eine Technik für das platzsparende Speichern von Inhalten, die Daten in gleich große Blöcke (im Borg-Sprech: “Chunks”) unterteilt und diese jeweils mit einer Prüfsumme versieht. Taucht nun bei einer neuen Datei eine bereits bekannte Prüfsumme auf, deutet das auf einen bereits vorhandenen Block hin. Erst dann vergleicht die Software den Dateiinhalt, um sicherzugehen, dass er identisch ist. Dabei beschränkt sich die App nicht auf die Dateiebene, sondern speichert auch kleine Änderungen an großen Dateien als Chunks, was das Deduplizieren sehr effektiv gestaltet. Dateien erkennt das Programm auch dann noch, wenn diese zwischenzeitlich verschoben oder umbenannt wurden.
Borg steht in den Repositories der meisten gängigen Linux-Distributionen zur Installation bereit, das Paket heißt entweder borg oder borgbackup. Möchten Sie Borg für den Client-Server-Betrieb aufsetzen, müssen Sie die Software auf allen beteiligten Rechnern installieren. Ist die von der verwendeten Distribution paketierte Borg-Version zu alt, lässt sich die Installation auch aus dem Quelltext, als Binary oder per Pip oder Git vornehmen. Die Borg-Dokumentation [2] beschreibt das Vorgehen ausführlich.
Deduplizierung
Das vorrangige Vergleichen von Prüfsummen spart Zeit gegenüber dem Vergleich des Dateiinhalts bei jedem Block. Daneben verbraucht die Methode auch weniger Speicherplatz, da sie im Fall von zwei gleichen Blöcken den zweiten löscht und durch einen Verweis auf den identischen ersten Block ersetzt. All dies prädestiniert Borg für Anwendungsfälle, in denen sich etwa Arbeitsverzeichnisse ständig ändern. Sie lassen sich dann stündlich sichern, ohne dass dabei große Datenmengen anfallen. Zusätzlich zum Deduplizieren unterstützt Borg auch eine Datenkompression nach den Standards LZ4, LZMA, Zlib und Zstd.
Repos und Archive
Wir gehen in unserem Beispiel zunächst davon aus, dass wir Verzeichnisse eines Notebooks auf eine externe Festplatte sichern. Dazu genügt es, Borg auf dem Quellrechner zu installieren. Alternativ lassen sich die Sicherungen auch per SSH auf einem entfernten Server ablegen (Abbildung 1).
Das setzt aber voraus, dass die Software dort ebenfalls eingerichtet ist. Borg legt die erstellten Backups in Repositories und dort in Ordnern (Archive genannt) ab. Vorab gilt es, mindestens ein solches Repository auf dem Zielrechner oder einer externen Festplatte zu erstellen und initialisieren (Abbildung 2). Das erledigen in unserem Beispiel die ersten drei Zeilen aus Listing 1.

Abbildung 2: Beim Sichern auf einen externen Datenträger im heimischen Netz muss Borg nur auf der Quelle installiert sein. Das Initialisieren der Repositories verläuft wie bei Remote-Maschinen.
Listing 1
Repository vorbereiten und installieren
$ cd /media/extern $ sudo mkdir borgbackups $ sudo borg init -v -e repokey media/extern/borgbackups $ sudo borg create --stats /media/extern/backups::1 ~/Bilder ~/Dokumente $ sudo borg list /media/extern/borgbackups $ sudo borg extract /media/extern/borgbackups::1
Legen Sie das Repository mit der Option -e verschlüsselt an, fragt die Software ein Passwort ab. Am Anfang ist es sinnvoll, bei Befehlen die Option -v anzuhängen, die für eine ausführliche Ausgabe sorgt. Danach steht Borg für ein erstes Backup bereit (Listing 1, Zeile 4). Das Kommando borg create (Abbildung 3) erstellt die Sicherung in dem angegebenen Pfad zum Repository. Der Name des Archivs, in dem die App das Backup ablegt, lautet in unserem Beispiel 1; den entsprechenden Ordner erstellt die Software automatisch.

Abbildung 3: Mit borg create wird hier ein Archiv des Ordners namens Bilder angelegt. Die Option --stats sorgt für eine ausführliche Ausgabe.
Danach folgen die zu sichernden Ordner. Der Schalter --stats sorgt für die Ausgabe von Statistiken über das neu erstellte Archiv, wie die Menge der einzelnen Daten, den Grad der Deduplikation und die Anzahl der Chunks. Der Befehl aus der fünften Zeile von Listing 1 zeigt alle Archive im Repository an (Abbildung 4).

Abbildung 4: Dem bereits vorhandenen Archiv mit dem Verzeichnis ~/Bilder fügt die Software ein weiteres namens ~/Dokumente hinzu. Darunter zeigt die Option list die erstellten Archive.
Wiederherstellung
Um das zuerst erstellte Archiv wiederherzustellen, nutzen Sie den Befehl aus der letzten Zeile von Listing 1. Die Backups lassen sich nicht nur komplett wiederherstellen, sondern auch mittels FUSE einhängen, durchsuchen und stückweise rekonstruieren. Zum Löschen eines Archivs ersetzen Sie im Borg-Befehl extract durch delete. Sorgen Sie immer für ausreichend Platz auf dem Dateisystem, das Ihr Repository enthält. Sollte der Platz dort komplett belegt sein, wird es schwierig, Platz durch Löschen von Archiven zu schaffen. Der Backup-Vorgang lässt sich durch ein Skript, das die Dokumentation ausführlich beschreibt, zu den gewünschten Zeiten automatisieren.
Hier wird es dann für den Hausgebrauch komplizierter als notwendig. Deshalb rufen wir mit Vorta (Abbildung 5) eine grafische Oberfläche auf den Plan. Sie wird vom Hosting-Dienst BorgBase entwickelt, auf den wir weiter unten noch eingehen. Auch diese Software finden Sie in den Paketquellen der gängigen Distributionen.

Abbildung 5: Vorta erleichtert das Steuern von Borg und setzt die wichtigsten Befehle grafisch um. Das hier eingebundene Repository stammt von BorgBase, dem Hosting-Dienst hinter Borg.
Die Qt-Anwendung setzt die für den Alltagsbetrieb wichtigen Funktionen von Borg um. Dabei orientiert sich die grafische Gestaltung an der von bekannteren Backup-Programmen wie etwa Back In Time oder Déjà Dup. Zunächst wird ein Repository erstellt, das sowohl lokal als auch auf einem entfernten Server liegen kann (Abbildung 6). Alternativ können Sie bestehende Repositories einbinden. Zur Authentifizierung auf entfernten Rechnern erstellt die Software ein neues SSH-Schlüsselpaar oder nutzt ein bestehendes. Im Vergleich zu Back in Time fallen die Backups von Borg rund 40 Prozent kleiner aus.

Abbildung 6: Für verschiedene Backup-Jobs legen Sie weitere Repositories an. Bei BorgBase ist deren Anzahl unbegrenzt.
In Vorta legen Sie für verschiedene Aufgaben neue Repositories an. So sichern Sie nachts beispielsweise das gesamte Heimatverzeichnis, in einem zweiten Profil erstellen Sie während der Arbeit jede Stunde eine Kopie des Homes (Abbildung 7).

Abbildung 7: Um Ordner und Dateien vom Backup auszuschließen, tragen Sie die entsprechenden Pfade unten links in die Maske ein.
Zum Wiederherstellen bietet Vorta zwei Wege an, die beide über den Reiter Archive führen. Nach der Auswahl des gewünschten Archivs sehen Sie am rechten Rand unter anderem die Optionen Entpacken und Einhängen. Wählen Sie Entpacken, dann sehen Sie in einem neuen Fenster das Backup mit dem vollen Pfad. Markieren Sie das wiederherzustellende Verzeichnis und klicken Sie dann auf Entpacken. Im nächsten Fenster wählen Sie den Punkt, an dem Sie das Backup einfügen möchten.
Die zweite Möglichkeit führt über den Schalter Einhängen. Im nächsten Fenster wählen Sie einen Einhängepunkt aus. Dabei handelt es sich um das Verzeichnis, das Vorta verwendet, um Ihnen Zugriff auf die Sicherung zu geben, als ob sie sich noch auf dem Dateisystem befinden würde. Stellen Sie sicher, dass es sich beim Einhängepunkt um einen leeren Ordner handelt. Nach dem Einhängen erhalten Sie eine entsprechende Meldung. Das bedeutet, dass Sie jetzt in der Lage sind, auf das von Ihnen ausgewählte Archiv über den von Ihnen gewählten Einhängeordner zuzugreifen. Mit Ihrem bevorzugten Dateimanager stellen Sie nun die gewünschten Dateien wieder her, indem Sie diese direkt aus dem Archiv kopieren und im Ziel einfügen. Nach Abschluss des Vorgangs klicken Sie rechts auf Aushängen (Abbildung 8).

Abbildung 8: Die Archive von Borg lassen sich mit Vorta schnell wiederherstellen. Dazu dienen die Optionen Entpacken und Einhängen. Letztere erweist sich als etwas flexibler, da Sie damit das Archiv per FUSE in einen Ordner des Zieldateisystems einhängen.
Rechts stellen Sie über den Schalter Unterschiede fest, worin sich zwei Archive unterscheiden, während Prüfen die Integrität eines Archivs ermittelt. Ein Klick auf Ausdünnen entfernt ältere Archive. Wie viele Borg entfernen soll und welche Sie behalten möchten, legen Sie in den Einstellungen der Ausdünnungsoptionen fest.
BorgBase
Möchten Sie Ihre Backups außer Haus ablegen, wollen aber selbst keinen Server betreiben, dann bietet sich der bereits erwähnte Hoster BorgBase [3] an, der Speicherplatz bereits ab 2 Euro monatlich anbietet. Für diesen Betrag erhalten Sie 100 GByte Storage für bis zu 10 Repositories. BorgBase bietet neben den USA auch Europa als Server-Standort an.
Nach der Registrierung bei dem Dienst und dem Bestätigen Ihrer E-Mail-Adresse loggen Sie sich auf der Webseite ein. Dort finden Sie einen kostenlosen Test-Account vor, der ohne zeitliche Beschränkung bis zu 10 GByte Daten in maximal zwei Repositories aufnimmt. Als Erstes tragen Sie über SSH Keys und Add Key einen öffentlichen SSH-Schlüssel ein. Falls Sie keinen besitzen, legen Sie mit dem Befehl ssh-keygen -t ed25519 -b 4096 ein neues Schlüsselpaar an, das Sie anschließend im versteckten Verzeichnis ~/.ssh finden. Kopieren Sie den Fingerabdruck des Schlüssels mit der Endung .pub in die Maske von BorgBase und bestätigen Sie den Vorgang.
Daraufhin binden Sie Ihr erstes Repository ein und übernehmen die Voreinstellung EU als Standort. Die weiteren Einstellungen gestalten sich weitgehend selbsterklärend. Unter Access wählen Sie den Schlüssel für den Vollzugriff aus und legen unter Monitoring fest, ob und wann Sie benachrichtigt werden möchten, sollte das Erstellen der Backups scheitern. Unter Advanced setzen Sie am besten einen Haken bei Enable Storage Limit, sonst wechselt der Account beim Überschreiten der 10-GByte-Marke automatisch in einen kostenpflichtigen Plan.
Bevor Sie in Vorta ein erstes Backup anstoßen, klicken Sie auf das Icon links neben dem soeben angelegten Repository. Das kopiert den Pfad zum Repo in die Zwischenablage, den Sie in Vorta benötigen, um sich dort mit BorgBase zu verbinden. In Vorta klicken Sie auf das Pluszeichen rechts neben der Repository-Adresszeile und wählen Neues Repository. Dorthin übertragen Sie den soeben kopierten Pfad und vergeben ein Passwort. Ein Klick auf Hinzufügen verbindet dann das entfernte Repository mit dem lokalen Vorta-Client. Nun können Sie Ihre erste Sicherung mit BorgBase erstellen. Sollte die Verbindung nicht zustande kommen, werfen Sie einen Blick in die Problemlösungen [4] für diesen Fall. Fast immer liegt es am SSH-Key und dessen Integration.
Ein besonderes Maß an Sicherheit bietet der Modus append-only, was so viel heißt wie “nur anhängen”. Jedes Repository lässt sich in diesen Modus versetzen. Das bedeutet, dass Borg darin übertragene Daten niemals überschreibt oder löscht, auch nicht das Repository als Ganzes. Dieser Modus lässt sich derzeit nur per Kommandozeile nutzen. Der Befehl borg config /Pfad/zum/Repo append_only 1 schaltet ihn ein, umgekehrt append_only 0 wieder aus.
Fazit
Bei BorgBackup handelt es sich um ein vitales Open-Source-Projekt, das auf Github [5] über 250 Entwickler versammelt. Es bestand mehrere Peer Reviews [6] und verfügt über eine ausgezeichnete Dokumentation [7].
Das Hauptziel von Borg besteht darin, eine effiziente und sichere Möglichkeit zur Datensicherung zu bieten. Dank der verwendeten Deduplizierungstechnik eignet es sich für tägliche oder stündliche Backups, da es nur Änderungen speichert. Die authentifizierte Verschlüsselungstechnik ermöglicht Sicherungen auch auf nicht vollständig vertrauenswürdige Ziele.
Mit Vorta steht eine GUI der Borg-Entwickler bereit, die die wichtigsten Funktionen in eine grafische Oberfläche integriert. Darüber hinausgehende Arbeiten erledigen Sie auf der Kommandozeile. Möchten Sie Borg ausschließlich am Prompt steuern, sehen Sie sich am besten einmal das Skript Borgmatic [8] an, das auf Borg aufbaut. Am anderen Ende steht mit BorgBase die Sorglos-Alternative, die die Arbeit den Profis überlässt und zudem über die zu entrichtenden Beiträge Borg direkt unterstützt.
Eine Alternative zu Borg bietet Restic [9], das sich im Gegensatz zu Borg auch für direkte Backups auf Cloud-Speicher wie Amazon S3, Wasabi, Backblaze B2 oder Google Cloud Storage eignet. Allerdings dedupliziert Restic anders als Borg nicht auf Block-, sondern nur auf Dateiebene. (tle)
Infos
-
BorgBackup-Pakete: https://repology.org/project/borgbackup/versions
-
BorgBackup installieren: https://borgbackup.readthedocs.io/en/stable/installation.html
-
BorgBase: https://www.borgbase.com
-
BorgBackup-FAQ: https://docs.borgbase.com/faq/#all-connections-to-a-borgbase-repo-fail-with-an-error-immediately
-
BorgBackup auf Github: https://github.com/borgbackup/borg
-
Peer Review: https://de.wikipedia.org/wiki/Peer-Review
-
BorgBackup-Dokumentation: https://borgbackup.readthedocs.io/en/stable/installation.html
-
Borgmatic: https://torsion.org/borgmatic/
-
Restic: https://restic.net






