Da der Speicherplatz des Datenträgers mit einem Borg-Repo langsam voll wurde, hatte ich das zu sichernde Verzeichnis etwas entschlackt und mehrere GB an Daten gelöscht. Dann habe ich ein neues Archiv mit Borg erstellt.

Die Zusammenfassung nach dem Ausführen von borg create […] zeigte, dass das aktuell erstellte Archiv nur noch 150 GiB benötigte. Dann löschte ich alle älteren Archive, sodass sodass nur das eben erstellte Archiv (Backup) erhalten blieb.

Dann führte ich borg compact1 aus, doch es wurde kein Speicherplatz freigegeben und auf dem Datenträger waren weiterhin ca. 224 GiB Speicherplatz belegt.

borg list zeigte aber nur das einzig vorhandene Archiv an. Seltsam, wo war der Speicherplatz geblieben und wieso waren weiterhin 224 GiB auf dem Datenträger belegt, obwohl das eben erstellte Archiv doch lediglich 150 GiB benötigte.

Dann führte ich ohne besonderen Grund und auf Verdacht borg prune aus und plötzlich fing borg an, “zu rattern” und löschte 7 vorhandene Checkpoints, die insgesamt 74 GiB deduplizierten Speicher verbrauchten.

borg prune --verbose --list --stats []
Keeping archive (rule: within #1): 2023-09-19T02.57             Tue, 2023-09-19 02:57:06 [123]
Pruning archive (1/7):             2023-08-02T00.00.checkpoint  Sun, 2023-08-02 00:00:59 [456]
Pruning archive (2/7):             2023-08-02T01.00.checkpoint  Sun, 2023-08-02 01:00:00 [789]
[]
Pruning archive (7/7):             2023-07-01T00.00.checkpoint  Sat, 2023-07-01 00:00:10 [abc]

Checkpoints werden von borg automatisch erstellt, wenn das Backup länger als 30 Minuten dauert oder wenn man während der Erstellung eines Archivs das erste Mal Strg + c drückt.2 Erst beim zweiten Mal wird das Erstellen des Archivs unterbrochen. Details zu Checkpoints gibt es in der offiziellen Dokumentation von Borg, siehe hier.

Laut manpage werden Checkpoints bei borg list versteckt, man kann sie jedoch mit borg list --consider-checkpoints anzeigen lassen.

Dann führte ich erneut borg compact aus und dann gab es wieder genug freien Speicherplatz für neue Sicherungen auf dem Datenträger.

Jetzt enthält mein Helferscript für borg den Parameter --consider-checkpoints, damit ich nicht wieder auf dieses Problem stoße.


  1. Seit Version 1.2.0 (Februar 2022) muss man compact ausführen, weil freigewordener Speicherplatz nicht automatisch auf dem Speichermedium freigegeben wird, siehe hier↩︎

  2. Details siehe hier↩︎