NAS mit Proxmox und LXC bauen: Samba, Festplatte & DLNA

Für ein einfaches NAS brauche ich nicht unbedingt TrueNAS, OpenMediaVault oder eine große Weboberfläche. Wenn ohnehin ein Proxmox-Server läuft, reicht für viele Aufgaben bereits ein kleiner Debian-LXC mit Samba und einer eigenen Festplatte als Datenspeicher.

Genau so ist mein Aufbau entstanden: Die Festplatte wird direkt auf dem Proxmox-Host eingebunden und anschließend per Bind-Mount in einen unprivilegierten LXC durchgereicht. Dort stellt Samba die Daten im Netzwerk bereit. Optional kommt mit MiniDLNA beziehungsweise ReadyMedia noch ein einfacher Medienserver für Fernseher und andere DLNA-Clients dazu.

In dieser Anleitung bauen wir das Ganze Schritt für Schritt auf und schauen uns dabei auch die Stelle an, die bei LXC besonders gerne Ärger macht: UIDs, GIDs und Dateirechte bei unprivilegierten Containern.

Aktualisiert am 24. September 2026 – unprivilegierte LXC-Berechtigungen überarbeitet und aktuelle Debian-/Proxmox-Hinweise ergänzt.

Kurz zusammengefasst

Ein einfaches NAS lässt sich sehr schlank als Debian-LXC unter Proxmox betreiben. Die eigentliche Festplatte wird dabei auf dem Proxmox-Host formatiert und gemountet. Anschließend wird das Verzeichnis als Bind-Mount in den Container eingebunden.

Im LXC übernimmt Samba die SMB-Freigaben für Windows, Linux und andere Geräte. Optional kann MiniDLNA/ReadyMedia Bilder, Musik und Videos im lokalen Netzwerk bereitstellen. Wichtig sind vor allem eine saubere Mount-Konfiguration und korrekte UID-/GID-Rechte bei einem unprivilegierten Container.

Das Wichtigste in Kürze

  • Die Datenfestplatte wird auf dem Proxmox-Host eingebunden.
  • Der LXC sieht sie anschließend über einen Bind-Mount.
  • Ein unprivilegierter Container ist gegenüber einem privilegierten Container grundsätzlich die bessere Ausgangsbasis.
  • Bei unprivilegierten LXCs müssen die UID- und GID-Zuordnungen berücksichtigt werden.
  • Samba stellt die Daten per SMB im lokalen Netzwerk bereit.
  • MiniDLNA/ReadyMedia kann zusätzlich Fotos, Musik und Videos per DLNA anbieten.
  • Das NAS benötigt keine eigene große Verwaltungsoberfläche.
  • Ein NAS ersetzt kein Backup – wichtige Daten sollten zusätzlich auf einem zweiten System oder Datenträger liegen.

So sieht der Aufbau aus

Proxmox VE
│
├── Systemdisk
│
└── Datenfestplatte
     ↓
 /mnt/nas-disk
     ↓
 Bind-Mount
     ↓
 Debian-LXC
 /mnt/nas
     │
     ├── Samba
     │    ├── fotos
     │    ├── videos
     │    ├── music
     │    └── backups
     │
     └── MiniDLNA / ReadyMedia
          ├── fotos
          ├── videos
          └── music

Schnellnavigation


Was brauche ich für ein NAS im Proxmox-LXC?

Für diesen Aufbau benötigen wir erstaunlich wenig.

  • einen laufenden Proxmox-VE-Host
  • eine zusätzliche HDD oder SSD für die NAS-Daten
  • ein aktuelles Debian-LXC-Template
  • eine Netzwerk-Bridge, normalerweise vmbr0
  • etwas Speicherplatz für das Container-System
  • Samba für SMB-Freigaben
  • optional MiniDLNA/ReadyMedia

Der Container selbst benötigt kaum Ressourcen. Die eigentlichen Daten liegen schließlich nicht auf dessen Root-Dateisystem, sondern auf der separaten Datendisk.

