Skip to main content

NFS und fstab - Vollständige Anleitung


Inhaltsverzeichnis

  1. Was ist fstab?
  2. Grundlagen NFS
  3. fstab Syntax und Aufbau
  4. NFS Mount-Optionen erklärt
  5. Systemd Automount
  6. Schritt-für-Schritt: NFS einrichten
  7. Troubleshooting
  8. Praktische Beispiele

Was ist fstab?

Die /etc/fstab (File System Table) ist eine Konfigurationsdatei in Linux-Systemen, die definiert:

  • Welche Dateisysteme beim Systemstart gemountet werden
  • Wo sie im Verzeichnisbaum eingehängt werden
  • Mit welchen Optionen sie gemountet werden

Wichtig: Fehler in der fstab können dazu führen, dass das System nicht mehr bootet!

Backup erstellen (immer vor Änderungen!)

sudo cp /etc/fstab /etc/fstab.backup

Wiederherstellung bei Problemen

Falls das System nicht mehr bootet:

  1. Im Recovery-Modus starten
  2. Root-Dateisystem remounten: mount -o remount,rw /
  3. Backup wiederherstellen: cp /etc/fstab.backup /etc/fstab

Grundlagen NFS

NFS (Network File System) ermöglicht es, Verzeichnisse über das Netzwerk zu teilen.

NFS-Versionen

  • NFSv3: Älter, stabiler, weniger Features
  • NFSv4: Modern, bessere Performance, Sicherheit, empfohlen
  • NFSv4.1/4.2: Erweiterte Features (Multipathing, Sparse Files)

Voraussetzungen

Auf dem Client (wo gemountet wird):

# Debian/Ubuntu/Proxmox
apt update
apt install nfs-common

# Arch Linux
pacman -S nfs-utils

# RHEL/CentOS
yum install nfs-utils

Auf dem Server (NAS):

  • NFS-Server muss laufen und Freigabe konfiguriert sein
  • Firewall muss NFS-Ports freigeben (2049 für NFSv4)

NFS-Server testen

# Verfügbare Freigaben anzeigen
showmount -e <NAS-IP>

# Beispielausgabe:
# Export list for 192.168.1.100:
# /mnt/medien    192.168.1.0/24
# /mnt/backups   192.168.1.50

fstab Syntax und Aufbau

Allgemeine Struktur

Jede Zeile in /etc/fstab hat 6 Felder, getrennt durch Leerzeichen oder Tabs:

<Gerät/Quelle>  <Mountpoint>  <Dateisystem>  <Optionen>  <Dump>  <Pass>

Detaillierte Felderklärung

1. Gerät/Quelle (Device/Source)

Für NFS-Mounts:

<SERVER-IP>:/pfad/zur/freigabe

Beispiele:

192.168.1.100:/mnt/medien
nas.local:/export/daten
10.0.0.5:/volume1/backup

Für lokale Festplatten:

UUID=xxxxx-xxxxx-xxxxx
/dev/sda1
LABEL=Daten

Tipp: UUIDs verwenden für lokale Festplatten (überleben Gerätewechsel):

# UUIDs anzeigen
lsblk -f
# oder
blkid

2. Mountpoint (Einhängepunkt)

Verzeichnis, wo das Dateisystem verfügbar sein soll.

/mnt/medien
/srv/nfs/daten
/home/user/nas

Wichtig:

  • Verzeichnis muss existieren (erstellen mit mkdir -p /pfad/zum/mountpoint)
  • Sollte leer sein
  • Benötigt root-Rechte für Mounts außerhalb von /home

3. Dateisystem-Typ

Für NFS:

nfs        # NFSv3 (alt)
nfs4       # NFSv4 (empfohlen)

Andere gängige Typen:

ext4       # Linux-Standard
ntfs       # Windows (benötigt ntfs-3g)
xfs        # High-Performance Linux
btrfs      # Modernes Linux mit Snapshots
vfat       # FAT32
exfat      # exFAT
cifs       # Windows-Freigaben (SMB)

4. Optionen (Mount Options)

Kommagetrennte Liste, keine Leerzeichen!

option1,option2,option3

Siehe detaillierte Liste unten.

5. Dump (Backup)

0 = nicht sichern mit dump-Befehl (Standard für NFS)
1 = sichern

Veraltet - meist auf 0 setzen.

6. Pass (Filesystem Check)

