Proxmox NAS mit LXC einrichten – die schlanke Lösung für Nerds und Homelab-Bastler

Ein leichtgewichtiges NAS ohne dicke Klick-Klick-Oberfläche – genau das basteln wir hier: ein Debian-LXC auf Proxmox, eine dedizierte Festplatte als Datenspeicher, Samba für Windows-Freigaben und MiniDLNA für TV/Player. Der Guide ist so gebaut, dass du ihn 1:1 ins Terminal werfen kannst – und jetzt mit nerdig-charmanten Erklärungen, warum das Ganze funktioniert.

Zielbild

  • Host: Proxmox VE
  • Datendisk: ext4 auf /mnt/nas-disk
  • LXC (Debian 12): sieht die Platte als /mnt/nas
  • Shares (Samba): fotos, videos, music, backups
  • DLNA (MiniDLNA): scannt fotos/videos/music

Voraussetzungen – das Fundament

Bevor wir loslegen, checken wir, ob unser Proxmox bereit ist: ein Debian-Template, eine Bridge fürs Netz (vmbr0) und eine zusätzliche Platte, die bald zum Datenhort wird. Wenn hier was fehlt, erstmal das fixen – sonst wird’s wie Kuchenbacken ohne Backofen.

Praktisch: Lies vorher kurz in meiner Proxmox Anleitung rein, falls du neu im Homelab-Game bist.

Tipp: Für das Projekt lohnt sich eine solide SSD (Crucial BX500 1TB (bezahlter Link) oder Samsung 870 EVO 1TB (bezahlter Link)). Wenn du später mehr speichern willst, gönn dir gleich eine große NAS-HDD* (WD Red Plus 4TB (bezahlter Link)).


1) Platte vorbereiten – Bits und Bytes in Reih und Glied

Hier bringen wir Ordnung auf die Festplatte: Partition anlegen, Dateisystem erstellen, Mountpoint bauen und in die fstab eintragen. Kurz gesagt: Wir sagen Linux, wo es die Daten später wiederfindet.

👉 Mehr zu Dateisystemen findest du im Debian Wiki (Filesystem Basics).

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

Zeigt alle Laufwerke und Partitionen an – quasi der Röntgenblick in den Speicherbauch des Servers.

wipefs -a /dev/sdb

Löscht alles – gnadenlos. Danach ist das Ding wirklich leer. Nur nutzen, wenn du dir absolut sicher bist.

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

w
FDISK

Das altehrwürdige fdisk: Wir werfen eine neue GPT-Tabelle auf die Platte (g), erstellen eine Partition (n) und speichern das Ganze (w).

mkfs.ext4 -L NASDATA /dev/sdb1

Formatiert die Partition mit ext4, nennt sie NASDATA – unser kleiner digitaler Tresor bekommt seinen Namen.

mkdir -p /mnt/nas-disk
blkid /dev/sdb1

Wir machen einen Mountpunkt und lesen die UUID aus – das ist der unverwechselbare Fingerabdruck der Partition.

nano /etc/fstab

Die fstab ist wie ein Stundenplan fürs Booten: Hier tragen wir ein, welche Platten automatisch eingehängt werden sollen.

mount -a
df -h | grep nas-disk

Wir testen, ob das Ganze funktioniert – und prüfen, ob die Platte wirklich da hängt, wo sie soll.


2) Debian-LXC erstellen – unser kleines Betriebssystem im Käfig

Jetzt wird’s konkret: Wir erschaffen den Container, in dem unser NAS lebt. Das ist wie ein Mini-PC im großen Proxmox-System.

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

Dieser Befehl erschafft Container-ID 200 mit 512 MB RAM, einer CPU und automatischer IP über DHCP. --unprivileged sorgt für mehr Sicherheit.

pct start 200

Wir hauchen ihm Leben ein. Der Container startet – ab jetzt tickt dort ein eigenes Mini-Debian.

pct exec 200 -- hostname -I

Damit finden wir heraus, welche IP unser LXC im Netzwerk bekommen hat.

Hardware-Tipp: Für stabile Netzwerkverbindungen im Rack ist ein PoE-Switch Gold wert – z. B. der TP-Link TL-SG108PE (bezahlter Link).


3) Datendisk einhängen – Platte trifft Container

Jetzt verheiraten wir Host und Container: Die physische Platte auf dem Host wird im LXC eingebunden.

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