Für einen einfachen Samba-Server reichen deshalb häufig bereits ein CPU-Core und einige hundert Megabyte RAM. Wenn später weitere Dienste dazukommen, kann der Container jederzeit mehr Ressourcen erhalten.

Neu bei Proxmox? Falls du gerade erst mit VMs, LXCs und Bridges anfängst, findest du die Grundlagen in meiner Proxmox-Anleitung.

Als Datenträger eignet sich je nach Einsatzzweck eine SSD oder eine klassische NAS-HDD. Für größere Datenmengen ist beispielsweise eine WD Red Plus (bezahlter Link) interessant; für ein leises und schnelles kleines NAS kann auch eine SATA-SSD sinnvoll sein.


Festplatte auf dem Proxmox-Host vorbereiten

Die Datenfestplatte wird zunächst direkt auf dem Proxmox-Host eingerichtet.

Zuerst prüfen wir, welche Laufwerke vorhanden sind:

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINTS,MODEL

In meinem Beispiel ist die zusätzliche Festplatte /dev/sdb.

Achtung: Die folgenden Schritte löschen vorhandene Partitions- und Dateisysteminformationen. Prüfe vor jedem Befehl mehrfach, ob /dev/sdb wirklich die richtige Festplatte ist.

Falls die Platte vollständig neu eingerichtet werden soll:

wipefs -a /dev/sdb

Anschließend legen wir eine GPT-Partitionstabelle und eine Partition über die gesamte Platte an:

fdisk /dev/sdb <<'FDISK'
g
n



w
FDISK

Danach sollte eine Partition wie /dev/sdb1 existieren.

Diese formatieren wir beispielsweise mit ext4:

mkfs.ext4 -L NASDATA /dev/sdb1

Warum ext4? Für ein einfaches einzelnes Datenlaufwerk ist ext4 unkompliziert, bewährt und gut dokumentiert. Wer Snapshots, Checksummen oder größere Storage-Pools benötigt, kann natürlich auch andere Dateisysteme beziehungsweise ZFS verwenden – das wäre dann aber ein anderer Aufbau.


NAS-Festplatte dauerhaft unter Proxmox mounten

Der Mountpoint auf dem Proxmox-Host lautet in dieser Anleitung:

/mnt/nas-disk

Zuerst erstellen wir das Verzeichnis:

mkdir -p /mnt/nas-disk

Danach lesen wir die UUID der Partition aus:

blkid /dev/sdb1

Die Ausgabe enthält beispielsweise:

UUID="12345678-abcd-1234-abcd-123456789abc"

Diese UUID tragen wir in /etc/fstab ein:

nano /etc/fstab

Beispiel:

UUID=12345678-abcd-1234-abcd-123456789abc /mnt/nas-disk ext4 defaults,nofail 0 2

Danach testen wir die Konfiguration:

mount -a
findmnt /mnt/nas-disk
df -h /mnt/nas-disk

Warum UUID statt /dev/sdb1? Gerätenamen wie /dev/sdb können sich unter bestimmten Umständen ändern. Die UUID gehört dagegen zum Dateisystem und ist deshalb für einen dauerhaften Mount zuverlässiger.


Debian-LXC für das NAS erstellen

Nun brauchen wir den Container, in dem später Samba und MiniDLNA laufen.

Welcher genaue Template-Dateiname verfügbar ist, hängt von deiner Proxmox-Installation und den aktuell heruntergeladenen Templates ab. Deshalb würde ich heute nicht mehr blind einen bestimmten Versionsstring in die Anleitung schreiben.

Verfügbare Templates lassen sich beispielsweise über die Proxmox-Oberfläche herunterladen oder auf der Shell prüfen.

Ein Container könnte anschließend beispielsweise so erstellt werden:

pct create 200 local:vztmpl/DEIN-DEBIAN-TEMPLATE.tar.zst \
  --hostname nas \
  --memory 512 \
  --cores 1 \
  --swap 512 \
  --rootfs local-lvm:8 \
  --net0 name=eth0,bridge=vmbr0,ip=dhcp \
  --unprivileged 1