0 = nicht prüfen mit fsck (Standard für NFS)
1 = als erstes prüfen (nur root-Partition)
2 = nach root prüfen (andere lokale Partitionen)

Für NFS immer 0 (Netzwerk-Dateisysteme können nicht lokal geprüft werden).

Vollständiges Beispiel

# Lokale SSD
UUID=abc123-def456  /home  ext4  defaults,noatime  0  2

# NFS-Share
192.168.1.100:/export/medien  /mnt/medien  nfs4  defaults,nofail  0  0

NFS Mount-Optionen erklärt

Essentielle Optionen

defaults

Aktiviert Standard-Optionen:

  • rw (read-write)
  • suid (SUID-Bits erlaubt)
  • dev (Gerätedateien erlaubt)
  • exec (Ausführbare Dateien erlaubt)
  • auto (Automatisch beim Boot mounten)
  • nouser (Nur root darf mounten)
  • async (Asynchrones Schreiben)

nofail

Sehr wichtig für NFS!

  • System bootet auch wenn Mount fehlschlägt
  • Verhindert Boot-Probleme bei Netzwerkausfällen
# OHNE nofail: System hängt beim Boot wenn NAS nicht erreichbar
# MIT nofail: Boot geht durch, Mount wird übersprungen
options: defaults,nofail

_netdev

"Network Device" - wartet bis Netzwerk verfügbar ist.

# Kombiniert mit nofail ideal für NFS
options: defaults,nofail,_netdev

Performance-Optionen

noatime / nodiratime

Massiver Performance-Gewinn!

  • noatime: Keine Access-Time Updates bei Dateien
  • nodiratime: Keine Access-Time Updates bei Verzeichnissen
  • relatime: Kompromiss - nur Update wenn älter als modify-time (moderner Standard)

Warum wichtig:

# OHNE noatime:
# Jedes Lesen einer Datei = Schreibvorgang (atime-Update)
# Bei NAS mit Standby = ständiges Aufwecken!

# MIT noatime:
# Lesen = nur Lesen, keine Schreibvorgänge
# HDDs bleiben im Standby

Beispiel:

# Standard (schlecht für Standby)
options: defaults

# Optimiert (gut für Standby)
options: defaults,noatime,nodiratime

rsize / wsize

Read/Write Buffer-Größe in Bytes.

# Standard: 1048576 (1MB) für NFSv4
# Erhöhen für bessere Performance:
options: rsize=1048576,wsize=1048576

# Für Gigabit-Netzwerke oft optimal:
options: rsize=131072,wsize=131072

Faustregel:

  • Lokales Netzwerk (Gigabit): 131072 - 1048576
  • Langsamere Verbindungen: 32768 - 65536

async / sync

  • async: Schreibt asynchron (Standard, schneller, minimales Datenverlust-Risiko)
  • sync: Schreibt synchron (langsamer, sicherer)
# Für Medien (Jellyfin): async ist OK
options: async

# Für kritische Datenbanken: sync nutzen
options: sync

Zugriffs-Optionen

ro / rw

  • ro: Read-Only (nur Lesen)
  • rw: Read-Write (Standard)
# Jellyfin braucht meist nur Lesen
options: ro,noatime

# Für Downloads/Uploads:
options: rw,noatime

noexec

Verhindert Ausführung von Programmen vom gemounteten Share.

# Sicherheit für reine Daten-Shares
options: noexec,nodev,nosuid

Automount-Optionen (Systemd)

noauto

Nicht automatisch beim Boot mounten (manuell mit mount -a oder bei Zugriff).

options: noauto,x-systemd.automount

x-systemd.automount

Systemd erstellt einen Automount-Point.

  • Mount erfolgt erst bei Zugriff
  • Reduziert Boot-Zeit
  • Perfekt für NFS!
# Wird erst gemountet wenn Prozess darauf zugreift
options: noauto,x-systemd.automount

x-systemd.idle-timeout=SEKUNDEN

Unmountet nach Inaktivität.

# Nach 5 Minuten (300s) Inaktivität unmounten
options: noauto,x-systemd.automount,x-systemd.idle-timeout=300

# Nach 1 Stunde:
options: noauto,x-systemd.automount,x-systemd.idle-timeout=3600

Perfekt für HDDs im Standby!

x-systemd.mount-timeout=SEKUNDEN

Timeout für Mount-Versuche.

