Raspberry Pi als Fileserver – einfacher Heimnetzwerk-Speicher mit Samba
Wer Dateien im Heimnetzwerk zentral ablegen und von Windows, macOS oder Linux aus darauf zugreifen möchte, braucht dafür kein teures NAS. Ein Raspberry Pi mit einer externen USB-Festplatte und der Software Samba erledigt das genauso zuverlässig – und das für einen Bruchteil des Preises. Samba ist der Standard für Windows-kompatible Netzwerkfreigaben unter Linux und läuft problemlos auf Raspberry Pi OS Bookworm.
In dieser Anleitung zeige ich euch Schritt für Schritt, wie ihr euren Raspberry Pi als Fileserver einrichtet – inklusive automatischem Einbinden des USB-Laufwerks beim Boot und sauberem Samba-Setup.
Was ihr braucht
Für den Heimfileserver benötigt ihr folgendes:
- Raspberry Pi 4 oder 5 – beide haben USB 3.0, das macht einen großen Unterschied bei der Übertragungsgeschwindigkeit. Der Pi 5 ist nochmals schneller.
Raspberry Pi 4 oder 5 bei Amazon ansehen - Externe USB 3.0 SSD – deutlich schneller und langlebiger als ein USB-Stick. Für einen Heimfileserver empfehle ich mindestens 500 GB.
USB 3.0 externe SSD bei Amazon ansehen - USB-Hub mit eigener Stromversorgung (optional, wenn ihr mehrere Laufwerke anschließen wollt – externe Festplatten können den Pi-USB-Port sonst überlasten):
USB-Hub mit Stromversorgung bei Amazon ansehen - Große microSD-Karte (wenn ihr ohne externe Festplatte auskommen wollt – dann empfiehlt sich mindestens eine 128 GB A2-Karte):
microSD 128 GB A2 bei Amazon ansehen - Aktuelles Raspberry Pi OS Bookworm (Lite reicht völlig aus)
Schritt 1: USB-Laufwerk anschließen und erkennen
Steckt das USB-Laufwerk an und führt dann lsblk aus. Das ist die modernste und einfachste Methode, um angeschlossene Laufwerke zu erkennen:
|
1 |
lsblk |
Die Ausgabe sieht ungefähr so aus:
|
1 2 3 4 5 6 |
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 931.5G 0 disk └─sda1 8:1 0 931.5G 0 part mmcblk0 179:0 0 29.7G 0 disk ├─mmcblk0p1 179:1 0 512M 0 part /boot/firmware └─mmcblk0p2 179:2 0 29.2G 0 part / |
Das USB-Laufwerk ist hier als sda mit der Partition sda1 aufgetaucht. Wenn ihr mehr Details wie den Dateisystemtyp und die UUID braucht:
|
1 |
lsblk -f |
Alternativ könnt ihr auch den Kernel-Log auf USB-Ereignisse prüfen – das funktioniert auch in Bookworm (anders als das alte /var/log/messages, das es dort nicht mehr gibt):
|
1 |
dmesg | grep -i usb |
Schritt 2: Laufwerk dauerhaft einbinden (mount + fstab)
Zuerst legen wir einen Mountpoint an:
|
1 |
sudo mkdir -p /mnt/usb |
Jetzt lesen wir die UUID des Laufwerks aus – die brauchen wir für den fstab-Eintrag:
|
1 |
sudo blkid /dev/sda1 |
Die Ausgabe liefert etwas wie:
|
1 |
/dev/sda1: UUID="A1B2-C3D4" TYPE="exfat" PARTUUID="..." |
Notiert euch die UUID. Falls ihr ein exFAT-Laufwerk habt (typisch für große Windows/Mac-kompatible Drives), installiert ihr zunächst den nötigen Treiber:
|
1 |
sudo apt install exfat-fuse |
Hinweis: Ab Kernel 5.15 (Bookworm) ist der exFAT-Support bereits im Kernel integriert, das Paket schadet aber nicht und stellt sicher, dass alles funktioniert.
Jetzt tragt ihr das Laufwerk in /etc/fstab ein, damit es bei jedem Boot automatisch gemountet wird. Öffnet die Datei mit nano:
|
1 |
sudo nano /etc/fstab |
Fügt am Ende eine Zeile ein – passend zum Dateisystem eures Laufwerks. Ersetzt A1B2-C3D4 durch eure UUID und euerBenutzer durch euren tatsächlichen Benutzernamen (den ihr beim Raspberry Pi Imager vergeben habt):
exFAT (empfohlen für neue, große Laufwerke):
|
1 |
UUID=A1B2-C3D4 /mnt/usb exfat defaults,nofail,uid=1000,gid=1000 0 0 |
FAT32 (ältere Sticks):
|
1 |
UUID=A1B2-C3D4 /mnt/usb vfat defaults,nofail,uid=1000,gid=1000,umask=000 0 0 |
ext4 (Linux-formatiert):
|
1 |
UUID=A1B2-C3D4 /mnt/usb ext4 defaults,nofail 0 0 |
Die Option nofail ist wichtig: Damit bootet der Pi auch dann normal, wenn das USB-Laufwerk gerade nicht angeschlossen ist – ansonsten bleibt der Pi beim Boot hängen.
Speichern mit Strg+X, dann Y, dann Enter. Testet das Einbinden sofort:
|
1 |
sudo mount -a |
Prüft danach mit lsblk, ob das Laufwerk unter /mnt/usb erscheint.
Stellt sicher, dass euer Benutzer auf das Verzeichnis schreiben darf:
|
1 |
sudo chown -R euerBenutzer:euerBenutzer /mnt/usb |
Schritt 3: Samba installieren
Zunächst das System aktualisieren:
|
1 |
sudo apt update && sudo apt upgrade -y |
Dann Samba installieren:
|
1 |
sudo apt install samba samba-common-bin -y |
Prüft kurz, ob Samba läuft:
|
1 |
sudo systemctl status smbd |
Schritt 4: Samba konfigurieren
Die Samba-Konfiguration liegt in /etc/samba/smb.conf. Macht zuerst ein Backup der Originaldatei:
|
1 |
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak |
Dann öffnet ihr die Konfiguration:
|
1 |
sudo nano /etc/samba/smb.conf |
Scrollt ganz ans Ende der Datei und fügt eure Freigabe hinzu. Ersetzt euerBenutzer durch euren Benutzernamen und den Pfad falls abweichend:
|
1 2 3 4 5 6 7 8 9 10 |
[Fileserver] comment = Raspberry Pi Fileserver path = /mnt/usb browseable = yes writeable = yes read only = no valid users = euerBenutzer force user = euerBenutzer create mask = 0664 directory mask = 0775 |
Kurze Erklärung der wichtigsten Parameter:
| Parameter | Bedeutung |
|---|---|
path |
Pfad zum freigegebenen Verzeichnis |
browseable |
Freigabe ist im Netzwerk sichtbar |
writeable |
Schreibzugriff erlaubt |
valid users |
Nur dieser Benutzer darf zugreifen (Pflicht für Passwortschutz) |
force user |
Dateizugriffe laufen immer unter diesem Systembenutzer – löst Berechtigungsprobleme unter Bookworm |
Speichert die Datei (Strg+X, Y, Enter) und prüft die Konfiguration auf Fehler:
|
1 |
testparm |
Schritt 5: Samba-Passwort setzen
Samba verwaltet Passwörter getrennt vom Linux-System. Setzt ein Samba-Passwort für euren Benutzer – ersetzt euerBenutzer durch euren tatsächlichen Benutzernamen:
|
1 |
sudo smbpasswd -a euerBenutzer |
Ihr werdet zweimal nach einem Passwort gefragt. Dieses Passwort verwendet ihr später beim Verbinden vom Windows-PC oder Mac.
Wichtig für Bookworm-Nutzer: Der Standardbenutzer heißt seit einigen Versionen nicht mehr automatisch pi. Welchen Namen ihr beim Raspberry Pi Imager eingetragen habt, den verwendet ihr hier. Mit whoami könnt ihr euren aktuellen Benutzernamen nachschauen.
Schritt 6: Samba starten und beim Boot aktivieren
Startet den Samba-Dienst neu und aktiviert ihn dauerhaft:
|
1 2 |
sudo systemctl restart smbd sudo systemctl enable smbd |
Prüft, ob alles läuft:
|
1 |
sudo systemctl status smbd |
Schritt 7: Von Windows und macOS verbinden
Windows
Öffnet den Explorer und gebt in der Adressleiste ein:
|
1 |
\\raspberrypi\Fileserver |
Oder mit der IP-Adresse des Pi (die ihr mit hostname -I herausfindet):
|
1 |
\\192.168.1.xxx\Fileserver |
Windows fragt euch nach Benutzername und Passwort – gebt den Samba-Benutzernamen und das eben gesetzte Passwort ein. Mit einem Klick auf „Anmeldedaten speichern“ müsst ihr das nicht jedes Mal wiederholen.
Tipp: Ihr könnt die Freigabe auch als Netzlaufwerk einbinden (Rechtsklick auf „Dieser PC“ → „Netzlaufwerk verbinden“), dann taucht sie wie ein normales Laufwerk im Explorer auf.
macOS
Im Finder: Gehe zu → Mit Server verbinden (oder Cmd+K) und dann:
|
1 |
smb://raspberrypi |
Oder mit IP-Adresse:
|
1 |
smb://192.168.1.xxx |
Nach Eingabe von Benutzername und Passwort erscheint die Freigabe im Finder.
Linux
Im Dateimanager (z.B. Nautilus unter Ubuntu) könnt ihr über „Anderer Speicherort“ direkt eine SMB-Adresse eingeben. Alternativ per Terminal:
|
1 |
smbclient //raspberrypi/Fileserver -U euerBenutzer |
Tipps und Troubleshooting
Geschwindigkeit: USB 3.0 macht den großen Unterschied
Ein Raspberry Pi 4 oder 5 überträgt Daten über USB 3.0 mit bis zu 300–400 MB/s auf eine SSD – das reicht für flüssiges Arbeiten auch mit großen Dateien. Ein USB-Stick oder eine alte USB-2.0-Platte bremst dagegen auf 20–40 MB/s aus. Für einen echten Heimfileserver lohnt sich eine externe USB 3.0 SSD deshalb deutlich:
USB 3.0 SSD für den Raspberry Pi Fileserver bei Amazon
exFAT: Beste Wahl für gemischte Umgebungen
exFAT funktioniert mit Windows, macOS und Linux ohne zusätzliche Treiber und unterstützt Dateien über 4 GB (was FAT32 nicht kann). Wenn ihr ein neues Laufwerk kauft und es für den Fileserver verwenden wollt, formatiert es mit exFAT. Ab Kernel 5.15 (Bookworm) ist der Support bereits im Kernel – kein Extra-Paket nötig.
Freigabe nicht sichtbar im Netzwerk?
Prüft zuerst, ob der Samba-Dienst läuft:
|
1 |
sudo systemctl status smbd |
Dann prüft die Konfiguration auf Fehler:
|
1 |
testparm -s |
Und schaut, ob die Freigabe vom Pi selbst aus erreichbar ist:
|
1 |
smbclient -L localhost -U euerBenutzer |
Berechtigungsfehler unter Bookworm
In Bookworm sind die Home-Verzeichnisse standardmäßig mit 700 (nur der Eigentümer hat Zugriff) angelegt. Samba kann dadurch keine Unterordner im Home-Verzeichnis erreichen. Der einfachste Fix: Ihr gebt die Freigabe auf /mnt/usb (also das USB-Laufwerk) statt auf ein Unterverzeichnis im Home-Ordner – das ist sowieso die sauberere Lösung. Alternativ hilft force user = euerBenutzer in der smb.conf (bereits in Schritt 4 eingebaut).
Viel Spaß beim Ausprobieren – und wenn ihr Fragen oder Probleme habt, schreibt sie gerne in die Kommentare!