Wichtig ist hier vor allem:

  • 200 ist die Container-ID.
  • nas wird der Hostname.
  • 512 MB RAM reichen für einen einfachen Dateiserver meist problemlos.
  • Das eigentliche Root-Dateisystem braucht nur wenig Platz.
  • Die Netzwerkverbindung läuft über vmbr0.
  • --unprivileged 1 erstellt einen unprivilegierten Container.

Anschließend starten wir ihn:

pct start 200

Die IP-Adresse lässt sich beispielsweise so anzeigen:

pct exec 200 -- hostname -I

Festplatte per Bind-Mount in den LXC einbinden

Jetzt kommt der entscheidende Teil: Der Container soll nicht die rohe Festplatte selbst bekommen, sondern das bereits auf dem Host gemountete Verzeichnis.

Dafür verwenden wir einen Proxmox-Mountpoint:

pct set 200 -mp0 /mnt/nas-disk,mp=/mnt/nas

Damit passiert Folgendes:

Proxmox:
  /mnt/nas-disk

        ↓ Bind-Mount

LXC:
  /mnt/nas

Nach einem Neustart des Containers sollte das Verzeichnis dort sichtbar sein:

pct restart 200
pct exec 200 -- findmnt /mnt/nas
pct exec 200 -- ls -la /mnt/nas

Warum nicht einfach die ganze Festplatte an den LXC durchreichen? Für diesen Aufbau gefällt mir der Bind-Mount besser: Der Proxmox-Host kontrolliert das Dateisystem und der Container erhält nur Zugriff auf das gewünschte Verzeichnis.


Warum kann ein unprivilegierter LXC nicht auf den Bind-Mount schreiben?

Hier lag in meiner ursprünglichen Anleitung die größte Vereinfachung.

Bei einem unprivilegierten LXC entsprechen Benutzer-IDs im Container nicht automatisch denselben IDs auf dem Proxmox-Host.

Der Container sieht beispielsweise:

root  → UID 0
zebra → UID 1000

Auf dem Host werden diese IDs normalerweise in einen höheren UID-Bereich gemappt.

Deshalb war der alte Rat:

chown -R 1000:1000 /mnt/nas-disk

für einen unprivilegierten Standard-LXC nicht allgemein korrekt.

UID des Benutzers im Container prüfen

Zuerst erstellen wir später unseren NAS-Benutzer beziehungsweise prüfen dessen IDs:

pct exec 200 -- id zebra

Angenommen, der Benutzer hat im Container:

uid=1000
gid=1000

Standard-UID-Mapping verstehen

Bei einem normalen unprivilegierten LXC beginnt der gemappte UID-Bereich auf dem Host typischerweise bei 100000.

Dadurch entspricht beispielsweise:

Container UID 0    → Host UID 100000
Container UID 1000 → Host UID 101000

Dasselbe gilt entsprechend für die Gruppen-ID.

Bei einer solchen Standardkonfiguration könnten die Daten deshalb beispielsweise so zugeordnet werden:

chown -R 101000:101000 /mnt/nas-disk

Nicht blind übernehmen: Prüfe zuerst das tatsächliche UID-Mapping deines Containers. Eigene lxc.idmap-Einträge oder andere Konfigurationen können die Zuordnung verändern.

Die Container-Konfiguration lässt sich beispielsweise ansehen mit:

pct config 200

Sollte ich den LXC stattdessen privilegiert machen?

Technisch kann ein privilegierter Container den Umgang mit Dateirechten vereinfachen. Ich würde das heute aber nicht mehr als Standardlösung für ein Rechteproblem empfehlen.

Ein unprivilegierter Container reduziert die Auswirkungen, falls ein Prozess im Container kompromittiert wird. Deshalb ist es sinnvoller, UID-/GID-Mappings sauber zu lösen, statt nur für bequemere Dateirechte auf diese zusätzliche Isolation zu verzichten.