# Nach 30s aufgeben wenn NAS nicht antwortet
options: x-systemd.mount-timeout=30,nofail

NFS-spezifische Optionen

vers=X oder nfsvers=X

NFS-Version festlegen.

# NFSv4 erzwingen
options: vers=4

# NFSv3 erzwingen
options: vers=3

# NFSv4.2 nutzen
options: vers=4.2

hard / soft

Verhalten bei Netzwerk-Timeouts.

  • hard: Wartet ewig (Standard, sicherer)
  • soft: Gibt nach Timeout auf (kann Datenverlust verursachen)
# Empfohlen für wichtige Daten:
options: hard,timeo=600,retrans=2

# Für unkritische Medien:
options: soft,timeo=100

timeo=N

Timeout in Zehntelsekunden (Standard: 600 = 60s).

# Schneller Timeout (10s):
options: timeo=100

# Geduldiger Timeout (2min):
options: timeo=1200

retrans=N

Anzahl der Wiederholungsversuche (Standard: 3).

options: retrans=2

tcp / udp

Transport-Protokoll (Standard für NFSv4: tcp).

# TCP erzwingen (empfohlen)
options: tcp

# UDP (nur für NFSv3, veraltet)
options: udp

ac / noac

Attribute Caching.

  • ac: Attribute cachen (Standard, schneller)
  • noac: Kein Caching (immer aktuell, langsamer)
# Für mehrere Clients die gleichzeitig schreiben:
options: noac

# Für Single-Client (Jellyfin):
options: ac

actimeo=N

Attribute-Cache-Timeout in Sekunden.

# Lange cachen (weniger NFS-Aufrufe):
options: actimeo=3600

# Kurz cachen (aktueller):
options: actimeo=30

Kombinierte Beispiele

# Basis (funktioniert immer):
options: defaults,nofail,_netdev

# Performance-optimiert:
options: defaults,nofail,_netdev,noatime,nodiratime,rsize=131072,wsize=131072

# Standby-optimiert (für HDDs):
options: noatime,nodiratime,noauto,x-systemd.automount,x-systemd.idle-timeout=300,nofail,_netdev

# Read-Only + Sicherheit:
options: ro,noexec,nodev,nosuid,noatime,nofail,_netdev

# Maximum Performance (lokales Gigabit-Netzwerk):
options: rw,noatime,nodiratime,async,rsize=1048576,wsize=1048576,tcp,vers=4.2,nofail,_netdev

Systemd Automount

Warum Automount?

Vorteile:

  • Schnellerer Boot (nicht warten auf NFS-Server)
  • Automatisches Unmount bei Inaktivität
  • HDDs bleiben im Standby
  • Fehlertoleranter (Netzwerk-Probleme beim Boot)

Manuell vs. Systemd-Automount

Traditioneller Mount (veraltet):

# /etc/fstab
server:/share  /mnt/data  nfs  defaults  0  0

# Probleme:
# - Bootet nicht wenn Server offline
# - Immer gemountet (HDDs nie im Standby)
# - Langsamer Boot

Systemd-Automount (modern):

# /etc/fstab
server:/share  /mnt/data  nfs  noauto,x-systemd.automount,x-systemd.idle-timeout=300,nofail  0  0

# Vorteile:
# - Boot geht durch auch wenn Server offline
# - Mount erst bei Zugriff
# - Automatisches Unmount nach 5min

Wie funktioniert Automount?

1. Systemd erstellt "Autofs-ähnlichen" Mountpoint

systemctl status mnt-data.automount
# Zeigt: waiting for access

2. Bei Zugriff wird gemountet

ls /mnt/data
# Trigger! Jetzt wird NFS gemountet

3. Nach idle-timeout wird unmounted

# Nach 300s ohne Zugriff:
systemctl status mnt-data.mount
# Zeigt: inactive (dead)

Automount-Einheiten anzeigen

# Alle Automounts
systemctl list-units --type=automount

# Status eines spezifischen Mounts
systemctl status mnt-data.automount
systemctl status mnt-data.mount

# Logs anzeigen
journalctl -u mnt-data.mount -f

Manuelles Triggern

# Mount erzwingen
systemctl start mnt-data.mount

# Unmount erzwingen
systemctl stop mnt-data.mount

# Automount neu starten
systemctl restart mnt-data.automount

Schritt-für-Schritt: NFS einrichten

1. Vorbereitung

