borg ist ein deduplizierender Archivierer mit Verschlüsselung und FUSE-Mount. Diese Referenz zeigt Repository, Archive, Prüfung, Aufbewahrung und Wiederherstellung.

Repository anlegen

export BORG_REPO=/mnt/backup/host01
export BORG_PASSCOMMAND='cat /etc/borg/pw'

# Verschlüsselung mit Schlüssel im Repository
borg init --encryption=repokey "$BORG_REPO"

# Verschlüsselung mit lokaler Schlüsseldatei
borg init --encryption=keyfile "$BORG_REPO"

# Ohne Verschlüsselung (nur für Testdaten)
borg init --encryption=none "$BORG_REPO"

Wichtig: repokey speichert den Schlüssel im Repository – zum Wiederherstellen genügt das Passwort. keyfile legt ihn lokal ab; dann braucht man Datei und Passwort. Bei keyfile unbedingt borg key export --paper aufbewahren, sonst ist bei Verlust der Datei alles weg.

Archive erstellen

# Archivname mit Datum
borg create --stats --compression zstd \
  "$BORG_REPO::etc-{now:%Y-%m-%dT%H:%M:%S}" /etc /home

# Mit Ausschlüssen
borg create ::home-{now:%Y-%m-%d} /home \
  --exclude '*.iso' --exclude '*/node_modules' --exclude-caches

# Prüfsumme und Fortschritt
borg create --stats --progress --list ::full-{now} /srv

Umschalten und Ansehen

borg list "$BORG_REPO"                    # Archive auflisten
borg info "$BORG_REPO"                    # Repository-Informationen
borg info "$BORG_REPO::etc-2026-09-26"    # Details eines Archivs
borg list "$BORG_REPO::etc-2026-09-26"    # Dateien im Archiv
borg list "$BORG_REPO::etc-2026-09-26" /etc/nginx   # Unterpfad

Vergleichen

borg diff "$BORG_REPO::etc-2026-09-25" etc-2026-09-26
borg diff "$BORG_REPO::a" b /etc/nginx/nginx.conf

Wiederherstellen

# Vollständig in ein Verzeichnis
cd /mnt/restore
borg extract "$BORG_REPO::etc-2026-09-26"

# Nur ein Pfad
borg extract "$BORG_REPO::etc-2026-09-26" etc/nginx/nginx.conf

# Aus dem Archiv heraus streamen
borg extract --stdout "$BORG_REPO::etc-2026-09-26" etc/nginx/nginx.conf > /tmp/nginx.conf

# Archiv als Dateisystem einbinden
mkdir /mnt/borg
borg mount "$BORG_REPO::etc-2026-09-26" /mnt/borg
ls /mnt/borg/etc/nginx
borg umount /mnt/borg

Aufbewahrung und Prüfung

# Erst ansehen, was entfernt würde
borg prune --list --dry-run --keep-daily 7 --keep-weekly 4 --keep-monthly 12 "$BORG_REPO"

# Dann ausführen
borg prune --list --keep-daily 7 --keep-weekly 4 --keep-monthly 12 "$BORG_REPO"

# Konsistenz und Datenintegrität
borg check "$BORG_REPO"
borg check --verify-data "$BORG_REPO"
borg check --repair "$BORG_REPO"      # nur mit Sicherung!

borg prune mit --dry-run vorher anzuschauen ist keine Vorsicht, sondern Pflicht: Ein falsch geratenes Aufbewahrungsraster entfernt mehr als beabsichtigt, und das ist endgültig.

Wartung des Repositories

borg compact "$BORG_REPO"        # freien Platz nach prune tatsächlich freigeben
borg key export "$BORG_REPO" /mediensicher/keybackup.txt
borg key import "$BORG_REPO" /mediensicher/keybackup.txt
borg with-lock "$BORG_REPO" borg check --verify-data

Ohne borg compact bleibt der Platz nach einem prune belegt. Der Schlüssel-Export gehört auf einen anderen Datenträger als das Repository – sonst ist er im Schadensfall ebenfalls verloren.

Verwandte Grundlagen: Borg, restic-Befehle, Backup, Deduplizierung.