Samba im Debian-LXC installieren

Nachdem der Container auf /mnt/nas schreiben kann, richten wir die eigentlichen Netzwerkfreigaben ein.

Dazu wechseln wir in den Container:

pct enter 200

Dann installieren wir Samba:

apt update
apt install -y samba

Nun legen wir die gewünschten Ordner an:

mkdir -p /mnt/nas/{fotos,videos,music,backups}

NAS-Benutzer erstellen

In meinem Beispiel heißt der Benutzer zebra:

adduser zebra
smbpasswd -a zebra

Der erste Befehl legt den normalen Linux-Benutzer an. smbpasswd aktiviert ihn zusätzlich für die Anmeldung über Samba.

Anschließend prüfen wir noch einmal seine UID und GID:

id zebra

Samba-Freigaben konfigurieren

Die Samba-Konfiguration liegt unter:

/etc/samba/smb.conf

Vor einer Änderung erstelle ich gerne eine Sicherung:

cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

Dann öffnen wir die Datei:

nano /etc/samba/smb.conf

Am Ende können beispielsweise folgende Freigaben ergänzt werden:

[fotos]
   path = /mnt/nas/fotos
   browseable = yes
   read only = no
   valid users = zebra
   create mask = 0664
   directory mask = 0775

[videos]
   path = /mnt/nas/videos
   browseable = yes
   read only = no
   valid users = zebra
   create mask = 0664
   directory mask = 0775

[music]
   path = /mnt/nas/music
   browseable = yes
   read only = no
   valid users = zebra
   create mask = 0664
   directory mask = 0775

[backups]
   path = /mnt/nas/backups
   browseable = yes
   read only = no
   valid users = zebra
   create mask = 0660
   directory mask = 0770

valid users = zebra beschränkt den Zugriff auf den angegebenen Samba-Benutzer. Samba dokumentiert genau diesen Mechanismus für Benutzer- beziehungsweise Gruppenfreigaben.

Vor dem Neustart testen wir die Konfiguration:

testparm

Wenn keine Fehler angezeigt werden:

systemctl enable --now smbd
systemctl restart smbd
systemctl status smbd --no-pager

Samba-Rechte bestehen aus zwei Ebenen: Die Freigabe in smb.conf kann Zugriff erlauben – schreiben kann der Benutzer aber trotzdem nur, wenn auch die normalen Linux-Dateirechte auf /mnt/nas passen.

Die Samba-Dokumentation weist ebenfalls darauf hin, dass beispielsweise valid users den Zugriff auf einzelne Benutzer oder Gruppen beschränken kann. :contentReference[oaicite:2]{index=2}


Proxmox-NAS unter Windows verbinden

Wenn Samba läuft, kann die Freigabe direkt über die IP-Adresse des Containers geöffnet werden.

Angenommen, der NAS-LXC hat:

192.168.0.103

Dann kann im Windows Explorer beispielsweise eingegeben werden:

\\192.168.0.103\fotos

oder:

\\192.168.0.103\backups

Anschließend meldet man sich mit dem zuvor über smbpasswd angelegten Benutzer an.

Wer die Freigabe regelmäßig nutzt, kann sie unter Windows als Netzlaufwerk verbinden.


MiniDLNA beziehungsweise ReadyMedia installieren

Für Fotos, Musik und Videos kann der LXC zusätzlich einen kleinen DLNA-Server bereitstellen.

Das Debian-Paket heißt weiterhin minidlna. Die Software ist auch als ReadyMedia beziehungsweise ReadyDLNA bekannt und ist weiterhin in aktuellen Debian-Versionen verfügbar.

Installation:

apt update
apt install -y minidlna

Die zentrale Konfigurationsdatei lautet:

nano /etc/minidlna.conf

Eine einfache Konfiguration könnte beispielsweise enthalten:

friendly_name=Prokrastinerd NAS

