Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Projekt: Raspberry PI als Backupserver
In diesem Projekt wird aus einem Raspberry Pi ein zentraler NFS-Backupserver für ein lokales Netzwerk aufgebaut. Ziel ist eine saubere und technisch nachvollziehbare Trennung zwischen einem ausschließlich lesbaren Bereich und einem schreibbaren Datenbereich.
Dabei wird bewusst keine Benutzer-Synchronisation zwischen Client und Server eingesetzt. Stattdessen werden alle Schreibzugriffe serverseitig auf einen definierten Service-User abgebildet. Dadurch bleibt die Client-Konfiguration minimal, konsistent und unabhängig von lokalen UID-Strukturen.
Konzept
Der Server stellt zwei Verzeichnisse bereit:
- /
srv/nfs/public→ nur lesend (ro) /srv/nfs/data→ lesend + schreibend (rw, Service-User 2000)
Für das Datenverzeichnis wird ein technischer Service-User mit der UID/GID 2000 eingerichtet.
Alle Schreibzugriffe werden mittels all_squash auf diesen Benutzer umgeleitet. Dadurch gehören sämtliche erzeugten Dateien immer demselben Systemkonto – unabhängig davon, welcher Client sie erstellt hat.
Dieses Modell verhindert UID-Konflikte zwischen unterschiedlichen Linux-Systemen im Netzwerk und sorgt für ein eindeutiges Besitzmodell auf dem Server.
Alle schreibenden Zugriffe auf /srv/nfs/data werden serverseitig auf UID/GID 2000 abgebildet (all_squash).
IP gekennzeichnet und muss im Kurs durch die tatsächliche IP-Adresse ersetzt werden.
NFS SERVER
Im Kurs steht der Server bereits zur Verfügung, sodass es primär darum geht, ihn korrekt einzubinden. Wer einen eigenen NFS-Server aufsetzen möchte, findet hier die vollständige Einrichtung.
NFS CLIENT
Um die Freigaben zu verwenden, wird auf dem Client zunächst das notwendige Paket installiert.
Verfügbare Exports anzeigen
sudo apt install -y nfs-common showmount -e IP
Der Befehl zeigt an, welche Verzeichnisse der Server exportiert.
Manuell Mounten
Für einen ersten Test werden lokale Mountpunkte angelegt und die Freigaben manuell eingebunden.
sudo mkdir -p /mnt/public sudo mkdir -p /mnt/data sudo mount -t nfs -o ro IP:/srv/nfs/public /mnt/public sudo mount -t nfs -o rw,soft,timeo=50,retrans=3 IP:/srv/nfs/data /mnt/data
Das Verzeichnis /mnt/public ist nur lesbar.
Im Verzeichnis /mnt/data können Dateien erzeugt werden, die serverseitig immer UID/GID 2000 gehören.
Automatisch Mounten (/etc/fstab)
Damit der Client auch dann startet, wenn der Server nicht erreichbar ist, erfolgt die Einbindung per systemd-Automount in der /etc/fstab.
IP:/srv/nfs/public /mnt/public nfs ro,_netdev,noatime,x-systemd.automount,nofail 0 0 IP:/srv/nfs/data /mnt/data nfs rw,_netdev,noatime,x-systemd.automount,x-systemd.device-timeout=10s,x-systemd.idle-timeout=600,soft,timeo=50,retrans=3,nofail 0 0 sudo systemctl daemon-reload sudo mount -a
Der Mount erfolgt nun erst beim ersten Zugriff. Ist der Server nicht erreichbar, blockiert der Bootvorgang nicht.
Ergebnis
- /srv/nfs/public → nur lesbar für alle Clients
- /srv/nfs/data → schreibbar, serverseitig UID/GID 2000
- Client bootet auch wenn Server offline ist
- Mount erfolgt erst bei Zugriff (automount)
- Keine UID-Anpassung auf Clients erforderlich
Damit steht ein klar strukturiertes, wartungsarmes Backup-System auf Basis eines Raspberry Pi zur Verfügung.