Client-Software installieren

# Debian/Ubuntu/Proxmox LXC
apt update
apt install nfs-common

# Status prüfen
systemctl status nfs-common
# Sollte "loaded" zeigen (muss nicht "active" sein)

Mountpoint erstellen

# Verzeichnis anlegen
sudo mkdir -p /mnt/jellyfin-medien

# Berechtigungen prüfen (optional)
ls -ld /mnt/jellyfin-medien
# Sollte root:root zeigen

NFS-Server testen

# Verfügbare Shares anzeigen
showmount -e 192.168.1.100

# Manuell testweise mounten
sudo mount -t nfs4 192.168.1.100:/export/medien /mnt/test
ls /mnt/test
sudo umount /mnt/test

2. fstab editieren

# Backup erstellen!
sudo cp /etc/fstab /etc/fstab.backup

# Editor öffnen (nano für Anfänger)
sudo nano /etc/fstab

# Oder vim für Fortgeschrittene
sudo vim /etc/fstab

3. Eintrag hinzufügen

Am Ende der Datei neue Zeile hinzufügen:

# Jellyfin Medien-NFS
192.168.1.100:/export/medien  /mnt/jellyfin-medien  nfs4  defaults,nofail,_netdev  0  0

Wichtig:

  • Kommentare mit # beginnen
  • Felder mit Tab oder Leerzeichen trennen
  • Keine Leerzeichen in Optionen (nur Kommas!)

4. Syntax prüfen

# Testet fstab OHNE zu mounten
sudo mount -a --fake

# Sollte keine Fehler zeigen

5. Mount aktivieren

# Mountpoint mounten (ohne Neustart)
sudo mount -a

# ODER spezifisch:
sudo mount /mnt/jellyfin-medien

# Prüfen ob erfolgreich
mount | grep jellyfin-medien
df -h | grep jellyfin-medien
ls /mnt/jellyfin-medien

6. Systemd-Services prüfen (bei Automount)

# Daemon neu laden
sudo systemctl daemon-reload

# Remote-FS Target neu starten
sudo systemctl restart remote-fs.target

# Automount-Status prüfen
systemctl status mnt-jellyfin\\x2dmedien.automount

Hinweis: Systemd maskiert / als \\x2d in Unit-Namen.

7. Beim Boot testen

# System neu starten
sudo reboot

# Nach Neustart prüfen
mount | grep jellyfin
systemctl status mnt-jellyfin\\x2dmedien.automount

Troubleshooting

Mount schlägt fehl

Problem: "mount.nfs: Connection timed out"

Ursachen:

  • NFS-Server nicht erreichbar
  • Firewall blockiert Port 2049
  • Falsche IP-Adresse

Lösung:

# Netzwerk-Verbindung prüfen
ping 192.168.1.100

# NFS-Port prüfen
telnet 192.168.1.100 2049
# Sollte verbinden (Ctrl+C zum Beenden)

# Oder mit nmap
nmap -p 2049 192.168.1.100

# Firewall auf Client prüfen
sudo ufw status
# Falls blockiert:
sudo ufw allow from 192.168.1.100

Problem: "mount.nfs: access denied"

Ursachen:

  • Client-IP nicht in NFS-Export erlaubt
  • Falsche Berechtigungen auf Server

Lösung:

# Exports auf Server prüfen (falls Zugriff)
cat /etc/exports
# Sollte Client-IP enthalten:
# /export/medien 192.168.1.0/24(rw,sync,no_subtree_check)

# Oder NFS-Server neu starten (auf Server)
systemctl restart nfs-kernel-server

Problem: "mount.nfs: Protocol not supported"

Ursache: NFSv4 nicht verfügbar auf Server

Lösung:

# NFSv3 versuchen
# In /etc/fstab: nfs4 → nfs ändern
# Oder:
options: vers=3

System bootet nicht

Recovery-Modus

  1. GRUB-Menü: Advanced Options → Recovery Mode
  2. Root-Shell aktivieren:
mount -o remount,rw /
  1. fstab reparieren:
nano /etc/fstab
# Problematische Zeile mit # auskommentieren
# ODER:
cp /etc/fstab.backup /etc/fstab
  1. Rebooten:
reboot

Noboot-Parameter

Beim GRUB-Boot e drücken und hinzufügen:

systemd.unit=rescue.target

Performance-Probleme

Diagnose