media_dir=P,/mnt/nas/fotos
media_dir=V,/mnt/nas/videos
media_dir=A,/mnt/nas/music

db_dir=/var/cache/minidlna
log_dir=/var/log

inotify=yes
port=8200

Dabei bedeutet:

  • P = Bilder
  • V = Videos
  • A = Audio

Anschließend:

systemctl enable --now minidlna
systemctl restart minidlna

Wenn die Medienbibliothek vollständig neu aufgebaut werden soll:

systemctl stop minidlna
minidlnad -R
systemctl start minidlna

Die Statusseite ist anschließend normalerweise unter folgendem Port erreichbar:

http://<NAS-IP>:8200/

MiniDLNA ist auch in Debian 13 weiterhin als Paket verfügbar und wird dort als leichter DLNA-/UPnP-AV-Server beschrieben. :contentReference[oaicite:3]{index=3}

DLNA ist bewusst simpel. MiniDLNA stellt Dateien zur Verfügung, ist aber kein Plex- oder Jellyfin-Ersatz mit Benutzerverwaltung, Transcoding, Metadatenverwaltung und hübscher Oberfläche.


Ist dieses NAS gleichzeitig ein Backup?

Nein.

Eine einzelne Festplatte mit Samba-Freigaben ist zunächst nur zentraler Speicher.

Wenn die Festplatte stirbt, versehentlich Dateien gelöscht werden oder Schadsoftware die Freigabe verändert, können die Daten trotzdem verloren sein.

Deshalb sollte zwischen drei Dingen unterschieden werden:

FunktionWas sie bringt
NASZentraler Speicher im Netzwerk
RAID / RedundanzKann Ausfall einzelner Festplatten abfangen
BackupSeparate Kopie, aus der verlorene Daten wiederhergestellt werden können

Für wichtige Daten würde ich deshalb mindestens eine zusätzliche Kopie auf einem anderen Datenträger oder System einplanen.

Dafür eignen sich beispielsweise rsync, BorgBackup oder andere Backup-Lösungen.


Proxmox-NAS funktioniert nicht: typische Fehler

ProblemMögliche UrsachePrüfen
LXC sieht /mnt/nas nichtBind-Mount fehlt oder Container wurde nicht neu gestartetpct config 200 und findmnt
LXC kann lesen, aber nicht schreibenUID/GID-Mapping passt nichtBesitzer auf Host und IDs im Container vergleichen
Samba-Anmeldung klappt nichtBenutzer nicht für Samba angelegtsmbpasswd -a zebra
Freigabe sichtbar, aber nicht beschreibbarLinux-Dateirechte passen nichtls -ln /mnt/nas
Samba startet nichtFehler in smb.conftestparm
DLNA findet keine Medienfalscher Pfad oder fehlende Leserechtemedia_dir und Dateirechte prüfen
TV findet DLNA-Server nichtMulticast/Firewall/NetzsegmentClient und Server im lokalen Netz prüfen
Disk nach Neustart nicht gemountetfstab fehlerhaftfindmnt, UUID und Journal prüfen

LXC kann nicht auf /mnt/nas schreiben

Das ist bei unprivilegierten Containern der Klassiker.

Im Container:

id zebra
ls -ln /mnt/nas

Auf dem Proxmox-Host:

ls -ln /mnt/nas-disk
pct config 200

So lassen sich die IDs direkt vergleichen.

Samba-Konfiguration prüfen

testparm
systemctl status smbd --no-pager
journalctl -u smbd -n 50 --no-pager

MiniDLNA findet keine Dateien

systemctl status minidlna --no-pager
journalctl -u minidlna -n 50 --no-pager
ls -la /mnt/nas/videos

Der Benutzer minidlna benötigt zumindest Leserechte auf die Medienverzeichnisse.


FAQ: NAS mit Proxmox und LXC

Kann ich ein NAS in einem Proxmox-LXC betreiben?

Ja. Für Samba, NFS, DLNA und ähnliche Dienste reicht ein kleiner Linux-LXC häufig völlig aus. Die Datenfestplatte kann auf dem Proxmox-Host gemountet und als Bind-Mount in den Container eingebunden werden.

