{ "meta": { "title": "NFS Client in LXC | ProxMenux Dokumentation", "description": "NFS-Freigaben direkt in einem Proxmox-LXC-Container mit ProxMenux einhängen. Installiert nfs-common automatisch, unterstützt automatische Erkennung im LAN, dauerhafte Mounts über /etc/fstab und sichere Starteinstellungen. Erfordert einen privilegierten Container.", "ogTitle": "NFS Client in LXC | ProxMenux Dokumentation", "ogDescription": "NFS-Freigaben in einem privilegierten LXC einhängen. Automatische Erkennung, dauerhafte Einträge in /etc/fstab und sichere Starteinstellungen." }, "header": { "title": "NFS-Client in LXC", "description": "NFS-Freigaben direkt in einem Proxmox-LXC-Container einhängen. Der Container ist ein eigener NFS-Client: Er kommuniziert über das Netzwerk mit dem Server, führt mount.nfs aus und schreibt in /etc/fstab. ProxMenux installiert nfs-common, hilft beim Auffinden von Servern und Exporten und setzt sichere Starteinstellungen.", "section": "Speicher und Freigaben · LXC" }, "privReq": { "title": "Privilegierter Container erforderlich", "body": "Der Kernel-mount.nfs-Client benötigt Funktionen (mindestens SYS_ADMIN), die nicht privilegierte LXC-Container nicht bereitstellen. Das Skript erzwingt dies - es fordert Sie auf, einen CT auszuwählen, und bricht bei unprivilegierten CTs ab. Wenn Sie die Freigabe in einem unprivilegierten CT benötigen, montieren Sie sie zuerst auf dem Proxmox-Host (mit NFS-Freigabe als Proxmox-Speicher) und binden Sie sie mit dem LXC-Mount-Manager in den CT ein." }, "what": { "heading": "Was das macht", "body": "Im Gegensatz zum LXC Mount Manager, der den CT dazu bringt, etwas via im Proxmox-Host zu sehen, gibt dieses Skript dem Container seinen eigenen NFS-Client: Er spricht NFS über das Netzwerk, mountet Shares direkt vom NFS-Server und speichert das Mount im /etc/fstab des Containers. Der Proxmox-Host befindet sich nicht im Datenpfad.", "diagramServerLabel": "NFS-Server", "diagramServerDetail": "/export/data", "diagramHostLabel": "Proxmox-Host", "diagramHostDetail": "(nur eine\nNetzwerkbrücke)", "diagramCtLabel": "LXC (privilegiert)", "diagramCtDetail": "/mnt/data\nmount.nfs im CT", "diagramArrow": "NFS", "twoWaysTitle": "Zwei Möglichkeiten, einem CT NFS Zugang zu gewähren - wählen Sie einen", "twoWaysBind": "Bind-Mount über den Host (LXC Mount Manager): Der Host bindet die NFS-Freigabe einmal ein; jeder CT erhält denselben Pfad als Bind-Mount. Funktioniert mit unprivilegierten CTs und empfiehlt sich, wenn mehrere CTs dieselbe Freigabe benötigen.", "twoWaysDirect": "Direct NFS Mount im CT (diese Seite): Der CT montiert den NFS selbst. Erfordert Privilegien. Nützlich, wenn der CT seine Verbindung / Anmeldeinformationen besitzen muss, oder für Setups, bei denen jeder CT mit einem anderen Server spricht." }, "opening": { "heading": "Öffnen des Tools", "body": "Öffnen Sie im Hauptmenü von ProxMenux Storage & Share Manager → NFS-Client in LXC (nur privilegiert) konfigurieren. ProxMenux fordert Sie zuerst auf, das Ziel CT auszuwählen (und startet es, wenn es gestoppt wird); abbricht, wenn es nicht privilegiert ist. Sobald das CT ausgewählt ist, sehen Sie dieses sub-Menü:", "imageAlt": "NFS Client-Manager-Menü — Mount / View / Unmount / Testverbindung" }, "howRuns": { "heading": "Wie das Skript läuft (Mount Flow)" }, "fstabFlags": { "heading": "Warum diese Fstab Flags", "intro": "Für permanente Mounts fügt das Skript drei Flags hinzu, die über die Standard-NFS-Optionen hinausgehen: _netdev,x-systemd.automount,noauto. Jeder löst ein echtes Boot-Time-Problem:", "headerFlag": "Flagge", "headerEffect": "Was es tut", "rows": [ { "flag": "_netdev", "effect": "Sagt dem init-system, dass dieses mount das netzwerk benötigt. Boot blockiert nicht das Warten darauf, bevor das Netzwerk aufgebaut ist." }, { "flag": "x-systemd.automount", "effectRich": "Erstellt eine automatische systemd-Einheit: Die Mount erfolgt nur beim ersten Zugriff auf /mnt/<path>. NFS-Server, der beim Booten nicht erreichbar ist, stoppt den CT nicht." }, { "flag": "noauto", "effect": "Überspringt das sofortige Einhängen beim Booten. Zusammen mit der Automount-Einheit wird der Mount erst beim ersten Zugriff eingerichtet." } ], "netEffectTitle": "Nettoeffekt", "netEffectBody": "Das NFS-Dateisystem wird beim ersten Zugriff eingehängt statt sofort beim Booten. Ist der Server offline, kann dieser Zugriff warten oder fehlschlagen; davon abhängige Dienste können betroffen sein. Automount verringert die Abhängigkeit beim Booten, garantiert aber nicht, dass alle CT-Dienste von einem NFS-Ausfall unberührt bleiben." }, "manual": { "heading": "Manuelles Äquivalent", "body": "Replizieren Sie den gesamten Ablauf per Hand – jeder Befehl führt im CT über pct exec <ctid> -- oder direkt über pct enter <ctid> aus:" }, "view": { "heading": "Aktuelle Mounts anzeigen", "body": "Listet jeden NFS-Montagepunkt auf, der innerhalb des CT (mount | grep nfs) aktiv ist, sowie jede NFS-Linie im /etc/fstab des CT. Für jeden fstab-eintrag wird der live-mount-status angezeigt - nützlich, um permanente mounts zu erkennen, die beim booten nicht aufgekommen sind." }, "unmount": { "heading": "NFS-Freigabe aushängen", "body": "Kombiniert die Live-Mounts und die fstab-Einträge in einer Liste, lässt Sie einen auswählen und entfernt die entsprechende Zeile aus /etc/fstab. Das Skript führt nicht umount auf dem Live-Mount aus – stattdessen teilt es Ihnen mit, dass ein CT Neustart erforderlich ist, damit das Unmounten wirksam wird.", "warnTitle": "Das Skript entfernt fstab-Einträge, nicht Live-Mounts", "warnBody": "Dies ist eine bewusste Entscheidung: umount schlägt bei einem noch verwendeten Mount mit „device busy“ fehl, wenn ein Prozess im CT darauf zugreift. Ohne den fstab-Eintrag wird der Mount beim nächsten CT-Start nicht erneut eingerichtet. Soll er sofort verschwinden und sind Sie sicher, dass nichts mehr darauf zugreift, führen Sie nach Abschluss des Skripts pct exec <ctid> -- umount /mnt/<path> manuell aus." }, "test": { "heading": "NFS-Verbindung testen", "body": "Diagnose im CT: Prüft, ob nfs-common installiert ist und rpcbind läuft, und listet die aktuellen NFS-Mounts auf. Anschließend wird für jeden in fstab eingetragenen NFS-Server die Folge Ping → Port 2049 → showmount -e geprüft. Ein sinnvoller erster Schritt, wenn ein dauerhafter Mount nicht verfügbar wird." }, "troubleshoot": { "heading": "Fehlerbehebung", "privTitle": "Privilegierter Container erforderlich (Skript bricht ab)", "privBody": "Der ausgewählte CT ist unprivilegiert. Der Kernel-NFS-Client benötigt SYS_ADMIN-Fähigkeiten, die nicht privilegierte CTs nicht aussetzen. Entweder konvertieren Sie die CT in privilegierte (die Konvertierung von Disk Manager & ist auf der Import Disk in LXC Seite dokumentiert) oder verwenden Sie den alternativen Pfad, der in der Warnung oben auf dieser Seite beschrieben ist.", "aptTitle": "apt-get install nfs-common fails", "aptIntro": "Das Skript nimmt eine Debian-Familie CT (apt-get) an. Wenn der CT Alpine / Arch / Rocky / Alma läuft, schlägt der Installationsschritt lautlos fehl. Installieren Sie den NFS-Client von Hand für diese Distribution:", "aptItems": [ "Alpine: apk add nfs-utils", "Arch: pacman -S nfs-utils", "Rocky / Alma: dnf install nfs-utils" ], "aptOutro": "Führen Sie dann das ProxMenux-Skript erneut aus - der Installationsschritt überspringt, wenn die Tools bereits vorhanden sind.", "portTitle": "\"NFS port (2049) is not accessible\"", "portBody": "Ping war erfolgreich, aber nc -z <server> 2049 scheiterte innerhalb des CT. Überprüfen Sie, ob der NFS-Dienst auf dem Server ausgeführt wird, ob die Firewall 2049 aus dem Netzwerk des CT zulässt und ob der CT tatsächlich eine gültige Netzwerkroute hat (probieren Sie pct exec <ctid> -- ip route).", "bootTitle": "Permanent Mount gelingt, kommt aber nicht beim Booten", "bootBody": "Fast immer einer von: Das Netzwerk ist nicht bereit, wenn die CT-Mounts (die _netdev,x-systemd.automount,noauto-Flags des Skripts beheben dies - fügen Sie das Mount über das Skript erneut hinzu, wenn Sie die Fstab-Zeile von Hand ohne diese geschrieben haben), der Server ist beim Booten nicht erreichbar (Auto-Mount wartet auf den ersten Zugriff - das ist normal), oder DNS ist beim Booten ungelöst (verwenden Sie die IP des Servers, nicht seinen Hostnamen).", "squashTitle": "Server Squashes root, kein Schreibzugriff von innen CT", "squashIntro": "Der NFS-Export verwendet root_squash (Standard) und der CT schreibt als root. Zwei Optionen:", "squashItems": [ "Server-Seite: Ändern Sie den Export in no_root_squash (nur wenn Sie dem CT vertrauen).", "CT-Seite: Schreiben Sie als Nicht-Root-Benutzer, den der Server akzeptiert, oder chownen Sie die Freigabe entsprechend." ], "squashOutro": "ProxMenux kann dies nicht beheben - es ist eine Serverrichtlinie." }, "related": { "heading": "Verwandte Themen", "items": [ { "href": "/docs/storage-share/lxc-mount-points", "label": "LXC-Einhängepunkte (Host ↔ Container)", "tail": "— die Alternative für unprivilegierte CTs: mount on host, bind in CT." }, { "href": "/docs/storage-share/lxc-samba-client", "label": "Samba-Client in LXC", "tail": " — verwandte Seite mit demselben Ablauf für SMB-/CIFS-Freigaben." }, { "href": "/docs/storage-share/lxc-nfs-server", "label": "NFS Server in LXC", "tailRich": " — die umgekehrte Richtung: Ordner aus einem CT über NFS freigeben." }, { "href": "/docs/storage-share/host-nfs", "label": "NFS-Freigabe als Proxmox-Speicher", "tail": " — die Freigabe direkt in Proxmox statt in einem einzelnen CT registrieren." } ] } }