# NFS-Statistiken
nfsstat -m
# Zeigt: Server, Version, Optionen

# Aktuelle Mount-Optionen anzeigen
mount | grep nfs

# I/O-Performance testen
dd if=/dev/zero of=/mnt/jellyfin-medien/test bs=1M count=1000
# Sollte >50 MB/s zeigen für Gigabit

Optimierung

# In /etc/fstab optimieren:
# ALT:
options: defaults

# NEU:
options: rsize=131072,wsize=131072,noatime,nodiratime,async,tcp

Automount funktioniert nicht

# Systemd-Status prüfen
systemctl status mnt-jellyfin\\x2dmedien.automount
systemctl status mnt-jellyfin\\x2dmedien.mount

# Logs anzeigen
journalctl -u mnt-jellyfin\\x2dmedien.mount -n 50

# Daemon neu laden
sudo systemctl daemon-reload
sudo systemctl restart remote-fs.target

# Manuell triggern
ls /mnt/jellyfin-medien

Berechtigungsprobleme

Problem: "Permission denied" beim Zugriff

Für NFSv4:

# Client-UID mit Server-UID matchen
# Auf Client:
id jellyfin
# z.B. uid=1000

# Auf Server sicherstellen dass UID 1000 Rechte hat
# Oder in NFS-Export:
# /export/medien *(rw,all_squash,anonuid=1000,anongid=1000)

Für NFSv3:

# no_root_squash nutzen (unsicherer)
# Auf Server /etc/exports:
/export/medien *(rw,no_root_squash,no_subtree_check)

Standby-Probleme (HDDs wachen ständig auf)

Diagnose

# Welcher Prozess greift zu?
sudo apt install auditd
sudo auditctl -w /mnt/jellyfin-medien -p war -k nfs_watch
# Dann logs prüfen:
sudo ausearch -k nfs_watch -i

# Oder mit inotifywait:
sudo apt install inotify-tools
inotifywait -m -r /mnt/jellyfin-medien

Häufige Übeltäter

1. Jellyfin Real-time Monitoring

  • Dashboard → Bibliotheken → ⚙️ → "Enable real-time monitoring" AUS

2. updatedb / mlocate

# /etc/updatedb.conf editieren:
PRUNEPATHS="/mnt/jellyfin-medien"

3. Proxmox Backup Jobs

# In /etc/pve/storage.cfg:
# Backup-Scan für NFS-Storage ausschließen

4. atime Updates

# Sicherstellen dass noatime gesetzt ist:
mount | grep jellyfin
# Sollte "noatime" zeigen

Praktische Beispiele

Beispiel 1: Einfacher NFS-Mount (Basis)

Anwendungsfall: NAS für Backups, immer verfügbar

# /etc/fstab
192.168.1.100:/volume1/backups  /mnt/backups  nfs4  defaults,nofail,_netdev  0  0

Erklärung:

  • defaults: Standard-Optionen
  • nofail: Boot geht durch auch wenn NAS offline
  • _netdev: Wartet auf Netzwerk
  • 0 0: Kein Backup, kein fsck

Aktivieren:

sudo mkdir -p /mnt/backups
sudo mount -a

Beispiel 2: Read-Only Media-Share

Anwendungsfall: Jellyfin Medien, nur Lesen nötig

# /etc/fstab
192.168.1.100:/export/medien  /mnt/medien  nfs4  ro,noatime,nodiratime,nofail,_netdev  0  0

Erklärung:

  • ro: Read-Only (Sicherheit)
  • noatime,nodiratime: Keine Access-Time Updates (Performance)
  • Rest wie Beispiel 1

Jellyfin-Config:

# Jellyfin Bibliothek zeigt auf:
/mnt/medien/filme
/mnt/medien/serien

Beispiel 3: High-Performance Share

Anwendungsfall: Lokales Gigabit-Netzwerk, maximale Geschwindigkeit

# /etc/fstab
192.168.1.100:/fast/storage  /mnt/fast  nfs4  rw,noatime,nodiratime,async,rsize=1048576,wsize=1048576,tcp,vers=4.2,nofail,_netdev  0  0

Erklärung:

  • async: Asynchrones Schreiben (schnell)
  • rsize=1048576,wsize=1048576: 1MB Buffer (max für NFSv4)
  • tcp: TCP erzwingen
  • vers=4.2: Neueste NFS-Version

