loading . . . Proxmox Backup Client auf Raspberry Pi installieren Wie kann man eigentlich einzelne Ordner von seinem Raspberry Pi sichern, wenn man als Sicherungsziel Proxmox Backup Server verwendet? Dieser Frage gehen wir in dieser Anleitung auf dem Grund.
Inhalt
show
* Vorbereitung
* Installation und Kompilierung vom Proxmox Backup Client
* Kompilierung von PBC
* Download der vorkompilierten Debian-Pakete
* Installation PBC
* Backup erstellen
* Manuelles Backup erstellen
* Ist Change Detection Mode „metadata“ überhaupt sicher?
* Automatische Backups erstellen
* Backup wiederherstellen
* Komplette Sicherung wiederherstellen
* Einzelne Dateien wiederherstellen
**Hinweis:** Die Anleitung wurde entsprechend aktueller Vorgaben erstellt. Bitte schaut selbst, ob im Github-Repository etwas anders ist. Die Anleitung kann natürlich nur eine Momentaufnahme darstellen. Hinweise gerne in die Kommentare.
Wer den Proxmox Backup Server bereits auf einem Raspberry Pi verwendet, dem werden die Schritte aus der Anleitung Proxmox Backup Server auf Raspberry Pi installieren bereits bekannt sein.
Es wird wieder das Compiler Skript aus dem Github Repository https://github.com/wofferl/proxmox-backup-arm64 von Wofferl verwendet. Diesmal allerdings nur die Client Variante.
Für das Kompilieren benötigen wir einen Raspberry Pi 4 mit am besten 8 GB RAM, Minimum 4 GB RAM, mindestens 32 GB Micro-SD-Karte. Die deb-Datei kann dann entsprechend einfach auf dem benötigten Raspberry Pi gespeichert werden, welcher dann auch weniger RAM haben kann. Man kann sich allerdings auch die vorkompilierte deb-Datei herunterladen.
## Vorbereitung
Zunächst stellt man die Grundinstallation mit Raspberry Pi OS auf einer SD-Karte und die Aktualisierungen fertig, seht hierzu gerne in dem Post Raspberry Pi: Getting Started/Erste Schritte (Raspbian / Raspberry Pi OS) rein.
**Achtung!!:** Verwendet das 64-Bit Image vom Raspberry Pi OS um die gesamte Performance und den kompletten Speicher verwenden zu können.
## Installation und Kompilierung vom Proxmox Backup Client
### Kompilierung von PBC
Wenn die Grundinstallation erledigt ist, müssen vorher einige Programme auf dem Pi installiert werden. Führt nachfolgend die Befehle aus:
sudo apt-get install -y --no-install-recommends \
build-essential curl ca-certificates sudo git lintian fakeroot \
pkg-config libudev-dev libssl-dev libapt-pkg-dev libclang-dev \
libpam0g-dev
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -sSf | sh -s
source ~/.cargo/env
Für die Rust-Installation wählt man dann einfach mit **[1] die Standardinstallation aus**.
sudo reboot
Nach dem Reboot laden wir nun das Github Repository im Homeverzeichnis in das Unterverzeichnis „pbs“ herunter.
git clone https://github.com/wofferl/proxmox-backup-arm64.git ./pbs/
Anschließend gehen wir in den Ordner „pbs“ und führen die Kompilierung nur für den Client aus.
cd pbs/
./build.sh client
Die Kompilierung benötigt dann etwas Zeit und kann auch mal an einem Punkt für mehrere Minuten stehen bleiben. Bei mir hat es um die 40 Minuten gedauert. Wenn die Kompilierung fertig ist, sind alle ARM Pakete in dem Ordner „./pbs/packages“ abgelegt.
### Download der vorkompilierten Debian-Pakete
Als Alternative kann man die entsprechend vorkompilierten Debian Pakete herunterladen.
Dazu wird dennoch das Github Repository wie bekannt heruntergeladen.
git clone https://github.com/wofferl/proxmox-backup-arm64.git ./pbs/
Anschließend gehen wir in den Ordner „pbs“ und führen einen Download der aktuellsten Version aus.
cd pbs/
./build.sh download
Sobald der Download fertig ist, findet man unter „./pbs/packages“ die Debian-Pakete. Man spart sich damit die Zeit für die Kompilierung, muss dann allerdings darauf hoffen, dass die vorgefertigten Debian-Pakete alle in Ordnung sind. Es gab aber bei meinem Test mit einem Raspberry Pi 4, 8 GB RAM keine Probleme.
### Installation PBC
Wenn man mit einem der beiden Möglichkeiten die Debian-Pakete in „packages“ hat, gehen wir nun hinein und führen mit dem apt Befehl die Installation des erstellten Debian Paketes aus.
cd packages
sudo apt install \
./proxmox-backup-client_*_arm64.deb
sudo reboot
Danach ist der Befehl `**proxmox-backup-client**` verwendbar.
## Backup erstellen
### Manuelles Backup erstellen
Wie erstellen wir nun ein Backup für einen Ordner? Wir benutzen folgenden Befehl:
proxmox-backup-client backup {Dateiname}.pxar:{Pfad-des-zu-sichernden-Ordners} \
--repository {Hostname-PBS}:{Datastore} --change-detection-mode=metadata
Argument| Beschreibung
---|---
backup| Gibt dem Befehl mit, dass nun ein Backup erstellt werden soll.
{Dateiname}.pxar:/{Pfad-des-zu-sichernden-Ordners}| Es wird ein Archiv {Dateiname}.pxar vom {Pfad-des-zu-sichernden-Ordners} erstellt
–repository {Hostname-PBS}:{Datastore}| Gibt das Repository im Format {Server}:{Datastore} an. Vorsicht, der Datastore ist case-sensitive.
–change-detection-mode=metadata| **metadata** ist wie ein kontinuierliches inkrementelles Backup zu betrachten. Es werden zwei Archive, ein mpxar für die Metadaten und ein ppxar für die Daten, erstellt. Beim Erstellen des Backups werden die vorherigen Backup-Metadaten geprüft und nur geänderte Daten neu gesichert.
**data** ist wie ein Vollbackup zu betrachten. Wie „metadata“ werden die Metadaten und die reinen Daten in zwei verschiedenen Archiven gespeichert. Es werden allerdings alle Daten gesichert, ohne in den vorherigen Metadaten nach unveränderten Daten zu suchen, welche nicht gesichert werden müssen.
**legacy** wäre auch wie ein vollwertiges Vollbackup zu betrachten. Alle Daten und Metadaten werden neu in ein einziges pxar-Archiv gesichert. Es wird nicht mit vorherigen Sicherungen verglichen, ob Daten sich geändert haben und daher nicht nochmal gesichert werden müssen.
Es wird dann nach dem **Passwort von dem Standardbenutzer „root@pam** “ des Proxmox Backup Servers gefragt. Bei der ersten Ausführung muss dann noch der Fingerprint des Servers mit **[Y]** bestätigt werden. Die Sicherung beginnt und man bekommt einen Sicherungsverlauf angezeigt.
In der Shell proxmox-backup-client ausführen, um eine Sicherung eines Ordners durchzuführen. Das Backupergebnis im Proxmox Backup Server
Im Proxmox Backup Server sieht man nach Fertigstellung des Backups den gesicherten Host und das dazugehörige Backup.
### Ist Change Detection Mode „metadata“ überhaupt sicher?
Allgemein kann man ruhig auf „metadata“ setzen. Bisher hatte ich kein Sicherungsproblem, auch wenn mit der Methode die Wahrscheinlichkeit am höchsten ist, wenn auch gering. Im Endeffekt werden beim Backup Hashes der Daten erstellt, welche als Chunks auf dem Backupserver gesichert werden. Die Chunks werden in der eigentlichen Sicherung referenziert. Dadurch hat man dann den Deduplikationseffekt, da diese Chunks bei unveränderten Daten einfach im neuen Backup ebenfalls referenziert werden.
Wenn nun eine ältere Sicherung entfernt wird, wird erstmal nur der Eintrag aus der Liste entfernt, die Chunks bleiben erhalten. Die Garbage Collection auf dem Proxmox Backup Server ist dann dafür zuständig, zu prüfen, welche Chunks von den anderen Sicherungseinträgen noch verwendet werden und die zu löschen, welche nicht mehr benötigt werden. Daher ist es auch so wichtig, die Garbage Collection auf dem PBS mindestens einmal im Monat automatisch durchlaufen zu lassen.
### Automatische Backups erstellen
Um automatische Backups zu erstellen, wird ein Skript benötigt, welches immer zur gewünschten Zeit als CronJob ausgeführt wird. Dafür werden auch ein paar Environment Variablen gesetzt. Auch das Passwort. Allerdings wollen wir nicht unbedingt das Root Passwort als Klartext in das Skript schreiben. Daher wird als erstes ein Backup-User im Proxmox Backup Server erstellt.
Dazu geht man auf seinen PBS und geht **unter „Configuration“ auf „Access Control“**. Dort klickt man im **„User Management“ auf „Add“ und erstellt einen neuen Benutzer**.
Im Proxmox Backup Server der „Benutzer erstellen“-Dialog
Als nächstes gehen wir auf den **„API Token“** Reiter und erstellen **für den neuen Benutzer einen API Token**. **Der Token wird einem direkt angezeigt und sollte entsprechend sicher verwahrt werden.** Wie der Hinweis mitteilt, kann der Secret nicht mehr angezeigt werden. Auch die Token ID ist wichtig!
Den API Token in PBS erstellen Die angezeigte Token-ID mit dem zugehörigen Secret
Anschließend werden wir **dem Token und dem Benutzer** noch **die Backup-Berechtigung** für den Datastore übergeben. Dazu muss man auf den Reiter **„Permission“ gehen und über „Add“** die Token-Berechtigung erstellen. Im Dialogfeld **„Path“ wählt man dann den Datastore aus** , denn man berechtigen möchte, bei mir „/datastore/store_backup“. Als nächstes den eben erstellten **API-Token auswählen und als Role „DatastoreBackup“**. Einmal auf **„Add“ und die Berechtigung ist hinzugefügt. Das gleiche muss mit dem Benutzer direkt passieren.**
Die Berechtigungen für den API Token auf den Datastore einrichten
Nun erstellen wir ein kleines Bash-Skript mit dem Befehl `**nano backup.sh**` auf dem Raspberry Pi mit folgendem Inhalt:
#! /bin/bash
export PBS_REPOSITORY="Backup@pbs!Backup_User_Token@pbs:store_backup"
export PBS_PASSWORD="c3bb3780-8922-4810-b650-a9a915695591"
export PBS_FINGERPRINT="4d:5c:49:56:b4:95:06:90:c0:39:bd:61:ab:45:f9:3e:e6:01:27:09:ce:72:84:db:9a:69:54:41:e4:1f:45:5c"
proxmox-backup-client backup rasptest.pxar:/home/pu/backup --change-detection-mode=metadata
Environment Variabel| Beschreibung
---|---
PBS_REPOSITORY=“{Token-ID}@{Hostname-PBS}:{Datastore}“| Gibt das Repository mit Übergabe der Token-ID an.
PBS_PASSWORD=“{Token-Secret}“| Beinhaltet den Token-Secret zur angegebenen Token-ID.
PBS_FINGERPRINT=“{PBS-Fingerprint}“| Beinhaltet den Fingerprint des Proxmox Backup Servers.
Anschließend mit `**chmod +x backup.sh**` das Skript noch ausführbar machen. Mit `**./backup.sh**` kann man nun das **Skript ausführen und testen** , ob alles funktioniert.
Sollte der Fehler **„Error: missing permissions ‚Datastore.Backup‘ on ‚/datastore/store_backup'“** auftauchen, stimmt die Token- oder Benutzerberechtigung auf dem genannten Datastore nicht.
Wenn ihr bereits mit dem manuellen Befehl ein Backup erstellt habt, wird ggf. folgender Fehler auftauchen: **„Error: backup owner check failed (Backup@pbs!Backup_User_Token != root@pam)“**
Achtet bei dem Fehler darauf, dass im PBS im „Datastore“ unter „Content“ der entsprechende Backup Owner für das Backup korrekt ist. Es muss unbedingt die Token-ID als Besitzer verwendet werden. Den Owner könnt ihr mit Rechtklick auf dem Host-Eintrag und „Change Owner“ ändern.
Als nächstes tragen wir das **Skript für den CronJob ein**. Dazu einmal `**crontab -e**` ausführen und mit **[1] nano als Editor** auswählen.
Dort trägt man dann folgendes ein:
0 2 * * * /home/pu/backup.sh
In der CronJob Tabelle das Skript zum Ausführen für 2 Uhr morgens hinzufügen
Mit **[STRG]+[O]** speichern und mit **[STRG]+[X]** den Editor schließen. Ab sofort wird das Backup jeden Tag um 2 Uhr nachts ausgeführt.
**Achtung:** Ihr könnt natürlich so keine Backups von Ordnern machen, dessen Besitzer oder Leserechte ihr nicht habt. Dazu dem Ordner die entsprechenden Berechtigungen geben oder über `**sudo crontab -e**` mit Root-Berechtigung die Cronjob-Table des Roots bearbeiten.
## Backup wiederherstellen
### Komplette Sicherung wiederherstellen
Zum Wiederherstellen einer Sicherung benötigen wir zunächst die Information über die vorhandenen Sicherungspunkte.
proxmox-backup-client snapshot list --repository pbs:store_backup host/rasptest
Wir geben dem Befehl noch den Host „host/rasptest“ mit. Somit wird nur die Liste der zugehörigen Host-Sicherungen angezeigt. Wird das weggelassen, wird die komplette Backupliste aller auf dem PBS befindlichen Sicherungen angezeigt.
Um ein Backup wiederherzustellen kann man direkt im Client nachfolgenden Befehl eingeben. Der Lesezugriff muss nicht mit dem Besitzer stattfinden, daher reicht hier die normale Root-Passwortabfrage.
proxmox-backup-client restore host/rasptest/2025-07-15T00:00:01Z rasptest.pxar /home/pu/backup --repository pbs:store_backup --overwrite true
Argument| Beschreibung
---|---
restore| Gibt dem Befehl mit, dass ein Restore durchgeführt werden soll.
host/rasptest/2025-07-15T00:00:01Z| Gibt den kompletten Sicherungsnamen an, der wiederhergestellt werden soll.
rasptest.pxar| Gibt den Namen des Sicherungsarchivs an.
**Achtung:** Bei Sicherungen mit „metadata“ oder „data“ werden die Archive in zwei aufgeteilt, mit mpxar und ppxar als Dateiendung. Dennoch .pxar angeben um sich auf das komplette Archiv zu beziehen.
/home/pu/backup| Das Zielverzeichnis, wohin die Sicherung kopiert werden soll.
Auch hier **Achtung!** Wenn ihr als Sicherung „/home/pu/backup“ ausgewählt habt, werden die Daten innerhalb von „backup“ gesichert, nicht der komplette Ordnerpfad bis dahin. Daher unbedingt bei Wiederherstellung in den gleichen Ordner den kompletten Pfad angeben.
–repository pbs:store_backup| Wie bereits bekannt, das Repository in Form {Server}:{Datastore} angeben.
–overwrite true| Sorgt dafür, dass vorhandene Dateien überschrieben werden.
Eine komplette Wiederherstellung mit Auswahl des Sicherungspunkts zum originalen Zielpfad
Anschließend sind die Dateien aus der Sicherung kopiert und verfügbar.
### Einzelne Dateien wiederherstellen
Es ist auch möglich, einzelne Dateien wiederherzustellen. Dazu geht man in den interaktiven Modus.
proxmox-backup-client catalog shell host/rasptest/2025-07-15T00:00:01Z rasptest.pxar --repository pbs:store_backup
Mit den Standardbefehlen `**ls**`und `**cd**`kann man sich dann durch die Struktur navigieren.
Mit `**find /etc/**/*.conf --select**`, ein Beispiel aus dem Proxmox Handbuch, werden beispielsweise alle Konfigurationsdateien in „etc“ ausgewählt.
Ansonsten verwendet man `**select test.txt**` um Dateien direkt auszuwählen. Zum Wiederherstellen der ausgewählten Dateien verwendet man dann `**restore-selected /home/pu/test/**`, ich habe hier einen anderen Zielpfad ausgewählt. Mit **`exit` **beendet man den interaktiven Modus.
Wiederherstellung aus dem interaktiven Modus
Und schon haben wir eine ggf. versehentlich gelöschte oder bearbeitete Datei wiederhergestellt.
**ACHTUNG:** Wie bereits bemerkt, habe ich hier einen anderen Pfad angegeben. Es scheint, als ob der Restore im interaktiven Modus kein überschreiben zulässt, falls Dateien noch vorhanden sind. Die Syntax lässt nur ein Target als String zu, also das Sicherungsziel. Der interaktive Modus kann auch nicht mit einem „–overwrite true“ geöffnet werden.
War gar nicht so schwer. Und so funktioniert das Sichern von Ordnern oder ganzen Partitionen natürlich auch auf x86/x64-Rechnern mit dem `**proxmox-backup-client**` Paket.
Quellen:
https://pbs.proxmox.com/docs/backup-client.html
https://pbs.proxmox.com/docs/user-management.html
https://pbs.proxmox.com/docs/technical-overview.html#change-detection-mode-data https://liersch.it/2025/07/proxmox-backup-client-auf-raspberry-pi-installieren/