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! 💾📺🦓