Benchmark:

# Schreib-Test
dd if=/dev/zero of=/mnt/fast/test bs=1M count=1000 oflag=direct
# Sollte >100 MB/s zeigen

# Lese-Test
dd if=/mnt/fast/test of=/dev/null bs=1M

Beispiel 4: Automount mit Timeout

Anwendungsfall: Nur bei Bedarf mounten, spart Ressourcen

# /etc/fstab
192.168.1.100:/share  /mnt/auto  nfs4  noauto,x-systemd.automount,x-systemd.idle-timeout=600,nofail,_netdev,noatime  0  0

Erklärung:

  • noauto: Nicht beim Boot mounten
  • x-systemd.automount: Automount aktivieren
  • x-systemd.idle-timeout=600: Unmount nach 10min Inaktivität

Verhalten:

# Direkt nach Boot:
systemctl status mnt-auto.mount
# Status: inactive (dead)

# Bei Zugriff:
ls /mnt/auto
# Jetzt mounted!

# 10 Minuten später automatisch unmounted

Beispiel 5: Multiple NFS-Shares

Anwendungsfall: Verschiedene Shares vom selben Server

# /etc/fstab

# Medien (Read-Only, optimiert)
nas.local:/medien  /srv/medien  nfs4  ro,noatime,nodiratime,nofail,_netdev  0  0

# Downloads (Read-Write)
nas.local:/downloads  /srv/downloads  nfs4  rw,noatime,nofail,_netdev  0  0

# Backups (mit Automount)
nas.local:/backups  /srv/backups  nfs4  noauto,x-systemd.automount,x-systemd.idle-timeout=1800,nofail,_netdev  0  0

Mountpoints erstellen:

sudo mkdir -p /srv/{medien,downloads,backups}
sudo mount -a

Beispiel 6: Optimiert für HDDs im Standby ⭐

Anwendungsfall: NAS mit HDDs die in Standby gehen sollen, nur bei Bedarf aufwecken (Jellyfin Media Server)

# /etc/fstab
192.168.1.100:/export/jellyfin  /mnt/jellyfin-medien  nfs4  noatime,nodiratime,noauto,x-systemd.automount,x-systemd.idle-timeout=300,nofail,_netdev,ro,rsize=131072  0  0

Erklärung (jede Option ist wichtig!):

  • noatime: ⚡ KRITISCH - Verhindert Access-Time Updates beim Lesen
  • nodiratime: ⚡ KRITISCH - Verhindert Access-Time Updates bei Verzeichnissen
  • noauto: Nicht beim Boot mounten
  • x-systemd.automount: Mount erst bei Zugriff (Jellyfin-Start oder User-Zugriff)
  • x-systemd.idle-timeout=300: Unmount nach 5 Minuten ohne Zugriff (HDDs gehen in Standby)
  • nofail: Boot geht durch auch wenn NAS offline
  • _netdev: Wartet auf Netzwerk
  • ro: Read-Only (Jellyfin braucht kein Schreiben)
  • rsize=131072: Read-Buffer optimiert für Streaming

Warum funktioniert das?

  1. Beim Boot: Share wird NICHT gemountet → HDDs bleiben im Standby
  2. Jellyfin-Start: Zugriff auf /mnt/jellyfin-medien triggert Mount → HDDs fahren hoch
  3. Während Wiedergabe: noatime verhindert Schreibzugriffe → HDDs bleiben an
  4. Nach Film: 5 Minuten ohne Zugriff → Automount unmounted → HDDs gehen in Standby
  5. Nächster Film: Cycle wiederholt sich

Zusätzliche Jellyfin-Optimierungen:

Jellyfin Dashboard → Geplante Aufgaben

1. "Medienbibliotheken scannen" - nur alle 7 Tage nachts

Trigger: 0 3 */7 * *

2. Echtzeit-Überwachung deaktivieren

Dashboard → Bibliotheken → [Bibliothek] → ⚙️ → "Enable real-time monitoring" AUS

3. Thumbnail-Generierung einschränken

Dashboard → Playback → Transcoding → "Enable video image extraction during library scans" AUS (wenn nicht benötigt)

Status überwachen:

# Automount-Status
systemctl status mnt-jellyfin\\x2dmedien.automount

# Ist aktuell gemounted?
systemctl status mnt-jellyfin\\x2dmedien.mount
# "active (mounted)" = gemounted
# "inactive (dead)" = unmounted