Das ist der Zauberspruch: Wir sagen dem Container, dass /mnt/nas-disk auf dem Host unter /mnt/nas im LXC erscheinen soll.

(A) Container privilegiert schalten – schnell und schmutzig

Manchmal darf der Container ruhig wissen, dass er auf dem Host läuft. So kann er ohne Umwege auf die Platte schreiben.

pct stop 200
nano /etc/pve/lxc/200.conf   # unprivileged: 1 -> 0
pct start 200

Container stoppen, in der Konfigurationsdatei den Schalter umlegen und wieder starten. Voilà: privilegiert.

(B) Container unprivilegiert lassen – sauber, aber mehr Aufwand

Hier bleibt die Sicherheit höher, wir müssen aber UID und GID passend setzen.

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

Im Container sehen wir, welche ID der Benutzer hat (meist 1000). Dann geben wir ihm auf dem Host Besitzrechte über die Platte.

pct enter 200
ls -lh /mnt/nas

Wir schauen nach, ob der Container die Platte jetzt brav sieht.


4) Samba installieren – Windows spricht jetzt auch NASisch

Samba ist der Dolmetscher zwischen Linux und Windows. Hiermit bekommt dein NAS endlich eine Freigabe im Explorer.

👉 Weitere Infos: Offizielle Samba Doku

apt update
apt install -y samba

Lädt die neuesten Paketlisten und installiert Samba.

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

Erstellt die Ordner, die später als Freigaben auftauchen.

adduser zebra
smbpasswd -a zebra

Erzeugt einen Benutzer im System und gibt ihm ein Samba-Passwort – ohne das gibt’s keinen Zutritt.

nano /etc/samba/smb.conf

Hier konfigurieren wir unsere Freigaben: Pfade, Zugriffsrechte, Benutzer. Danach speichern, schließen, fertig.

systemctl enable smbd --now
systemctl status smbd

Aktiviert den Samba-Dienst, startet ihn sofort und prüft den Status. Läuft’s grün, läuft’s gut.


5) MiniDLNA – Medienstreaming für Faule

Jetzt kommt der Bonus: Wir verwandeln das NAS in einen Medienserver, der automatisch alle Bilder, Videos und Musik findet und an Smart-TVs verteilt.

apt update
apt install -y minidlna locales

Zieht sich DLNA und Sprachpakete – weil deutsche Fehlermeldungen einfach freundlicher sind.

sed -i 's/^# \(de_DE.UTF-8 UTF-8\)/\1/' /etc/locale.gen
locale-gen
update-locale LANG=de_DE.UTF-8

Aktiviert die deutsche Sprache im System – kein Muss, aber hübscher.

mkdir -p /var/cache/minidlna /var/log/minidlna /run/minidlna
chown -R minidlna:minidlna /var/cache/minidlna /var/log/minidlna /run/minidlna

Erstellt Cache- und Logverzeichnisse, damit MiniDLNA nicht meckert.

nano /etc/minidlna.conf

Hier sagen wir dem Server, welche Medienordner er scannen soll und welchen Namen er im Netzwerk trägt.

systemctl enable minidlna --now
systemctl stop minidlna
minidlnad -R -f /etc/minidlna.conf
systemctl start minidlna

Startet MiniDLNA, baut eine neue Medien-Datenbank auf und startet wieder sauber durch.

Weboberfläche: http://<Container-IP>:8200/ – hier siehst du, was der Server gefunden hat.

Tipp: Wenn du keinen Smart-TV hast, probier VLC Media Player oder einen Raspberry Pi mit Kodi (Raspberry Pi Set bei Amazon (bezahlter Link)).


6) Troubleshooting – wenn das NAS zickt

Hier greifen wir zum Schraubenzieher der digitalen Welt. Ob fehlende Berechtigungen, blockierte Ports oder störrische Fernseher – hier findest du die typischen Stolpersteine und ihre Reparaturkommandos.


7) Fertig & Nächste Schritte – der Nerdmodus ist aktiviert

Dein DIY-NAS läuft! Zeit für den Feinschliff: Backups mit rsync oder borgbackup (BorgBackup Doku) automatisieren, vielleicht noch SnapRAID für Redundanz oder MergerFS für Plattenverbunde.

Wenn du magst, spiel mit Samba-Performanceparametern und gönn deinem LXC eine feste IP – denn Stabilität ist sexy.

Glückwunsch, du hast ein echtes Nerd-NAS gebaut! 💾📺🦓

Schreibe einen Kommentar