Sollte der NAS-LXC privilegiert oder unprivilegiert sein?

Wenn es keinen konkreten technischen Grund dagegen gibt, würde ich einen unprivilegierten LXC bevorzugen. Die Dateirechte bei Bind-Mounts sind etwas aufwendiger, dafür bietet der Container eine bessere Trennung zum Host.

Warum funktioniert chown 1000:1000 bei einem unprivilegierten LXC nicht?

Weil Container-UIDs bei unprivilegierten LXCs auf andere Host-UIDs gemappt werden. UID 1000 im Container entspricht bei einem Standard-Mapping typischerweise nicht UID 1000 auf dem Proxmox-Host.

Brauche ich TrueNAS oder OpenMediaVault?

Nein. Wenn du lediglich einige SMB-Freigaben und eventuell DLNA benötigst, kann ein schlanker Debian-LXC völlig ausreichen. Systeme wie TrueNAS oder OpenMediaVault bieten dafür deutlich umfangreichere Verwaltungs- und Storage-Funktionen.

Kann Windows auf Samba im LXC zugreifen?

Ja. Die Samba-Freigaben erscheinen für Windows wie normale SMB-Netzwerkfreigaben und können über \\IP-Adresse\Freigabe geöffnet beziehungsweise als Netzlaufwerk eingebunden werden.

Ist MiniDLNA dasselbe wie ReadyMedia?

MiniDLNA ist heute auch unter den Namen ReadyMedia beziehungsweise ReadyDLNA bekannt. Unter Debian heißt das Paket weiterhin minidlna.

Kann ich statt ext4 auch ZFS verwenden?

Ja, aber der Aufbau verändert sich dadurch. ZFS bietet zusätzliche Funktionen wie Checksummen, Snapshots und Pools. Für ein einzelnes unkompliziertes Datenlaufwerk ist ext4 dagegen deutlich einfacher.

Ist eine einzelne NAS-Festplatte ein Backup?

Nein. Ein NAS stellt Daten zentral bereit. Ein Backup ist eine zusätzliche, getrennte Kopie der Daten.


Fazit: Ein Proxmox-NAS muss nicht kompliziert sein

Für meine Anforderungen brauche ich auf einem NAS keine riesige Verwaltungsoberfläche.

Eine Festplatte auf dem Proxmox-Host, ein kleiner Debian-LXC und Samba reichen bereits für einen ziemlich vollständigen Dateiserver:

Festplatte
    ↓
Proxmox
    ↓
Bind-Mount
    ↓
Debian-LXC
    ↓
Samba
    ↓
PC, Notebook, Server

Mit MiniDLNA beziehungsweise ReadyMedia kommt optional noch ein einfacher Medienserver dazu.

Der einzige Teil, bei dem man etwas genauer hinschauen muss, sind die Rechte eines unprivilegierten LXC. Sobald UID-Mapping und Bind-Mount einmal sauber eingerichtet sind, bleibt der restliche Aufbau erfreulich unspektakulär.

Und genau das gefällt mir an dieser Lösung: kein NAS-Betriebssystem im NAS-Betriebssystem, keine zusätzliche dicke Oberfläche – einfach Linux, ein Mountpoint, Samba und fertig.


Weitere passende Proxmox-Beiträge

Wenn du gerade erst mit deinem Homelab anfängst, findest du in meiner Proxmox-Anleitung die Grundlagen zu VMs, LXCs, Netzwerk und Storage.

Falls deine Sicherungen Probleme machen, findest du außerdem meinen Beitrag Proxmox Backup failed – was tun?.

Und wenn dein Homelab zusätzlich über IPv6 erreichbar sein soll, geht es hier weiter: Proxmox mit IPv6 einrichten.

2 Kommentare zu „NAS mit Proxmox und LXC bauen: Samba, Festplatte & DLNA“

Schreibe einen Kommentar