# Live-Logs bei Zugriff
journalctl -u mnt-jellyfin\\x2dmedien.mount -f

# HDD-Status auf NAS prüfen (via SSH)
ssh root@192.168.1.100
hdparm -C /dev/sda
# Sollte "standby" zeigen wenn nicht in Benutzung

Erwartetes Verhalten:

# 1. System booten
systemctl status mnt-jellyfin\\x2dmedien.mount
# → inactive (dead) ✓

# 2. Jellyfin öffnen (Web-UI)
# → Kurze Verzögerung (2-5s) beim ersten Laden
# → HDDs fahren hoch

# 3. Film schauen (1h)
# → HDDs bleiben an

# 4. Film stoppen, 5 Minuten warten
systemctl status mnt-jellyfin\\x2dmedien.mount
# → inactive (dead) ✓
# HDDs im Standby ✓

# 5. Nächster Film
# → Wieder kurze Verzögerung, HDDs fahren hoch

Troubleshooting für dieses Setup:

Falls HDDs dennoch häufig aufwachen:

1. Übeltäter finden

sudo apt install auditd
sudo auditctl -w /mnt/jellyfin-medien -p war -k jellyfin_access
# Dann auslesen:
sudo ausearch -k jellyfin_access -i | less

2. Häufige Übeltäter ausschließen

# - updatedb (mlocate):
echo 'PRUNEPATHS="/mnt/jellyfin-medien"' | sudo tee -a /etc/updatedb.conf

# - Proxmox Backup (falls LXC):
# In /etc/pve/storage.cfg den NFS-Storage von Backups ausschließen

3. Jellyfin Plugin-Scans prüfen

Dashboard → Plugins → [Plugin] → Settings

Automatische Updates/Scans deaktivieren

4. Idle-Timeout erhöhen falls nötig

# In /etc/fstab: x-systemd.idle-timeout=300 → x-systemd.idle-timeout=900 (15min)

Performance-Hinweis:

Die 2-5s Verzögerung beim Mount ist normal und akzeptabel:

  • Aufweck-Zeit HDDs: 1-3s
  • NFS-Mount: 1-2s
  • Jellyfin merkt das kaum (cacht Metadaten)

Wenn dir das zu langsam ist, erhöhe idle-timeout auf 30-60 Minuten:

options: ...,x-systemd.idle-timeout=1800,...
# = 30 Minuten

Beispiel 7: SMB/CIFS-Alternative (Windows-Share)

Für Vergleich: So sieht ein Windows-Share aus

# /etc/fstab
//192.168.1.100/medien  /mnt/windows  cifs  credentials=/root/.smbcreds,iocharset=utf8,nofail,_netdev  0  0

# /root/.smbcreds (chmod 600!)
username=user
password=passwort
domain=WORKGROUP

NFS ist besser für Linux-zu-Linux!


Best Practices Zusammenfassung

✅ Immer machen:

  • nofail bei allen Netzwerk-Mounts
  • _netdev bei allen Netzwerk-Mounts
  • Backup vor fstab-Änderungen
  • noatime für Performance
  • mount -a testen vor Reboot

❌ Vermeiden:

  • Leerzeichen in Optionen (nur Kommas!)
  • auto ohne nofail bei NFS
  • sync ohne guten Grund (langsam)
  • Root-Partition in fstab ändern ohne Live-USB Backup

🎯 Für Standby-HDDs:

noatime,nodiratime,noauto,x-systemd.automount,x-systemd.idle-timeout=300,nofail,_netdev

🚀 Für Performance:

noatime,nodiratime,async,rsize=1048576,wsize=1048576,tcp,vers=4.2,nofail,_netdev

🔒 Für Sicherheit:

ro,noexec,nodev,nosuid,noatime,nofail,_netdev

Weiterführende Ressourcen

Offizielle Dokumentation:

  • man fstab - Manpage auf deinem System
  • man nfs - NFS-spezifische Optionen
  • man systemd.mount - Systemd Mount-Units

Online:

  • Arch Wiki - fstab
  • Arch Wiki - NFS
  • Ubuntu NFS Guide

Debugging:

# Logs
journalctl -xe | grep mount
dmesg | grep -i nfs

# Systemd
systemctl list-units --type=mount
systemctl list-units --type=automount

Viel Erfolg mit deinem NFS-Setup! 🎉