docs: review storage sharing documentation in all seven translations

This commit is contained in:
Jonatan
2026-10-17 15:08:54 +02:00
parent ce1a3de719
commit 068485d339
89 changed files with 10012 additions and 156 deletions
@@ -0,0 +1,123 @@
{
"meta": {
"title": "Host: Hinzufügen von iSCSI-Ziel als Proxmox-Speicher | ProxMenux Dokumentation",
"description": "Registrieren Sie ein iSCSI-Ziel als Proxmox-Speicher mit ProxMenux. Das Werkzeug installiert open-iscsi, erkennt Ziele am Portal per sendtargets, lässt ein Ziel auswählen und führt pvesm add iscsi aus. Es stellt rohe Blockgeräte für VM-Festplattenabbilder bereit.",
"ogTitle": "Host: Hinzufügen von iSCSI-Ziel als Proxmox-Speicher | ProxMenux Dokumentation",
"ogDescription": "Registrieren Sie ein iSCSI-Ziel als Proxmox-Speicher mit geführter Entdeckung. Verwendet pvesm add iscsi und bietet rohe Blockgeräte für VM Festplatten."
},
"header": {
"title": "Host: Hinzufügen von iSCSI-Ziel als Proxmox-Speicher",
"description": "Registrieren Sie ein iSCSI-Ziel (von einem SAN, TrueNAS / FreeNAS, Synology, einem Windows Server-Ziel, einem Array, das iSCSI spricht) als Proxmox-Speicher. Die exportierten LUNs erscheinen als Blockgeräte und können VM-Disk-Images mit nahezu lokaler Leistung über das Netzwerk hosten.",
"section": "Speicher und Freigaben · Host"
},
"intro": {
"title": "Was das macht",
"body": "ProxMenux wickelt <code>pvesm add iscsi</code> mit einem geführten Fluss ab: Es installiert <code>open-iscsi</code> bei Bedarf, fragt nach dem iSCSI-Portal (IP:port), führt <code>iscsiadm --mode discovery --type sendtargets</code> dagegen aus, lässt Sie einen Ziel-IQN auswählen und registriert den iSCSI-Speicher in Proxmox. Der <code>iscsid</code>-Dienst hält dann die iSCSI-Sitzung über Neustarts hinweg am Leben."
},
"vocab": {
"heading": "iSCSI Vokabular (schnelle Referenz)",
"headerTerm": "Begriff",
"headerMeaning": "Bedeutung",
"rows": [
{
"term": "Portal",
"meaningRich": "Der iSCSI-Service-Endpunkt auf dem Zielserver – eine IP (oder ein Hostname) sowie ein TCP-Port. Standard-Port ist <code>3260</code>; ProxMenux nimmt es an, wenn Sie keinen angeben."
},
{
"term": "Ziel",
"meaningRich": "Ein einzelner exportierter \"Server\" innerhalb des Portals, der durch seine IQN identifiziert wird (<em>iSCSI Qualified Name</em>). Ein Portal kann viele Ziele hosten."
},
{
"term": "IQN",
"meaningRich": "Canonical Form ist <code>iqn.YYYY-MM.reverse.domain:identifier</code>, zum Beispiel <code>iqn.2024-08.com.truenas:proxmox-pool</code>. Sowohl das Ziel als auch der Initiator haben ihren eigenen IQN."
},
{
"term": "LUN",
"meaningRich": "Ein Blockgerät innerhalb eines Ziels (Logical Unit Number). Ein einzelnes Ziel kann mehrere LUNs freilegen; jede LUN erscheint als eigene Festplatte in Proxmox und kann eine VM-Festplatte werden."
},
{
"term": "Initiator",
"meaningRich": "Der Client, der sich mit einem Ziel verbindet - in diesem Fall Ihr Proxmox-Host. Der Initiator hat seine eigene IQN in <code>/etc/iscsi/initiatorname.iscsi</code> gespeichert. Ziele akzeptieren in der Regel nur Sitzungen von vorautorisierten Initiator-IQNs."
}
]
},
"opening": {
"heading": "Öffnen des Tools",
"body": "Öffnen Sie im Hauptmenü von ProxMenux <strong>Storage &amp; Share Manager → iSCSI Target als Proxmox Storage</strong> hinzufügen. Sie sehen dieses sub-Menü mit vier Optionen:",
"imageAlt": "iSCSI Host Manager-Menü – Konnektivität hinzufügen / anzeigen / entfernen / testen"
},
"howRuns": {
"heading": "Wie das Skript läuft (Flow hinzufügen)",
"body": "Der Fluss hat zwei Phasen mit klarer Trennung zwischen \"Einrichten des Initiators, Auffinden von Zielen\" und \"tatsächliche Registrierung von Speicher in Proxmox\". Im Gegensatz zu NFS / Samba gibt es keine automatische Entdeckung im Subnetz - Sie müssen die Portaladresse kennen (iSCSI ist nicht sendefreundlich)."
},
"add": {
"heading": "Hinzufügen von iSCSI-Ziel als Proxmox-Speicher",
"items": [
"<strong>Portal eingeben</strong> — geben Sie die IP-Adresse oder den Hostnamen des iSCSI-Zielservers ein. Port <code>3260</code> wird angenommen, es sei denn, Sie geben <code>host:port</code> ein.",
"<strong>Zielerkennung</strong> — ProxMenux ruft <code>iscsiadm --mode discovery --type sendtargets --portal &lt;ip:port&gt;</code> auf. Der Server antwortet mit jedem IQN, den dieser Initiator sehen kann. Wenn die Entdeckung fehlschlägt, zeigt das Skript den genauen Fehler aus <code>iscsiadm</code> und listet die häufigsten Ursachen auf (falsche IP, Firewall, Initiator IQN nicht autorisiert).",
"<strong>Zielauswahl</strong> — einzelnes Ziel wird automatisch ausgewählt; mehrere Ziele zeigen ein Menü an.",
"<strong>Storage ID</strong> — Standard ist <code>iscsi-&lt;last IQN segment, 20 chars max&gt;</code>. Nur Buchstaben, Ziffern, <code>-</code> und <code>_</code>.",
"<strong>Inhaltstyp</strong> — im Gegensatz zu NFS/Samba ist der iSCSI-Inhalt <strong>fest auf <code>images</code></strong> eingestellt. iSCSI stellt rohe Blockgeräte bereit, kein Dateisystem; deshalb sind dort nur VM-Festplatten möglich."
],
"authTitle": "Autorisieren Sie den Proxmox-Initiator auf dem Target",
"authBody1": "Bevor der Add-Flow Ende-zu-Ende funktioniert, muss das iSCSI-Ziel Ihren Proxmox-Host kennen. Holen Sie sich Ihren Initiator IQN:",
"authBody2": "Fügen Sie dieses IQN zur Zugriffsliste des Ziels hinzu (TrueNAS: <em>Sharing → Block → Initiators Groups</em>; Synology: <em>SAN Manager → iSCSI → Target → Edit → Initiators</em>; usw.). Ist der Initiator nicht autorisiert, liefert die Erkennung mit <code>iscsiadm</code> eine leere Liste oder einen Authentifizierungsfehler."
},
"manual": {
"heading": "Manuelles Äquivalent",
"body": "Der gesamte Flow bildet diese Befehle ab:"
},
"view": {
"heading": "Ansicht konfigurierter iSCSI-Speicher",
"body": "Listet jeden iSCSI-Eintrag in Proxmox (<code>pvesm status | awk ''$2 == \"iscsi\"''</code>) mit Portal, Ziel-IQN, Inhaltstyp und Live-Status auf."
},
"remove": {
"heading": "iSCSI-Speicher entfernen",
"body": "Führt <code>pvesm remove &lt;storage-id&gt;</code> nach Bestätigung von Portal, Ziel und Inhalt aus. Nur die Proxmox-Registrierung wird entfernt - <strong>das iSCSI-Ziel selbst wird nicht berührt</strong> und bestehende Sitzungen auf der Kernelseite können bis zum nächsten Neustart verweilen.",
"warnTitle": "Zuerst vorhandene VM-Festplatten auf diesem iSCSI prüfen",
"warnBody": "Das Entfernen eines iSCSI-Speichers, während VMs noch Festplatten haben, lässt diese VMs auf einen verschwundenen Speicher zeigen. Proxmox markiert den Fehler, aber die LUN-Daten sind auf dem Ziel unberührt - Sie können den Speicher später erneut registrieren, um die Festplatten zurückzubekommen. Bewegen oder sichern Sie die VMs zuerst, um sicher zu sein."
},
"test": {
"heading": "iSCSI-Konnektivität testen",
"body": "Führt einen Diagnosedurchlauf aus: Prüft, ob <code>iscsiadm</code> installiert ist, druckt Ihren Initiator IQN aus, bestätigt, dass <code>iscsid</code> ausgeführt wird, pingt jedes registrierte Portal, prüft seinen Port und meldet <code>pvesm status</code> sowie, ob eine iSCSI-Sitzung derzeit aktiv ist (<code>iscsiadm --mode session</code>). Aktive Sitzung plus erreichbares Portal, aber \"inaktiv\" in Proxmox bedeutet normalerweise einen abgestandenen Zustand - versuchen Sie <code>pvesm set &lt;id&gt; --disable 0</code>."
},
"troubleshoot": {
"heading": "Fehlerbehebung",
"portalTitle": "\"Kann das Portal nicht erreichen\", aber die Server-IP antwortet an anderer Stelle",
"portalBody": "Ping scheiterte an der Portaladresse. Überprüfen Sie, ob Sie die <em>storage-Netzwerk</em>-Schnittstelle erreichen (iSCSI lebt oft in einem separaten VLAN / Subnetz aus dem Verwaltungsnetzwerk). Überprüfen Sie auch DNS, wenn Sie einen Hostnamen eingegeben haben.",
"discoverTitle": "\"iSCSI Discovery failed\" von iscsiadm",
"discoverIntro": "Das Skript zeigt den genauen Fehler. Die häufigsten Ursachen:",
"discoverItems": [
"Portal IP / Port falsch (Doppelprüfung, standardmäßig 3260).",
"iSCSI-Dienst läuft nicht auf dem Zielserver.",
"Firewall blockiert 3260 zwischen Proxmox und dem Ziel.",
"<strong>Die Initiator-IQN ist auf dem Ziel nicht autorisiert.</strong> Dies ist die häufigste Ursache bei Unternehmens-Arrays. Tragen Sie die Proxmox-IQN zuerst in die Initiator-ACL des Ziels ein."
],
"noTargetTitle": "Keine Ziele gefunden, aber Entdeckung erfolgreich",
"noTargetBody": "Der Server hat Ihren Initiator akzeptiert, setzt ihm aber kein Ziel aus. Überprüfen Sie die Authentifizierung / Zugriffskontrollen des Ziels - einige Arrays ermöglichen die Erkennung für alle IQNs, filtern jedoch, welche Ziele jedes IQN sehen kann.",
"noLunTitle": "LUNs erscheinen nicht in /dev/disk/by-path nach der Registrierung",
"noLunBody": "<code>pvesm add iscsi</code> war erfolgreich, aber der Kernel sieht keine Blockgeräte. Überprüfen Sie <code>iscsiadm --mode session</code> - wenn keine Sitzung aktiv ist, starten Sie eine manuell mit <code>iscsiadm --mode node --login</code>. Wenn eine Sitzung existiert, aber keine LUNs angezeigt werden, erzwingen Sie ein Rescannen: <code>iscsiadm --mode session --rescan</code>. Wenn immer noch nichts, hat das Ziel wahrscheinlich noch keine LUNs diesem IQN zugewiesen (Konfigurieren Sie die LUN-Zuordnung auf dem Ziel).",
"chapTitle": "CHAP-Authentifizierung",
"chapBody": "ProxMenux bietet im interaktiven Ablauf keine Felder für CHAP-Benutzername und -Passwort. Schlägt die Erkennung fehl, stoppt das Skript vor <code>pvesm add</code>; der Speicher wird nicht trotzdem registriert. Konfigurieren Sie die CHAP-Anforderungen des Ziels separat in <code>open-iscsi</code>, einschließlich der Erkennungsauthentifizierung, falls nötig, und versuchen Sie es erneut. Prüfen Sie die Konfiguration mit <code>iscsiadm</code> und aktive Sitzungen mit <code>iscsiadm --mode session</code>."
},
"related": {
"heading": "Verwandte Themen",
"items": [
{
"href": "/docs/storage-share/host-nfs",
"label": "NFS-Freigabe als Proxmox-Speicher",
"tail": "— Alternative auf Dateiebene. Einfacher einzurichten, flexibler (Backup / ISO / tmpl / Images), etwas langsamer für VM-Live-Disketten."
},
{
"href": "/docs/storage-share/host-samba",
"label": "Samba / CIFS als Proxmox-Speicher",
"tail": " — eine weitere Option auf Dateiebene; wegen der Sperrsemantik für Festplatten laufender VMs vermeiden."
},
{
"href": "/docs/storage-share/host-local-disk",
"label": "Lokale Festplatte als Proxmox-Speicher hinzufügen",
"tail": "- wenn die Festplatte lokal auf dem Proxmox-Host ist, nicht auf einer anderen Box über das Netzwerk."
}
]
}
}
@@ -0,0 +1,186 @@
{
"meta": {
"title": "Host: Lokale Festplatte als Proxmox-Speicher hinzufügen | ProxMenux Dokumentation",
"description": "Formatieren Sie einen lokalen SATA-, SAS- oder NVMe-Datenträger auf einem Proxmox-Host und registrieren Sie ihn als Verzeichnis- oder ZFS-Pool-Storage. Mit sicherer Datenträgerauswahl, Bestätigung vor destruktiven Schritten, UUID-basiertem fstab, ZFS-Pool-Erstellung und pvesm add dir / zfspool im Hintergrund.",
"ogTitle": "Host: Lokale Festplatte als Proxmox-Speicher hinzufügen | ProxMenux Dokumentation",
"ogDescription": "Formatieren Sie eine lokale Festplatte und registrieren Sie sie als Proxmox-Verzeichnis oder ZFS-Poolspeicher mit einem geführten, sicherheitsgefilterten Fluss."
},
"header": {
"title": "Host: Lokale Festplatte als Proxmox-Speicher hinzufügen",
"description": "Nehmen Sie eine physische Festplatte auf dem Proxmox-Host, formatieren Sie sie optional (ext4 / xfs / btrfs / zfs) und registrieren Sie sie als Proxmox-Speicher - entweder als Verzeichnis (pvesm add dir) oder als ZFS-Pool (pvesm add zfspool). ProxMenux filtert die Festplattenliste, so dass Sie die Systemfestplatte oder etwas in Gebrauch nicht auswählen können, und macht jeden destruktiven Schritt explizit, bevor Sie sie ausführen.",
"section": "Speicher und Freigaben · Host"
},
"intro": {
"title": "Was das macht",
"body": "Andere <em>Host</em>-Tools in diesem Abschnitt befassen sich mit <strong>Netzwerkspeicher</strong> (NFS / Samba / iSCSI). Dieser befasst sich mit <strong>lokalen</strong> Festplatten - Ersatzlaufwerke, die physisch an Ihren Proxmox-Host angeschlossen sind und die Sie für VM-Festplatten, Backups, ISOs oder Vorlagen verwenden möchten. ProxMenux bereitet die Festplatte (Partition + Format + Mount) vor und registriert sie in Proxmox, damit die Benutzeroberfläche Inhalte dort platzieren kann."
},
"destructive": {
"title": "Zerstörendes Werkzeug für den \"Format\"-Pfad",
"body": "Der Ablauf <em>Formatieren</em> <strong>zerstört die vorhandenen Partitionen und Daten auf dem ausgewählten Datenträger</strong>. ProxMenux zeigt eine Warnung, filtert verwendete Datenträger heraus und verlangt eine Bestätigung vor <code>wipefs</code> / <code>sgdisk</code> / <code>mkfs</code>. Dies ist kein sicheres Überschreiben jedes Bytes. Prüfen Sie den Gerätepfad vor der Bestätigung zweimal."
},
"compare": {
"heading": "Verzeichnis oder ZFS-Pool — was wählen?",
"headerDir": "Verzeichnis (ext4 / xfs / btrfs)",
"headerZfs": "ZFS-Pool",
"rows": [
{
"label": "Proxmox-Speichertyp",
"dirRich": "<code>dir</code>",
"zfsRich": "<code>zfspool</code>"
},
{
"label": "VM Plattenformat",
"dir": "qcow2-/raw-Datei in einem Dateisystem",
"zfs": "Nativer ZFS-Datensatz (zvol) pro Festplatte"
},
{
"label": "Momentaufnahmen",
"dir": "qcow2-Snapshots; btrfs-Snapshots bei fs=btrfs",
"zfs": "Native, Instant, Copy-on-Write"
},
{
"label": "Dynamische Speicherzuweisung",
"dir": "Ja (qcow2-Standard)",
"zfs": "Ja (ZFS Standard)"
},
{
"label": "RAM Bedürfnisse",
"dir": "niedrig",
"zfs": "Hoch — ZFS nutzt freien RAM als ARC-Cache"
},
{
"label": "Unterstützt Inhaltstypen",
"dir": "images, backup, iso, vztmpl, snippets, rootdir",
"zfs": "nur images und rootdir (Blockspeicher)"
},
{
"label": "Am besten für",
"dir": "Allzweck-Disk: Mix aus VM-Disks, Backups, ISOs",
"zfs": "Reine VM / LXC-Datenplatte mit Snapshot + Integritätsanforderungen"
}
]
},
"opening": {
"heading": "Öffnen des Tools",
"body": "Öffnen Sie im ProxMenux-Hauptmenü <strong>Storage &amp; Share Manager → Add Local Disk as Proxmox Storage</strong>. Das Untermenü enthält vier Optionen:",
"imageAlt": "Lokales Disk Manager-Menü – Hinzufügen / Anzeigen / Entfernen / Auflisten verfügbarer Festplatten"
},
"howRuns": {
"heading": "Wie das Skript läuft (Flow hinzufügen)",
"body": "Der Ablauf hat zwei Phasen mit einem Sicherheitsfilter mit drei Prüfungen. Phase 1 entdeckt sichere Festplatten, entscheidet, was mit der gewählten zu tun ist und sammelt Speicherparameter; Phase 2 erledigt die destruktive Arbeit. Bis zur endgültigen Bestätigung ist die Festplatte unberührt."
},
"format": {
"heading": "Leeren Datenträger formatieren",
"intro": "Der Pfad für eine neue Festplatte oder eine, deren Inhalt Ihnen egal ist.",
"items": [
"Wählen Sie die Festplatte (System / In-Use-Disks sind versteckt).",
"Wählen Sie \"Formatdiskette (ERASE alle Daten)\".",
"Wählen Sie das Dateisystem aus - siehe Tabelle oben für Kompromisse.",
"Storage ID (default <code>disk-&lt;device&gt;</code>), Mount-Pfad, Voreinstellung des Inhaltstyps.",
"Bestätigen Sie im <strong>FINAL CONFIRMATION — DATA WILL BE ERASED</strong> Dialog.",
"ProxMenux löscht die Partitionstabelle und erstellt eine Partition über den Datenträger. Es führt <code>mkfs.&lt;fs&gt;</code> oder <code>zpool create</code> aus und hängt das Ergebnis ein. Normale Dateisysteme erhalten einen UUID-Eintrag in <code>/etc/fstab</code> mit <code>defaults,nofail</code>; ZFS verwendet die Mount-Konfiguration des Pools. Die Registrierung erfolgt mit <code>pvesm add dir</code> oder <code>pvesm add zfspool</code>."
],
"tipTitle": "Warum UUID + nofail in /etc/fstab",
"tipBody": "Das Skript schreibt <code>UUID=… /mnt/&lt;id&gt; &lt;fs&gt; defaults,nofail 0 2</code>. UUID überlebt die Geräteumordnung über Neustarts hinweg (so dass <code>/dev/sdc</code>, das <code>/dev/sdd</code> wird, den Boot nicht unterbricht). <code>nofail</code> bedeutet, dass, wenn die Festplatte jemals verschwindet (Hardwarefehler, Unplugged), Proxmox immer noch bootet - der Speicher wird nur als inaktiv angezeigt, bis die Festplatte zurückkommt."
},
"reuse": {
"heading": "Wiederverwendung eines vorhandenen Dateisystems",
"intro": "Der Pfad für eine Festplatte, auf der Sie die Daten behalten möchten - vielleicht haben Sie sie von einem anderen Proxmox-Host verschoben, oder die Festplatte verfügt bereits über Backups / ISOs, die Sie zugänglich halten möchten.",
"items": [
"Wählen Sie den Datenträger.",
"Wählen Sie \"Vorhandenes Dateisystem verwenden\".",
"Speicher-ID, Mount-Pfad und Inhaltstyp-Voreinstellung.",
"ProxMenux berührt die Daten <strong>nicht</strong>: Es erstellt den Mount-Punkt, mountet die Festplatte, fügt einen UUID-Eintrag zu <code>/etc/fstab</code> hinzu und registriert ihn als Proxmox-<code>dir</code>-Speicher."
],
"warnTitle": "Wiederverwendungspfad behandelt keine ZFS-Pools",
"warnBody": "Wenn die Festplatte bereits einen ZFS-Pool enthält, versucht der <em>reuse</em>-Pfad hier nur, ihn als reguläres Dateisystem zu montieren - was fehlschlägt. Um einen vorhandenen ZFS-Pool zu importieren, verwenden Sie <code>zpool import &lt;name&gt;</code> auf der Kommandozeile und registrieren Sie ihn dann manuell bei <code>pvesm add zfspool</code>."
},
"presets": {
"heading": "Inhaltstyp-Presets",
"intro": "ProxMenux bietet drei Voreinstellungen und eine eigene Eingabe. Die gewählte Inhaltsliste wird an <code>pvesm add … --content &lt;csv&gt;</code> übergeben:",
"headerPreset": "Voreinstellung",
"headerContent": "Inhaltsliste",
"headerUse": "Anwendungsfall",
"rows": [
{
"preset": "VM Speicherplatz",
"content": "images,backup",
"use": "Ein dedizierter VM-Festplattenspeicher, der auch Backups dieser VMs in der Nähe hält."
},
{
"preset": "Standard-NAS",
"content": "backup,iso,vztmpl",
"use": "Ein Archiv / Media Disk - Backups, ISOs und LXC Vorlagen. Keine live VM Festplatten hier."
},
{
"preset": "Alle Typen",
"content": "images,backup,iso,vztmpl,snippets",
"use": "Diese breite Voreinstellung aktiviert Images, Sicherungen, ISOs, LXC-Vorlagen und Snippets. Fügen Sie weitere unterstützte Typen wie rootdir bei Bedarf über Benutzerdefiniert hinzu."
},
{
"preset": "Benutzerdefiniert",
"content": "(freier Input)",
"useRich": "Geben Sie den genauen CSV selbst ein, z.B. <code>images</code> allein oder <code>rootdir,images</code>."
}
],
"zfsTitle": "ZFS Pool-Inhalte sind schmaler",
"zfsBody": "Bei <strong>zfs</strong> unterstützt ein <code>zfspool</code> nur <code>images</code> und <code>rootdir</code>, keine ISO- oder Sicherungsdateien. Geben Sie unter Benutzerdefiniert eine unterstützte Liste ein. Das Skript reicht sie unverändert weiter; unzulässige Typen können die Registrierung scheitern lassen. Prüfen Sie danach <code>pvesm status</code>."
},
"manual": {
"heading": "Manuelles Äquivalent",
"extIntro": "Format + Registrierung einer Festplatte als ext4-Verzeichnisspeicher:",
"zfsIntro": "Oder als ZFS Pool:"
},
"view": {
"heading": "Datenträgerspeicher anzeigen",
"body": "Listet alle plattengestützten Proxmox-Speicher auf (sowohl <code>dir</code> als auch <code>zfspool</code>, die vom Benutzer erstellt wurden – Systempools wie <code>rpool</code> sind ausgeblendet). Zeigt den Mount-Pfad / Pool-Namen, Inhaltstypen und Live-Status an."
},
"remove": {
"heading": "Disk Storage entfernen",
"body": "Hebt die Registrierung des Speichers bei Proxmox auf (<code>pvesm remove</code>) und bietet an, den passenden Eintrag in <code>/etc/fstab</code> zu bereinigen. Für ZFS pools zerstört das Skript <strong>nicht</strong> automatisch das pool – das ist ein separater <code>zpool destroy &lt;name&gt;</code>-Schritt, den Sie manuell ausführen, wenn Sie sicher sind.",
"warnTitle": "Daten und bestehende VM Abhängigkeiten",
"warnBody": "Das Entfernen des Speichers berührt nicht das Dateisystem oder den Pool - die Daten bleiben auf der Festplatte. Aber VMs / CTs, die diesen Speicher nach ID referenzieren, können nach dem Entfernen nicht starten. Verschieben Sie diese VM-Festplatten in einen anderen Speicher (oder nehmen Sie ein Backup), bevor Sie sie entfernen."
},
"list": {
"heading": "Liste der verfügbaren Datenträger",
"body": "Eine schreibgeschützte Diagnoseansicht: Druckt die Ausgabe von <code>lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,MODEL</code>, gefolgt von den <code>dir</code>/<code>zfspool</code>-Speichern, die Proxmox bereits kennt. Guter erster Stopp, wenn Sie das Tool öffnen und sehen möchten \"Was ist auf diesem Host?\", Bevor Sie etwas hinzufügen."
},
"troubleshoot": {
"heading": "Fehlerbehebung",
"noDisksTitle": "\"Keine verfügbaren Festplatten gefunden\"",
"noDisksIntro": "Der Sicherheitsfilter hat alle Datenträger ausgeblendet. Häufige Gründe:",
"noDisksItems": [
"Nur die Root Disc ist vorhanden.",
"Jede andere Festplatte ist Teil eines aktiven ZFS / LVM / RAID-Arrays.",
"Jede andere Festplatte wird durch eine VM- oder LXC-Konfiguration (Durchgang) referenziert.",
"Die Festplatte befindet sich im schreibgeschützten Modus (ausfallende Hardware oder Schreibblocker)."
],
"noDisksOutro": "Verwenden Sie <em>List Available Disks</em> aus dem Menü, um die <code>lsblk</code>-Rohausgabe zu sehen und zu verstehen, was passiert.",
"mountedTitle": "Format fehlschlägt mit \"Device is mount\"",
"mountedBody": "Etwas hat die Festplatte automatisch gemountet (udisksd, ein Desktop-Manager, eine anhaltende systemd-Einheit). Unmount: <code>umount /dev/sdX?*</code> oder <code>systemctl stop &lt;whatever-mounts-it&gt;</code>, dann wiederholen. Der Sicherheitsfilter des Skripts sollte versteckte montierte Festplatten haben, so dass, wenn Sie diesen Fehler erreicht haben, die Mount zwischen dem angezeigten Menü und der Bestätigung stattgefunden hat.",
"zpoolTitle": "zpool create schlägt mit „invalid vdev specification“ fehl",
"zpoolBody": "Normalerweise bedeutet dies, dass die Festplatte immer noch veraltete GPT / LVM / ZFS-Signaturen aufweist, die <code>zpool</code> nicht ohne Erzwingen überschreiben möchte. Das Skript führt <code>wipefs</code> und <code>sgdisk --zap-all</code> vor dem Formatieren aus, aber eine sehr hartnäckige Festplatte kann immer noch ein veraltetes Label haben. Erzwingen Sie manuell eine Bereinigung: <code>zpool labelclear -f /dev/sdX</code> oder <code>dd if=/dev/zero of=/dev/sdX bs=1M count=10</code> und wiederholen Sie es.",
"inactiveTitle": "Storage wird nach dem Neustart als inaktiv angezeigt",
"inactiveBody": "Überprüfen Sie <code>findmnt &lt;mount-path&gt;</code> - wenn die Mount fehlt, ist etwas in <code>/etc/fstab</code> fehlgeschlagen. <code>dmesg | tail</code> zeigt normalerweise auf den Grund (UUID-Mismatch, Dateisystemkorruption, <code>nofail</code> ließ die Wiederholung fallen). Ein <code>mount -a</code> reaktiviert normalerweise den Speicher, sobald die Ursache behoben ist."
},
"related": {
"heading": "Verwandte Themen",
"items": [
{
"href": "/docs/disk-manager/format-disk",
"label": "Datenträgerverwaltung: Physischen Datenträger formatieren / löschen",
"tail": "Low-Level-Alternative, wenn Sie nur eine Festplatte vorbereiten möchten, ohne sie als Proxmox-Speicher zu registrieren."
},
{
"href": "/docs/storage-share/host-iscsi",
"label": "Hinzufügen von iSCSI-Ziel als Proxmox-Speicher",
"tail": " — Entsprechende Netzwerklösung, wenn sich das Blockgerät auf einem anderen Rechner befindet."
},
{
"href": "/docs/storage-share/host-local-shared",
"label": "Shared Directory auf Host hinzufügen",
"tail": "Bereiten Sie ein Verzeichnis für LXC-Bind-Mounts auf dem Host vor (registriert keinen Proxmox-Speicher)."
}
]
}
}
@@ -0,0 +1,103 @@
{
"meta": {
"title": "Host: Freigegebenes Verzeichnis auf dem Host hinzufügen | ProxMenux-Dokumentation",
"description": "Erstellen Sie ein Hostverzeichnis, das für LXC-Bind-Mounts bereit ist, mit Berechtigungen, die für privilegierte und unprivilegierte Container gleichzeitig funktionieren. Sticky Bit + World-Rwx + ACLs für die Standardvererbung.",
"ogTitle": "Host: Freigegebenes Verzeichnis auf dem Host hinzufügen | ProxMenux-Dokumentation",
"ogDescription": "Bereiten Sie ein Hostverzeichnis für LXC-Bind-Mounts vor, dessen Berechtigungen mit privilegierten und unprivilegierten CTs kompatibel sind."
},
"header": {
"title": "Host: Freigegebenes Verzeichnis hinzufügen",
"description": "Erstellen Sie ein Host-Verzeichnis, das so konzipiert ist, dass es in einen oder mehrere LXC-Container eingebunden wird. ProxMenux wendet eine Reihe von Berechtigungen an, die sowohl für privilegierte als auch für unprivilegierte CTs gleichzeitig funktionieren - keine verschobenen UID-Kopfschmerzen, keine pro-Container-Chowns - und registriert das Verzeichnis, damit der LXC Mount Manager es später abholen kann.",
"section": "Speicher und Freigaben · Host"
},
"intro": {
"title": "Was das ist (und nicht ist)",
"body": "Dieses Tool registriert <strong>nicht</strong> irgendetwas in Proxmox (kein <code>pvesm add</code> hier). Es bereitet lediglich ein Verzeichnis auf dem Host vor – standardmäßig <code>/mnt/shared</code> – mit Berechtigungen, die jeder LXC-Container lesen und schreiben kann, unabhängig davon, ob der CT privilegiert oder nicht privilegiert ist. Der übliche nächste Schritt besteht darin, es mit dem <mountLink>LXC-Mount-Manager</mountLink> in jedes CT einzubinden."
},
"why": {
"heading": "Warum ein dediziertes Tool dafür",
"intro": "Wenn Sie ein Hostverzeichnis in einen LXC-Container binden, hängen die Berechtigungen ab von:",
"items": [
"Ob der CT <strong>privilegiert</strong> ist (UID 0 im CT = UID 0 auf dem Host) oder <strong>unprivilegiert</strong> (UID 0 im CT = UID 100000 auf dem Host — alle UIDs sind um +100000 verschoben).",
"Der Besitz des Hostverzeichnisses (eine Datei im Besitz von UID 1000 auf dem Host erscheint als \"andere\" aus der Perspektive eines unprivilegierten CT, da kein CT-Benutzer UID 1000 zuordnet).",
"Ob mehrere CTs das gleiche Verzeichnis teilen (unterschiedliche CTs können unterschiedliche UID-Bereiche haben)."
],
"outro": "ProxMenux verwendet hier einen pragmatischen Ansatz: <strong>allen Zugriff gewähren</strong>, und zwar auf Dateisystemebene. Dazu kommen rwx-Rechte für alle, das Sticky-Bit und ACLs zur Vererbung der Rechte an neue Dateien. Jede zugeordnete UID kann lesen und schreiben; ein Abgleich von UIDs/GIDs ist nicht nötig."
},
"howRuns": {
"heading": "Wie das Skript läuft",
"body": "Das Skript hat kein Hauptmenü – es führt eine einzelne Aktion aus, <strong>Freigegebenes Verzeichnis erstellen</strong>. Phase 1 sammelt den Zielpfad; Phase 2 erstellt das Verzeichnis und wendet Berechtigungen an."
},
"bits": {
"heading": "Was jedes Berechtigungsbit tut",
"intro": "Die Nummer <strong>1777</strong> ist nicht willkürlich - es ist der gleiche Modus, den Linux für <code>/tmp</code> verwendet. Drei Eigenschaften kombiniert:",
"headerBit": "Bit",
"headerEffect": "Wirkung",
"headerWhy": "Warum es hier wichtig ist",
"rows": [
{
"bit": "1 (sticky bit)",
"effect": "Löschen und Umbenennen sind auf den Datei- oder Verzeichniseigentümer und ausreichend privilegierte Prozesse beschränkt.",
"why": "Hilft Benutzern mit unterschiedlichen zugeordneten UIDs, fremde Dateien vor Löschung zu schützen. CTs mit derselben zugeordneten UID oder privilegiertem Root-Zugriff sind dadurch nicht voneinander isoliert."
},
{
"bit": "777 (rwx-rwx-rwx)",
"effect": "Jeder kann lesen, schreiben und das Verzeichnis betreten.",
"why": "Unprivilegierte CT UIDs (100000+) erscheinen als \"andere\" vom Host, so dass world-rwx ihnen Zugriff gibt."
},
{
"bit": "ACLs (Standard)",
"effect": "Vererbt auf jeder neu erstellten Datei / Subdir.",
"why": "Neue Inhalte erben die Standard-ACLs, ohne das Skript erneut auszuführen. Anwendungen können weiterhin restriktive Modi anfordern oder Rechte später ändern."
}
],
"privTitle": "Privilegierte CTs sehen dasselbe, nur ohne die Verschiebung",
"privBody": "Für einen privilegierten CT ist UID 0 im CT UID 0 auf dem Host, so dass <code>root</code> im CT das Hostverzeichnis direkt lesen / schreiben kann. <code>1777</code> ist immer noch in Ordnung - es bedeutet nur, dass Nicht-Root-Benutzer im CT auch das Verzeichnis verwenden können. Die gleichen Berechtigungen decken beide Fälle ab."
},
"where": {
"heading": "Wo das freigegebene Verzeichnis liegen soll",
"intro": "Der Location Picker bietet vier Optionen:",
"opt1Title": "1. Erstellen Sie einen neuen Ordner in /mnt",
"opt1Body": "Die übliche Wahl. ProxMenux schlägt automatisch den ersten freien Namen vor (<code>shared</code>, <code>shared2</code>, <code>shared3</code>, ...). Sie bestätigen oder geben nur einen anderen Namen ein.",
"opt2Title": "2. Benutzerdefinierter Pfad",
"opt2Body": "Für Verzeichnisse außerhalb von <code>/mnt</code>. Jeder absolute Pfad funktioniert (z.B. <code>/srv/media</code>, <code>/data/family</code>). Das Skript verwendet die gleichen Berechtigungen.",
"opt3Title": "3. Bestehende Ordner in /mnt anzeigen",
"opt3Body": "Read-only Diagnose: listet jedes Verzeichnis unter <code>/mnt</code> mit seinen Berechtigungen, Eigentümer und verfügbaren Speicherplatz auf. Nützlich, bevor Sie eine neue erstellen, um Namenskollisionen zu vermeiden.",
"opt4Title": "4. Abbrechen",
"opt4Body": "Beendet den Vorgang, ohne etwas zu erstellen. Entspricht <kbd>Esc</kbd>.",
"tipTitle": "Wo lebt /mnt?",
"tipBody": "Standardmäßig befindet sich <code>/mnt</code> auf dem Proxmox-Root-Dateisystem. Wenn Sie das freigegebene Verzeichnis auf einer anderen Festplatte (einer Datenplatte, einem ZFS-Pool) haben möchten, mounten Sie diese Festplatte zuerst unter <code>/mnt/&lt;name&gt;</code> (Disk Manager oder <diskLink>Lokale Festplatte als Proxmox-Speicher hinzufügen</diskLink>) und erstellen Sie dann das freigegebene Verzeichnis als Unterordner darin - oder wählen Sie \"Benutzerdefinierten Pfad eingeben\" hier und zeigen Sie auf die eingehängte Festplatte."
},
"manual": {
"heading": "Manuelles Äquivalent",
"body": "Der gesamte Flow kann von Hand wiedergegeben werden:"
},
"next": {
"heading": "Nächster Schritt: Bind-Mount in Container",
"body": "Durch das Erstellen des Verzeichnisses wird es nur vorbereitet – noch wird es von keinem Container gesehen. Um es in einem oder mehreren LXCs sichtbar zu machen, verwenden Sie den Mount-Manager <mountLink>LXC</mountLink>, um <code>/mnt/&lt;name&gt;</code> in die CTs einzubinden. Da die Berechtigungen bereits geöffnet sind, bietet der Mount-Manager <strong>nicht</strong> an, sie zu ändern – das Verzeichnis kann unverändert verwendet werden."
},
"troubleshoot": {
"heading": "Fehlerbehebung",
"mkdirTitle": "\"Failed to create directory\"",
"mkdirBody": "Normalerweise ein Dateisystemproblem: <code>/mnt</code> befindet sich in einem schreibgeschützten Dateisystem, der Pfad enthält eine Komponente, die kein Verzeichnis ist (z. B. Sie haben <code>/etc/passwd/sub</code> eingegeben), oder die Festplatte ist voll. Überprüfen Sie mit <code>df -h /mnt</code> und <code>mount | grep /mnt</code>.",
"writeTitle": "Container kann trotz offener Berechtigungen nicht schreiben",
"writeBody": "Überprüfen Sie, ob der CT tatsächlich den Bind-Mount (<code>pct config &lt;ctid&gt; | grep ^mp</code>) verwendet. Führen Sie im CT <code>touch /mnt/data/test-$(date +%s)</code> aus – wenn dies mit verweigerter Berechtigung fehlschlägt, befindet sich das Mount möglicherweise auf einem Host-Dateisystem, das ACLs nicht berücksichtigt (einige ältere <code>ext3</code>- oder <code>vfat</code>-Mounts). Verschieben Sie das freigegebene Verzeichnis in ein ext4 / xfs / btrfs / zfs Backing.",
"aclTitle": "ACL Befehle leise nicht verfügbar",
"aclBody": "Bei einer minimalen Proxmox-Installation sind <code>setfacl</code> / <code>getfacl</code> möglicherweise nicht installiert. Das Skript fällt anmutig zurück (<code>command -v setfacl</code>-Check) und wendet nur POSIX-Berechtigungen an - was oft genug ist, aber neue Dateien werden das permissive Profil nicht automatisch erben. Installieren Sie <code>acl</code> mit <code>apt-get install -y acl</code> und führen Sie das Skript im Verzeichnis erneut aus."
},
"related": {
"heading": "Verwandte Themen",
"items": [
{
"href": "/docs/storage-share/lxc-mount-points",
"label": "LXC-Mount-Verwaltung",
"tail": "— der natürliche nächste Schritt: bind-mount dieses Verzeichnis in einen oder mehrere Container."
},
{
"href": "/docs/storage-share/host-local-disk",
"label": "Lokale Festplatte als Proxmox-Speicher hinzufügen",
"tailRich": "Wenn Sie das freigegebene Verzeichnis auf einer dedizierten Festplatte haben möchten, bereiten Sie die Festplatte zuerst vor, mounten Sie sie unter <code>/mnt</code> und erstellen Sie dann den freigegebenen Unterordner hier."
}
]
}
}
@@ -0,0 +1,174 @@
{
"meta": {
"title": "Host: NFS-Freigabe einhängen | ProxMenux-Dokumentation",
"description": "Montieren Sie einen externen NFS-Export auf dem Proxmox-Host - entweder als Proxmox-Speicher (pvesm add nfs), als einfacher fstab-Mount auf dem Host (NICHT sichtbar in Datacenter > Storage) oder beides. Die fstab-Methode ist ideal, um die Freigabe in LXC-Container zu binden, ohne sie als Proxmox-Speicher freizulegen.",
"ogTitle": "Host: NFS-Freigabe einhängen | ProxMenux-Dokumentation",
"ogDescription": "Montieren Sie einen externen NFS-Export auf dem Proxmox-Host über pvesm, fstab oder beides. fstab-Pfad ist ideal für LXC-Bind-Mounts."
},
"header": {
"title": "Host: NFS-Freigabe auf dem Host einhängen",
"description": "Montieren Sie einen externen NFS-Export (von einem NAS, einem anderen Server, einer Homelab-Freigabe ...) auf dem Proxmox-Host. Wählen Sie eine oder beide Methoden aus: Registrieren Sie sie als Proxmox-Speicher (sichtbar in Datacenter > Storage) und/oder fügen Sie einen einfachen Mount über /etc/fstab an einem von Ihnen gewählten Pfad hinzu (nützlich für das Binden der Freigabe in LXC-Container, ohne sie als Proxmox-Speicher freizulegen).",
"section": "Speicher und Freigaben · Host"
},
"intro": {
"title": "Was das macht",
"body": "ProxMenux bietet zwei Mount-Methoden für jeden NFS-Export an: <strong>(1) Proxmox-Speicher</strong> über <code>pvesm add nfs</code> - die Freigabe wird in Datacenter > Storage angezeigt und Proxmox verwaltet das Mount bei <code>/mnt/pve/&lt;id&gt;</code>; <strong>(2) Host-Fstab-Mount</strong> auf einem Weg, den Sie auswählen - persistent über <code>/etc/fstab</code>, NICHT sichtbar als Proxmox-Speicher, ideal für Bindemontage an LXC-Container (Proxmox UI bleibt sauber). Sie können eine Methode, die andere oder beides ausführen."
},
"opening": {
"heading": "Öffnen des Tools",
"body": "Öffnen Sie im Hauptmenü von ProxMenux <strong>Speicher &amp; Freigabe-Manager → NFS Freigabe auf Host bereitstellen</strong>. Sie sehen dieses sub-Menü mit vier Optionen:",
"imageAlt": "NFS-Host-Menü — Einhängen / Anzeigen / Entfernen / Verbindung testen"
},
"howRuns": {
"heading": "Wie das Skript läuft",
"body": "Der Ablauf hat zwei Phasen mit klarer Trennung zwischen \"Entdecken, Validieren und Auswählen\" und \"tatsächlich einhängen und Konfiguration schreiben\". Nachdem Sie einen Export ausgewählt haben, wählen Sie die Mount-Methode(n) über eine Checkliste aus; der Rest der Dialoge fragt nur nach Parametern für die von Ihnen ausgewählten Methoden. Bis zur endgültigen Bestätigung werden weder <code>/etc/pve/storage.cfg</code> noch <code>/etc/fstab</code> berührt."
},
"modes": {
"heading": "Mount-Methode wählen (eine oder beide Optionen)",
"intro": "Nach Auswahl und Validierung des Exports zeigt ProxMenux eine Checkliste mit den beiden Mount-Methoden an. Sie können entweder oder beide markieren. Wenn Sie auf OK drücken, ohne etwas zu markieren, erscheint der Dialog erneut, bis Sie mindestens eine Option auswählen oder auf Abbrechen drücken, um den Fluss zu verlassen.",
"imageAlt": "Mount Method Checkliste mit pvesm und fstab Optionen",
"headerMethod": "Methode",
"headerMount": "Mount-Pfad",
"headerUi": "Sichtbar in Datacenter > Storage",
"headerUseCase": "Typischer Anwendungsfall",
"rows": [
{
"method": "<strong>Als Proxmox-Speicher (pvesm)</strong>",
"mountRich": "<code>/mnt/pve/&lt;storage-id&gt;</code> (verwaltet von Proxmox)",
"ui": "Ja",
"useCase": "VM Disk-Images, Backups, ISOs, LXC-Vorlagen - alles, was in der Proxmox-Benutzeroberfläche angezeigt werden muss."
},
{
"method": "<strong>Nur Host-fstab</strong>",
"mountRich": "<code>/mnt/&lt;path&gt;</code> (Sie wählen den Weg)",
"ui": "Nein",
"useCaseRich": "Die Freigabe per Bind-Mount in einen oder mehrere LXCs einbinden, <em>ohne</em> sie als Proxmox-Speicher anzuzeigen. Hält die Datacenter-Oberfläche übersichtlich."
},
{
"method": "<strong>Beide</strong>",
"mount": "Beide Pfade oben (zwei Mount-Punkte desselben NFS-Exports)",
"ui": "Ja",
"useCase": "Oberflächenintegration und ein separater stabiler Host-Pfad mit offenen Berechtigungen für LXC-Bind-Mounts."
}
],
"bothTitle": "„Beide“ erstellt zwei unabhängige NFS-Mounts",
"bothBody": "Beide Methoden laufen getrennt: pvesm hängt unter <code>/mnt/pve/&lt;id&gt;</code> ein, fstab unter <code>/mnt/&lt;path&gt;</code>. So erhalten Sie einen Proxmox-Mount mit Standardoptionen und einen separaten Host-Mount für LXC-Bind-Mounts. Zwei Mount-Punkte garantieren keine zwei TCP-Verbindungen; der NFS-Client kann Transporte wiederverwenden."
},
"pvesmBranch": {
"heading": "Methode A — als Proxmox-Speicherung (pvesm)",
"intro": "Wenn <em>Als Proxmox-Speicher</em> markiert ist, führt ProxMenux den ursprünglichen pvesm-Flow aus:",
"items": [
"<strong>Storage ID</strong> – was Proxmox diesen Speicher nennen wird. Standardmäßig ist <code>nfs-&lt;server-ip-with-dashes&gt;</code>. Es werden nur Buchstaben, Ziffern, <code>-</code> und <code>_</code> akzeptiert.",
"<strong>Inhaltstypen</strong> — Proxmox verknüpft Inhaltskategorien mit Speichervolumen; wählen Sie aus, was dieser NFS enthalten darf:"
],
"headerType": "Inhaltsart",
"headerAllows": "Was es erlaubt",
"rows": [
{
"type": "import",
"allowsRich": "Datenträgerbildimporte (standardmäßig ausgewählt). Benötigt für <em>Import Disk Image zu VM</em>."
},
{
"type": "backup",
"allowsRich": "VM und CT Backup-Dateien (<code>vzdump</code>)."
},
{
"type": "iso",
"allows": "ISO-Abbildungen für die Installation."
},
{
"type": "vztmpl",
"allows": "LXC-Vorlagen."
},
{
"type": "images",
"allows": "VM-Disk-Images (dadurch wird der NFS in einen VM-Disk-Store verwandelt)."
},
{
"type": "rootdir",
"allows": "LXC Root-Dateisysteme (selten für NFS – lesen Sie den unten stehenden Hinweis)."
},
{
"type": "snippets",
"allows": "Hook-Scripts und Cloud-Init-Snippets."
}
],
"warnTitle": "images und rootdir auf NFS",
"warnBody": "Mit <code>images</code> kann Proxmox VM-Festplatten auf NFS speichern. Die Leistung hängt von Netzwerk, Server und Last ab; ein Ausfall kann davon abhängige E/A blockieren. Mit <code>rootdir</code> liegen LXC-Root-Dateisysteme auf NFS. Unprivilegierte Container können dort Einschränkungen bei UID-Zuordnung, Overlay und Eigentümern haben. Prüfen Sie dies vor der Ablage von <code>images</code> / <code>rootdir</code>; NFS eignet sich auch für <code>backup</code> / <code>iso</code> / <code>vztmpl</code>.",
"result": "Das Ergebnis ist <code>pvesm add nfs &lt;id&gt; --server &lt;srv&gt; --export &lt;path&gt; --content &lt;csv&gt;</code> und Proxmox Auto-Mounts bei <code>/mnt/pve/&lt;id&gt;</code>."
},
"fstabBranch": {
"heading": "Methode B — nur ein fstab-Mount auf dem Host",
"intro": "Wenn <em>Nur fstab-Mount auf dem Host</em> markiert ist, fragt ProxMenux nach einem host mount path und persistenten Optionen, dann mountet und schreibt den Eintrag in <code>/etc/fstab</code>:",
"items": [
"<strong>Mount-Pfad auf dem Host</strong> — standardmäßig <code>/mnt/&lt;export-basename&gt;</code>. Es muss ein absoluter Weg sein. Wenn dort bereits etwas montiert ist oder ein Fstab-Eintrag für den gleichen Pfad existiert, warnt Sie ProxMenux und bietet an, ihn zu ersetzen.",
"<strong>Mount-Optionen</strong> — <em>Lesen/Schreiben</em> (Standard: <code>rw,hard,nofail,_netdev,rsize=131072,wsize=131072,timeo=600,retrans=2</code>), <em>Nur Lesen</em>, <em>Benutzerdefiniert</em> (eigene Optionen eingeben)."
],
"appliesIntro": "Sobald Sie bestätigen, das Skript:",
"applies": [
"<code>mkdir -p</code> der Mount Path.",
"<code>mount -t nfs -o &lt;opts&gt; &lt;srv&gt;:&lt;export&gt; &lt;path&gt;</code>.",
"Schreibt einen einzeiligen Eintrag in <code>/etc/fstab</code>: <code>&lt;srv&gt;:&lt;export&gt; &lt;path&gt; nfs &lt;opts&gt; 0 0</code>.",
"Führt <code>systemctl daemon-reload</code> aus, so dass systemd den neuen Fstab-Eintrag abholt.",
"Versucht <code>chmod 1777</code> und <code>setfacl o::rwx</code> auf dem Mount-Punkt. Fehler werden still ignoriert; es gelingt nur, wenn der NFS-Server es erlaubt. Viele NAS-Exporte sind bereits für alle Benutzer beschreibbar."
],
"lxcTitle": "Den fstab-Mount aus einem LXC verwenden",
"lxcBody": "Das Skript zeigt einen <code>pct set</code>-Befehl für einen Bind-Mount, etwa <code>pct set &lt;ctid&gt; -mp0 /mnt/&lt;path&gt;,mp=/mnt/&lt;ct-path&gt;,shared=1,backup=0</code>. Alternativ erkennt der <mountLink>LXC Mount Manager</mountLink> fstab-Mounts. <strong>Im Container wird nichts geändert</strong>. Der Zugriff unprivilegierter CTs hängt von Serverrechten für ihre zugeordneten UIDs/GIDs ab. Das Skript versucht nur Berechtigungsänderungen vom Host aus; beschreibbare Exporte oder Herstellerstandards sind nicht garantiert. Bei Fehlern siehe Fehlerbehebung.",
"noUiTitle": "Der fstab-Mount ist KEIN Proxmox-Speicher",
"noUiBody": "Der fstab-Mount auf dem Host erscheint bewusst nicht in der Proxmox-Weboberfläche. Er fehlt unter <em>Datacenter > Storage</em>, lässt sich beim Erstellen einer VM oder eines CT nicht auswählen und kann nicht als Ziel eines Proxmox-Sicherungsauftrags dienen. Er ist lediglich ein Pfad im Dateisystem des Hosts. Wünschen Sie zusätzlich die Integration in die Oberfläche, wählen Sie <em>beide</em> Methoden aus."
},
"manual": {
"heading": "Manuelles Äquivalent",
"pvesmIntro": "Methode A (pvesm) bildet ab:",
"fstabIntro": "Methode B (Fstab) bildet ab:"
},
"view": {
"heading": "Ansicht konfigurierter NFS-Speicher",
"body": "Zeigt alle NFS-Einträge in Proxmox (<code>pvesm status | awk ''$2 == \"nfs\"''</code>) mit Server, Export, Inhaltstypen, Mount-Pfad und aktuellem Status. <strong>Hinweis:</strong> Diese Ansicht enthält nur über pvesm registrierte Storages. Reine fstab-Mounts werden nicht aufgeführt; prüfen Sie diese mit <code>findmnt -t nfs</code> oder <code>grep nfs /etc/fstab</code>."
},
"remove": {
"heading": "NFS-Speicher entfernen",
"body": "Führt <code>pvesm remove &lt;storage-id&gt;</code> nach einer Bestätigung aus, die den Server / Export / Inhalt anzeigt. Nur die Registrierung auf Proxmox-Seite wird entfernt — <strong>der entfernte NFS-Server selbst wird nie berührt</strong>, es werden keine Dateien gelöscht. Um ein fstab-only-Halter zu entfernen, bearbeiten Sie <code>/etc/fstab</code> von Hand und führen Sie <code>umount &lt;path&gt;</code> aus.",
"warnTitle": "Abhängigkeiten zuerst sichern",
"warnBody": "Wenn VMs, CTs oder Backup-Jobs immer noch auf diesen Speicher verweisen (nach ID), zeigt das Entfernen auf einen verschwundenen Speicher. Proxmox wird den Fehler markieren, aber nicht bereinigen. Verschieben oder löschen Sie diese Referenzen zuerst und entfernen Sie dann den Speicher."
},
"test": {
"heading": "NFS-Verbindung testen",
"body": "Führt einen Diagnosepass über jeden in Proxmox registrierten NFS-Speicher aus: Prüft, ob <code>showmount</code> verfügbar ist, ob <code>rpcbind</code> ausgeführt wird, pingt jeden Server, prüft den Port 2049, ruft <code>showmount -e</code> auf und meldet schließlich die eigene Ansicht von Proxmox (<code>pvesm status</code>). Gute erste Station, wenn ein Speicher als <em>inactive</em> in der Proxmox-Benutzeroberfläche angezeigt wird."
},
"troubleshoot": {
"heading": "Fehlerbehebung",
"noServersTitle": "\"Keine NFS-Server im Netzwerk gefunden\"",
"noServersBody": "Auto-discover verwendet <code>nmap -p 2049 --open &lt;subnet&gt;/24</code>. Der Server reagiert möglicherweise nicht, wenn: er befindet sich in einem anderen VLAN / Subnetz, seine Firewall blockiert nmap Sonden (viele tun dies) oder der Port 2049 wird absichtlich auf dieser Schnittstelle geschlossen. Verwenden Sie stattdessen die Option <em>Manual</em> mit der IP oder dem Hostnamen des Servers.",
"portTitle": "„NFS-Port (2049) ist nicht erreichbar“",
"portBody": "Ping war erfolgreich, aber <code>nc -z -w 3 &lt;server&gt; 2049</code> scheiterte. Überprüfen Sie, ob der NFS-Dienst auf dem Server ausgeführt wird (<code>systemctl status nfs-server</code> auf Linux, Systemsteuerung → Dateidienste auf Synology, NFS-Plugin auf OMV / TrueNAS) und ob die Firewall 2049 vom Proxmox-Host ermöglicht.",
"showmountTitle": "\"Failed to connect\" von showmount",
"showmountBody": "Der Server lehnte die Exportlistenabfrage ab. Häufige Ursachen: Der Server erzwingt strenge Client-ACLs (Ihre Proxmox-IP steht nicht auf der erlaubten Liste), <code>rpcbind</code> läuft nicht auf dem Server oder der Server stellt nur NFSv4 mit deaktiviertem <code>showmount</code> bereit. Der Exportpfad kann weiterhin manuell hinzugefügt werden, wenn Sie ihn kennen.",
"inactiveTitle": "Storage zeigt als inaktiv in der Proxmox UI",
"inactiveBody": "Starten Sie <em>NFS-Verbindung testen</em>, um DNS, Ports und Mount-Zugriff zu prüfen. Bleibt der Speicher bei funktionierender Verbindung inaktiv, prüfen Sie <code>journalctl -u pvestatd</code> und Server-/Exportkonfiguration. Beheben Sie zuerst Verbindungs- oder Berechtigungsprobleme. <code>pvesm set &lt;id&gt; --disable 0</code> aktiviert einen deaktivierten Speicher und ist keine allgemeine NFS-Reparatur.",
"lxcNoWriteTitle": "fstab mount funktioniert, aber unprivilegierte LXC kann nicht durch ein bind-mount schreiben",
"lxcNoWriteBody": "NFS-Zugriff hängt von Eigentümern, ACLs und Squash-Einstellungen auf dem Server ab. CIFS-Optionen wie <code>uid=</code> und <code>file_mode=</code> gelten <strong>nicht</strong> für NFS. Bei der Standard-LXC-Zuordnung wird CT-root zu Host-UID 100000, nicht zu Remote-UID 0. Gewähren Sie der tatsächlich zugeordneten UID/GID oder anonymen Serveridentität Zugriff. <code>no_root_squash</code> betrifft nur Remote-UID 0 und löst Probleme mit UID 100000 nicht allgemein. Das Skript versucht <code>chmod 1777</code>, kann Serverrechte aber nicht umgehen.",
"fstabBootTitle": "fstab Mount wird nach dem Neustart nicht angezeigt",
"fstabBootBody": "Das Skript fügt <code>nofail,_netdev</code> hinzu, so dass ein fehlender Anteil beim Booten den Start nicht blockiert. Wenn das mount nie auftaucht: bestätigen, dass das netzwerk erreichbar ist (<code>ping &lt;server&gt;</code>), überprüfen sie <code>journalctl -u remote-fs.target</code> und überprüfen sie, ob der eintrag mit <code>mount -fav | grep nfs</code> gültig ist. <code>mount -a</code> nach dem Booten montiert alles, was derzeit fehlt."
},
"related": {
"heading": "Verwandte Themen",
"items": [
{
"href": "/docs/storage-share/host-samba",
"label": "Samba / CIFS als Proxmox-Speicher",
"tail": "— gleiches Flussmuster (Methode A pvesm + Methode B fstab) für SMB/CIFS-Freigaben."
},
{
"href": "/docs/storage-share/lxc-mount-points",
"label": "LXC-Mount-Verwaltung",
"tailRich": "— bind-mount den fstab-only Pfad <code>/mnt/&lt;path&gt;</code> in einen oder mehrere Container."
},
{
"href": "/docs/storage-share/lxc-nfs-client",
"label": "NFS-Client in LXC",
"tail": "— Alternative: NFS direkt aus einem privilegierten Container montieren (überspringt den Host)."
}
]
}
}
@@ -0,0 +1,172 @@
{
"meta": {
"title": "Host: Samba-Freigabe einhängen | ProxMenux-Dokumentation",
"description": "Montieren Sie eine externe Samba / CIFS-Freigabe auf dem Proxmox-Host - entweder als Proxmox-Speicher (pvesm add cifs), als einfacher fstab-Mount auf dem Host mit offenem uid / gid / file_mode (NICHT sichtbar in Datacenter > Storage) oder beides. Die fstab-Methode öffnet Berechtigungen, so dass eine unprivilegierte LXC-Bindung des Pfades ohne Änderungen im Container lesen / schreiben kann.",
"ogTitle": "Host: Samba-Freigabe einhängen | ProxMenux-Dokumentation",
"ogDescription": "Eine externe Samba-/CIFS-Freigabe auf dem Proxmox-Host über pvesm, fstab mit offenen Berechtigungen für LXC-Bind-Mounts oder beide Methoden einhängen."
},
"header": {
"title": "Host: Samba-Freigabe auf dem Host einhängen",
"description": "Montieren Sie eine externe Samba (SMB / CIFS)-Freigabe - von einem NAS, einer Windows-Box, einem TrueNAS SMB Export - auf dem Proxmox-Host. Wählen Sie eine oder beide Methoden: Registrieren Sie es als Proxmox-Speicher (sichtbar in Datacenter > Storage) und/oder fügen Sie einen einfachen Mount über /etc/fstab an einem von Ihnen gewählten Pfad mit offenem uid/gid/file_mode hinzu, so dass unprivilegierte LXCs ohne Änderungen im Container bind-mounten und schreiben können.",
"section": "Speicher und Freigaben · Host"
},
"intro": {
"title": "Was das macht",
"body": "ProxMenux bietet zwei Methoden für Samba-Freigaben: <strong>(1) Proxmox-Speicher</strong> über <code>pvesm add cifs</code>, sichtbar unter Datacenter > Storage und eingehängt unter <code>/mnt/pve/&lt;id&gt;</code>. Das Passwort liegt im Klartext in <code>/etc/pve/priv/storage/&lt;id&gt;.pw</code>, geschützt durch das nur für root zugängliche private Verzeichnis. Das ist Zugriffsschutz, keine Verschlüsselung. <strong>(2) fstab-Mount auf dem Host</strong> an einem gewählten Pfad, dauerhaft über <code>/etc/fstab</code> und mit <code>uid=0,gid=0,file_mode=0777,dir_mode=0777</code>, damit unprivilegierte LXCs über Bind-Mounts schreiben können. Die Zugangsdaten liegen in einer nur für root lesbaren Datei unter <code>/etc/samba/credentials/</code>, nie direkt in <code>fstab</code>. Beide Methoden sind einzeln oder gemeinsam nutzbar."
},
"opening": {
"heading": "Öffnen des Tools",
"body": "Öffnen Sie im Hauptmenü von ProxMenux <strong>Speicher &amp; Freigabe-Manager → Samba Freigabe auf Host bereitstellen</strong>. Sie sehen dieses sub-Menü mit vier Optionen:",
"imageAlt": "Samba-Host-Menü — Einhängen / Anzeigen / Entfernen / Verbindung testen"
},
"howRuns": {
"heading": "Wie das Skript läuft",
"body": "Der Ablauf hat zwei Phasen. Phase 1: Server entdecken, Anmeldeinformationen validieren, Share auswählen und dann die Mount-Methode(n) über eine Checkliste auswählen. Phase 2: Nur die von Ihnen markierten Methoden werden ausgeführt. Anmeldeinformationen werden im Voraus benötigt, weil <code>smbclient</code> sie benötigt, um Freigaben aufzulisten. Bis zur endgültigen Bestätigung werden weder <code>/etc/pve/storage.cfg</code> noch <code>/etc/fstab</code> berührt."
},
"modes": {
"heading": "Mount-Methode wählen (eine oder beide Optionen)",
"intro": "Nach Auswahl der Freigabe und Validierung der Anmeldeinformationen zeigt ProxMenux eine Checkliste mit den beiden Mount-Methoden an. Sie können entweder oder beide markieren. Wenn Sie auf OK drücken, ohne etwas zu markieren, erscheint der Dialog erneut, bis Sie mindestens eine Option auswählen oder auf Abbrechen drücken, um den Fluss zu verlassen.",
"headerMethod": "Methode",
"headerMount": "Mount-Pfad",
"headerUi": "Sichtbar in Datacenter > Storage",
"headerUseCase": "Typischer Anwendungsfall",
"rows": [
{
"method": "<strong>Als Proxmox-Speicher (pvesm)</strong>",
"mountRich": "<code>/mnt/pve/&lt;storage-id&gt;</code> (verwaltet von Proxmox)",
"ui": "Ja",
"useCase": "Backups, ISOs, LXC-Vorlagen - alles, was in der Proxmox-Benutzeroberfläche angezeigt werden muss. Live VM-Festplatten werden technisch unterstützt, aber von CIFS (Locking Semantics) abgeraten."
},
{
"method": "<strong>Nur Host-fstab</strong>",
"mountRich": "<code>/mnt/&lt;path&gt;</code> mit offenem uid/gid/file_mode",
"ui": "Nein",
"useCaseRich": "Die Freigabe per Bind-Mount in LXCs einbinden, <em>ohne</em> Proxmox-Speicher zu registrieren. Offene lokale Rechte erleichtern unprivilegierten CTs den Zugriff; Schreibzugriff muss der SMB-Server dem angemeldeten Benutzer trotzdem erlauben."
},
{
"method": "<strong>Beide</strong>",
"mount": "Beide Pfade oben (zwei Mount-Punkte desselben CIFS-Exports)",
"ui": "Ja",
"useCase": "Sie wollen UI-Integration UND einen stabilen hostseitigen Pfad mit offenen Berechtigungen für LXC-Bind-Mounts. Der pvesm-Mount verwendet Proxmox-Standards; der fstab-Mount wendet das offene uid/gid/file_mode separat an."
}
],
"bothTitle": "„Beide“ erstellt zwei CIFS-Mount-Punkte",
"bothBody": "pvesm hängt unter <code>/mnt/pve/&lt;id&gt;</code> mit Proxmox-Standardoptionen ein. fstab verwendet <code>/mnt/&lt;path&gt;</code> mit <code>uid=0,gid=0,file_mode=0777,dir_mode=0777</code> für lokalen Zugriff über LXC-Bind-Mounts. Der SMB-Server erzwingt weiterhin die Rechte des Mount-Benutzers. Zwei Mount-Punkte garantieren keine zwei getrennten TCP-Verbindungen."
},
"pvesmBranch": {
"heading": "Methode A — als Proxmox-Speicherung (pvesm)",
"intro": "Wenn <em>Als Proxmox-Speicher</em> markiert ist, führt ProxMenux den ursprünglichen pvesm-Flow aus:",
"items": [
"<strong>Storage ID</strong> — Standard <code>cifs-&lt;server-ip-with-dashes&gt;</code>. Nur Buchstaben, Ziffern, <code>-</code> und <code>_</code>.",
"<strong>Inhaltstypen</strong> — diese ProxMenux-Auswahl bietet <strong>6</strong> Optionen. Gegenüber NFS fehlt <code>rootdir</code>. Das ist eine Entscheidung des Skripts und keine Aussage, dass jede Proxmox-CIFS-Version LXC-Root-Dateisysteme verbietet:"
],
"headerType": "Inhaltsart",
"headerAllows": "Was es erlaubt",
"rows": [
{
"type": "import",
"allows": "Datenträgerbildimporte (standardmäßig ausgewählt)."
},
{
"type": "backup",
"allowsRich": "VM und CT Backup-Dateien (<code>vzdump</code>)."
},
{
"type": "iso",
"allows": "ISO-Abbildungen für die Installation."
},
{
"type": "vztmpl",
"allows": "LXC-Vorlagen."
},
{
"type": "images",
"allowsRich": "VM-Festplatten in Betrieb — <strong>mit Warnung im Dialog</strong>, siehe unten."
},
{
"type": "snippets",
"allows": "Hook-Scripts und Cloud-Init-Snippets."
}
],
"warnTitle": "VM-Disks auf CIFS",
"warnBody": "Die Auswahl <code>images</code> löst eine ProxMenux-Warnung aus: CIFS/SMB kann Sperrprobleme bei VM-Festplattenoperationen verursachen. Das Skript empfiehlt NFS, lässt Sie aber fortfahren. Sicherungen und ISOs sind typische CIFS-Anwendungen. Prüfen Sie Sperren, Snapshots, Migration und Last vor der Verwendung für <code>images</code>.",
"credsTitle": "Wo pvesm Anmeldeinformationen speichert",
"credsBody": "Das Passwort steht nicht in <code>/etc/pve/storage.cfg</code>. Proxmox schreibt Klartext-Zugangsdaten in <code>/etc/pve/priv/storage/&lt;storage-id&gt;.pw</code>, geschützt durch das private Cluster-Dateisystemverzeichnis für <code>root</code>. Nehmen Sie weder einen festen Dateimodus <code>0600</code> noch Verschlüsselung an. Nach einer Passwortänderung am Server verwenden Sie <code>pvesm set &lt;id&gt; --password &lt;new&gt;</code> oder entfernen und ergänzen den Speicher über ProxMenux erneut."
},
"fstabBranch": {
"heading": "Methode B — nur ein fstab-Mount auf dem Host",
"intro": "Wenn <em>Nur fstab-Mount auf dem Host</em> ausgewählt ist, fragt ProxMenux nach Host-Pfad und dauerhaften Optionen, erstellt im Benutzermodus eine nur für root lesbare Zugangsdaten-Datei, hängt die Freigabe ein und schreibt den Eintrag in <code>/etc/fstab</code>:",
"items": [
"<strong>Mount-Pfad auf dem Host</strong> — standardmäßig <code>/mnt/&lt;share-name&gt;</code>. Es muss ein absoluter Weg sein. Wenn dort bereits etwas montiert ist oder ein fstab-Eintrag vorhanden ist, bietet ProxMenux an, ihn zu ersetzen.",
"<strong>Mount-Optionen</strong> — <em>Lesen/Schreiben</em> (Standard: <code>rw,uid=0,gid=0,file_mode=0777,dir_mode=0777,iocharset=utf8,nofail,_netdev</code>), <em>Nur Lesen</em> (<code>file_mode=0555,dir_mode=0555</code>), <em>Benutzerdefiniert</em> (eigene Optionen eingeben). Das Skript empfiehlt offene uid/gid/file_mode für Schreibzugriffe über LXC-Bind-Mounts."
],
"credsTitle": "Anmeldedatendatei (Benutzermodus)",
"credsBody": "Wenn Sie sich mit einem Benutzernamen + Passwort authentifiziert haben, schreibt ProxMenux eine Root-Only-Anmeldedatendatei unter <code>/etc/samba/credentials/&lt;server&gt;_&lt;share&gt;.cred</code> (Modus <code>0600</code>) mit <code>username=</code> und <code>password=</code> Zeilen und verweist sie im fstab-Eintrag über die <code>credentials=</code>-Mount-Option. Klartext landet nie in <code>/etc/fstab</code>. Für den Gastmodus wird stattdessen die Option <code>guest</code> angehängt und es wird keine Anmeldedatei erstellt.",
"appliesIntro": "Sobald Sie bestätigen, das Skript:",
"applies": [
"<code>mkdir -p</code> der Mount Path.",
"<code>mount -t cifs -o &lt;opts&gt;,credentials=&lt;file&gt;</code> (oder <code>guest</code>) <code>//&lt;srv&gt;/&lt;share&gt; &lt;path&gt;</code>.",
"Schreibt einen einzeiligen Eintrag in <code>/etc/fstab</code>: <code>//&lt;srv&gt;/&lt;share&gt; &lt;path&gt; cifs &lt;opts&gt; 0 0</code>.",
"Führt <code>systemctl daemon-reload</code> aus, so dass systemd den neuen Fstab-Eintrag abholt."
],
"lxcTitle": "Verwendung des fstab-Mounts aus einem unprivilegierten LXC",
"lxcBody": "Die CIFS-Optionen <code>uid=0,gid=0,file_mode=0777,dir_mode=0777</code> öffnen lokale Berechtigungsprüfungen für LXC-Bind-Mounts. Server-ACLs und ausgehandelte Unix-/POSIX-Semantik können den Zugriff weiterhin beeinflussen. <strong>Im Container wird nichts geändert</strong>: kein CT-<code>chown</code>, keine Gruppen oder Änderungen an <code>/etc/lxc</code>. Die <code>mp</code>-Zeile verwaltet Proxmox in der CT-Konfiguration. Verwenden Sie den angezeigten <code>pct set</code>-Befehl oder den <mountLink>LXC Mount Manager</mountLink>.",
"noUiTitle": "Der fstab-Mount ist KEIN Proxmox-Speicher",
"noUiBody": "Der fstab-Mount auf dem Host erscheint bewusst nicht in der Proxmox-Weboberfläche. Er fehlt unter <em>Datacenter > Storage</em>, lässt sich beim Erstellen einer VM oder eines CT nicht auswählen und kann nicht als Ziel eines Proxmox-Sicherungsauftrags dienen. Er ist lediglich ein Pfad im Dateisystem des Hosts. Wünschen Sie zusätzlich die Integration in die Oberfläche, wählen Sie <em>beide</em> Methoden aus."
},
"manual": {
"heading": "Manuelles Äquivalent",
"pvesmIntro": "Methode A (pvesm) bildet ab:",
"fstabUserIntro": "Methode B (fstab, user auth) — Anmeldedatendatei + Mount:",
"fstabGuestIntro": "Methode B (fstab, guest auth) — keine Anmeldedatendatei:"
},
"view": {
"heading": "CIFS-Speicher und Host-Mounts anzeigen",
"body": "Zeigt registrierte CIFS-Speicher (<code>pvesm status | awk ''$2 == \"cifs\"''</code>) mit Server, Freigabe, Inhalt, Benutzer oder <em>Gast</em>, Pfad und Status. Passwörter werden <strong>nie ausgegeben</strong>. <strong>Hinweis:</strong> Ein zweiter Abschnitt zeigt Host-fstab-Mounts mit Optionen, Zugangsdaten-Dateipfad und Aktivitätsstatus. Manuelle Prüfung mit <code>findmnt -t cifs</code> oder <code>grep cifs /etc/fstab</code>."
},
"remove": {
"heading": "CIFS-Speicher oder Host-Mount entfernen",
"body": "Die Auswahl enthält pvesm-Speicher und Host-fstab-Mounts. Für pvesm läuft <code>pvesm remove &lt;storage-id&gt;</code>; Proxmox entfernt zugehörige Zugangsdaten. Für fstab versucht das Skript <code>umount &lt;path&gt;</code>, entfernt den Eintrag aus <code>/etc/fstab</code> und Zugangsdaten unter <code>/etc/samba/credentials/</code> sowie nach Möglichkeit das leere Mount-Verzeichnis. Scheitert das Aushängen, sind manueller Unmount oder Neustart nötig. <strong>Der entfernte Samba-Server und seine Dateien bleiben unverändert</strong>.",
"warnTitle": "Abhängigkeiten zuerst sichern",
"warnBody": "VMs, CTs oder Backup-Jobs, die sich auf diesen Speicher nach ID beziehen, schlagen nach dem Entfernen fehl. Verschieben / löschen Sie diese Referenzen, bevor Sie den Speicher entfernen."
},
"test": {
"heading": "Samba Konnektivität testen",
"body": "Führt einen Diagnosepass über jeden in Proxmox registrierten CIFS-Speicher aus: Prüft, ob <code>smbclient</code> verfügbar ist, pingt jeden Server, prüft die Ports 445 und 139, versucht eine Gästeliste und meldet die eigene Ansicht von Proxmox (<code>pvesm status</code>). \"Erfordert Authentifizierung\" auf der Gästeliste bedeutet, dass Ihr Server nur Anteile authentifizierten Benutzern aussetzt - normal für die meisten NAS-Setups."
},
"troubleshoot": {
"heading": "Fehlerbehebung",
"noServersTitle": "\"Keine Samba-Server im Netzwerk gefunden\"",
"noServersBody": "Auto-discover verwendet <code>nmap -p 139,445</code>. Der Server kann sich in einem anderen Subnetz befinden, eine Firewall haben oder nur über den Hostnamen (mDNS / WINS) erreichbar sein. Verwenden Sie stattdessen die Option <em>Manual</em> mit IP oder Hostname.",
"noSharesTitle": "„Keine zugänglichen Freigaben gefunden“",
"noSharesBody": "<code>smbclient -L</code> gab nichts für diese Anmeldeinformationen zurück. Ursachen: Der Benutzer hat keine Berechtigung zum Auflisten von Shares (versuchen Sie es einmal mit Admin-Anmeldeinformationen oder geben Sie den Share-Namen manuell ein), der Server hat die Share-Sichtbarkeit deaktiviert oder die Anmeldeinformationen sind falsch. Mit dem Skript können Sie den Share-Namen in diesem Fall von Hand eingeben.",
"denyTitle": "Proxmox Mount scheitert mit NT_STATUS_ACCESS_DENIED",
"denyBody": "Die gespeicherten Anmeldeinformationen pvesm sind nicht mit dem Samba-Server synchronisiert (Passwort geändert, Konto deaktiviert, Domain / Arbeitsgruppenfehlanpassung). Wiedereingabe von Anmeldeinformationen mit <code>pvesm set &lt;id&gt; --username &lt;u&gt; --password &lt;p&gt;</code> oder Entfernen und erneutes Hinzufügen von ProxMenux. Wenn sich der Server in einer AD-Domäne befindet, fügen Sie <code>--domain &lt;DOMAIN&gt;</code> an den <code>pvesm set</code>-Aufruf an.",
"sleepTitle": "\"host is down\" oder der Speicherstatus wird nachts inaktiv",
"sleepBody": "Einige NAS-Appliances setzen SMB aggressiv schlafen. <code>pvestatd</code> sieht den Speicher dann als inaktiv, bis der erste Zugriff den NAS weckt. Wenn das kosmetisch ist, ist nichts kaputt. Wenn es zu Backup-Fehlern kommt, deaktivieren Sie die SMB Leerlauftrennung am NAS oder planen Sie Backups außerhalb des Schlaffensters.",
"lxcNoWriteTitle": "Unprivilegiertes LXC bind-mount kann nicht in den fstab Pfad schreiben",
"lxcNoWriteBody": "Prüfen Sie <code>findmnt /mnt/&lt;path&gt;</code> auf die vorgesehenen Optionen, etwa <code>uid=0,gid=0,file_mode=0777,dir_mode=0777</code>. Fehlende lokale Schreibrechte können zugeordnete LXC-UIDs blockieren. Wenden Sie das RW-Profil erneut an oder passen Sie eigene Optionen an. Prüfen Sie auch die Schreibrechte des SMB-Benutzers auf dem Server und ob Unix-/POSIX-Erweiterungen Servermodi liefern. Offene lokale Modi umgehen keine Server-ACLs.",
"fstabBootTitle": "fstab Mount wird nach dem Neustart nicht angezeigt",
"fstabBootBody": "Das Skript fügt <code>nofail,_netdev</code> hinzu, so dass ein fehlende Freigabe beim Booten den Start nicht blockiert. Wenn der Mount nie auftaucht: Bestätigen Sie, dass das Netzwerk erreichbar ist (<code>ping &lt;server&gt;</code>), überprüfen Sie <code>journalctl -u remote-fs.target</code>, überprüfen Sie, ob die Anmeldedatendatei noch vorhanden ist (<code>ls -l /etc/samba/credentials/</code>) und lesbar ist, und versuchen Sie <code>mount -a</code> manuell."
},
"related": {
"heading": "Verwandte Themen",
"items": [
{
"href": "/docs/storage-share/host-nfs",
"label": "NFS-Freigabe als Proxmox-Speicher",
"tail": "— Geschwisterseite mit dem gleichen Flussmuster (Methode A pvesm + Methode B fstab) und Side-by-Side-Trade-offs."
},
{
"href": "/docs/storage-share/lxc-mount-points",
"label": "LXC-Mount-Verwaltung",
"tailRich": "— bind-mount den fstab-only Pfad <code>/mnt/&lt;path&gt;</code> in einen oder mehrere Container."
},
{
"href": "/docs/storage-share/lxc-samba-client",
"label": "Samba-Client in LXC",
"tail": "— Alternative: Samba direkt aus einem privilegierten Container montieren (überspringt den Host)."
}
]
}
}
@@ -0,0 +1,135 @@
{
"meta": {
"title": "Proxmox NFS, Samba, iSCSI und LXC-Mounts — Speicher und Freigaben | ProxMenux",
"description": "Integrieren Sie externen und lokalen Speicher in Proxmox VE und teilen Sie Ordner zwischen dem Host und LXC-Containern. Fügen Sie NFS-Freigaben, Samba-Freigaben (CIFS) und iSCSI-Ziele als Proxmox-Speicher hinzu, richten Sie LXC-Bind-Mounts mit dem Mount Manager ein und betreiben Sie NFS-/Samba-Clients und -Server in Containern.",
"ogTitle": "Proxmox NFS, Samba, iSCSI und LXC-Mounts — Speicher und Freigaben",
"ogDescription": "Integrieren Sie externen / lokalen Speicher in Proxmox VE - NFS, Samba, iSCSI-Registrierung sowie LXC-Bind-Mounts und Netzwerkfreigabe.",
"twitterTitle": "Proxmox NFS, Samba, iSCSI | ProxMenux",
"twitterDescription": "Fügen Sie NFS / Samba / iSCSI als Proxmox-Speicher hinzu und teilen Sie Ordner zwischen Host und LXC."
},
"header": {
"title": "Speicher- und Freigabemanager",
"description": "Integrieren Sie externen oder lokalen Speicher in Proxmox VE und teilen Sie Ordner zwischen dem Host und LXC-Containern. Drei Werkzeuggruppen: Host-Speicherintegration (Speicher direkt in Proxmox registrieren), der LXC Mount Manager (Bind-Mounts mit pragmatischer Rechteverwaltung) und LXC-Netzwerkfreigaben (NFS-/Samba-Client- und -Server-Abläufe für bestimmte Anwendungsfälle).",
"section": "Speicher und Freigaben"
},
"intro": {
"title": "Wofür dieses Menü ist",
"body": "Der Disk Manager arbeitet auf der Ebene von <em>individuellen physischen Disks</em>. Der Storage &amp; Share Manager arbeitet eine Ebene höher – er <strong> registriert Speicherpools und Netzwerkfreigaben in Proxmox</strong> (damit die Benutzeroberfläche und der VM-Ersteller sie verwenden können) und <strong> richtet die Dateifreigabe zwischen dem Host und Ihren Containern</strong> ein."
},
"opening": {
"heading": "Öffnen des Menüs",
"body": "Wählen Sie im Hauptmenü von ProxMenux <strong>Storage &amp; Share Manager</strong>. Sie werden sehen:",
"imageAlt": "Storage & Share Manager Menü mit HOST und LXC Blöcken"
},
"groups": {
"heading": "Drei Werkzeuggruppen",
"intro": "Das Menü ist in drei Gruppen aufgeteilt. <strong>Host-Speicherintegration</strong> registriert externen oder lokalen Speicher direkt in Proxmox. Der <strong>LXC Mount Manager</strong> ist das Hauptwerkzeug zur Ordnerfreigabe für Container — ein pragmatischer Bind-Mount-Ablauf, der die UID-Zuordnung unprivilegierter CTs auf dem Host berücksichtigt. <strong>LXC-Netzwerkfreigaben</strong> decken vier zusätzliche Szenarien ab, in denen ein Container NFS-/Samba-Freigaben direkt <em>nutzen</em> oder <em>bereitstellen</em> muss.",
"hostTitle": "Host-Speicher",
"hostBody": "Registrieren Sie externe und lokale Speicherung in Proxmox über <code>pvesm add …</code>. Nach der Registrierung erscheint der Speicher in der Proxmox-Benutzeroberfläche und steht den VM- und CT-Erstellern zur Verfügung.",
"hostItems": [
"Externer NFS / Samba / iSCSI → Proxmox Speicher",
"Lokale Festplatte → Proxmox Verzeichnis oder ZFS Speicher",
"Lokales freigegebenes Verzeichnis (für Bind-Mounts in mehrere CTs)"
],
"lxcMountTitle": "LXC-Mount-Verwaltung",
"lxcMountBody": "Das primäre LXC-Sharing-Tool. Bindet Host-Verzeichnisse über <code>pct set -mpN</code> in Container ein und verarbeitet die Besonderheiten der Berechtigungen von unprivilegierten CTs, ohne eine Gruppe oder einen Benutzer im Container zu erstellen.",
"lxcMountItems": [
"Arbeitet mit privilegierten und unprivilegierten CTs",
"Bietet <code>o+rwx</code> für das Hostverzeichnis an, um unprivilegierte UIDs zu unterstützen",
"Behebt vorhandene CIFS / NFS Mounts bei Bedarf"
],
"lxcNetTitle": "LXC Netzwerkfreigabe",
"lxcNetBody": "Vier zusätzliche Abläufe, wenn ein Container NFS-/Samba-Freigaben direkt nutzen oder bereitstellen muss. Alle erfordern einen <strong>privilegierten</strong> Container.",
"lxcNetItems": [
"NFS-/Samba-<strong>Client</strong> (externe Freigaben nutzen)",
"NFS-/Samba-<strong>Server</strong> (CT-Ordner bereitstellen)"
]
},
"host": {
"heading": "Integration von Host-Speicher",
"intro": "Speicher in Proxmox registrieren. Jede Option ruft <code>pvesm add …</code> unter der Haube auf, so dass der Speicher in <strong>Datacenter → Storage</strong> angezeigt wird und den VM / CT-Erstellern zur Verfügung steht.",
"options": [
{
"href": "/docs/storage-share/host-nfs",
"icon": "Network",
"title": "NFS-Freigabe als Proxmox-Speicher hinzufügen",
"description": "Registrieren Sie einen externen NFS-Export als Proxmox-Speicher über pvesm add nfs. Proxmox übernimmt das mount - keine fstab-einträge erforderlich."
},
{
"href": "/docs/storage-share/host-samba",
"icon": "Share2",
"title": "Samba-Freigabe als Proxmox-Speicher hinzufügen",
"description": "Registrieren Sie eine externe Samba-/CIFS-Freigabe als Proxmox-Speicher über pvesm add cifs. Proxmox übernimmt das Einhängen und die Anmeldeinformationen."
},
{
"href": "/docs/storage-share/host-iscsi",
"icon": "Database",
"title": "Hinzufügen von iSCSI-Ziel als Proxmox-Speicher",
"description": "Verbinden Sie sich mit einem externen iSCSI-Ziel und registrieren Sie es als Proxmox-Speicher (Blockgerät) für VM-Disk-Images."
},
{
"href": "/docs/storage-share/host-local-disk",
"icon": "HardDrive",
"title": "Lokale Festplatte als Proxmox-Speicher hinzufügen",
"description": "Formatieren Sie eine lokale SATA / SAS / NVMe-Festplatte und registrieren Sie sie als Proxmox-Verzeichnis oder ZFS-Poolspeicher."
},
{
"href": "/docs/storage-share/host-local-shared",
"icon": "FolderOpen",
"title": "Freigegebenes Verzeichnis auf dem Host hinzufügen",
"description": "Erstellen Sie ein Host-Verzeichnis, das in mehrere CTs eingebunden werden soll. Kein Proxmox-Speicher - rein eine hostseitige Ressource für LXC-Bind-Mounts."
}
]
},
"lxcMount": {
"heading": "LXC-Mount-Verwaltung",
"intro": "Das primäre Tool zum Teilen von Ordnern zwischen dem Proxmox-Host und LXC-Containern. Es verwendet <code>pct set -mpN</code>, um ein Host-Verzeichnis in den Container zu binden, und behandelt die Besonderheiten der Berechtigungen von unprivilegierten CTs auf der Hostseite (es werden keine Gruppen oder Benutzer innerhalb des Containers erstellt).",
"card": {
"title": "LXC-Mountpoints (Host ↔ CT)",
"description": "Binden Sie ein beliebiges Hostverzeichnis mit pct set -mpN in einen LXC-Container ein. Dies funktioniert mit privilegierten und unprivilegierten CTs. Das Werkzeug bietet chmod o+rwx und ACLs für das Hostverzeichnis an und korrigiert bei Bedarf vorhandene CIFS- oder NFS-Mounts."
}
},
"lxcNet": {
"heading": "LXC Netzwerkfreigabe",
"intro": "Verwenden Sie diese Abläufe, wenn ein Container ein NFS-/Samba-Endpunkt <em>sein</em> muss — entweder eine externe Freigabe nutzen (Client) oder eigene Ordner bereitstellen (Server). Für die meisten Dateifreigaben (Bind-Mounts zwischen Host ↔ CT) ist der <mountLink>LXC Mount Manager</mountLink> einfacher und erfordert keine privilegierten Container.",
"options": [
{
"href": "/docs/storage-share/lxc-nfs-client",
"icon": "Download",
"title": "NFS-Client in LXC",
"description": "NFS-Freigaben innerhalb eines privilegierten LXC-Containers einhängen. Unterstützt automatische Erkennung, dauerhafte Einträge in /etc/fstab und sauberes Aushängen."
},
{
"href": "/docs/storage-share/lxc-samba-client",
"icon": "Download",
"title": "Samba-Client in LXC",
"description": "Samba-/CIFS-Freigaben innerhalb eines privilegierten LXC-Containers einhängen. Zugangsdaten werden geschützt gespeichert; automatische Erkennung ist verfügbar."
},
{
"href": "/docs/storage-share/lxc-nfs-server",
"icon": "Upload",
"title": "NFS Server in LXC",
"description": "Exportieren Sie Ordner über NFS aus einem privilegierten LXC-Container."
},
{
"href": "/docs/storage-share/lxc-samba-server",
"icon": "Upload",
"title": "Samba-Server in LXC",
"description": "Geben Sie Ordner über SMB / CIFS aus einem privilegierten LXC-Container frei."
}
]
},
"privReq": {
"title": "Privilegierte Containeranforderung",
"body": "Die vier obigen Abläufe für <strong>LXC-Netzwerkfreigaben</strong> erfordern einen <strong>privilegierten</strong> Container. Die Skripte prüfen diesen unterstützten Modus, bevor sie Dienste und Mount-Werkzeuge konfigurieren (<code>nfs-kernel-server</code>, <code>smbd</code>, <code>mount.nfs</code>, <code>mount.cifs</code>). Wenn Sie nur Dateien zwischen Host und unprivilegiertem CT teilen möchten, verwenden Sie den <mountLink>LXC Mount Manager</mountLink>: Er bindet die Verzeichnisse vom Host aus ein und passt dort die Rechte an, sodass der Container lesen und schreiben kann, ohne diese Dienste oder Werkzeuge in ihm einzurichten."
},
"unprivExplain": {
"title": "Wie ProxMenux unprivilegierte CT-Berechtigungen verarbeitet",
"body": "Unprivilegierte LXC-Container verschieben ihre UIDs auf dem Host um <strong>+100000</strong> (Container-UID 0 = Host-UID 100000, Container-UID 1000 = Host-UID 101000, …). Eine von einem Container-Benutzer erstellte Datei erscheint daher auf dem Host als <em>andere</em> — sie gehört keinem regulären Host-Benutzer oder keiner regulären Host-Gruppe. Der LXC Mount Manager löst dies pragmatisch: Statt UIDs/GIDs zwischen Host und CT abzugleichen, bietet er <code>chmod o+rwx</code> mit passenden ACLs für das Hostverzeichnis an, sodass jede zugeordnete UID lesen und schreiben kann. CIFS wird mit <code>uid=0,gid=0,file_mode=0777,dir_mode=0777</code> neu eingehängt; bei NFS wird ein für alle beschreibbares Verzeichnis mit Sticky-Bit eingerichtet. Bei Root-Squashing weist das Werkzeug auf die nötige serverseitige Korrektur hin."
},
"scripts": {
"heading": "Involvierte Skripte",
"intro": "Jede einzelne Seite verlinkt auf das Skript, das seinen Fluss antreibt. Die folgende Datei ist ein gemeinsamer Helfer, der nicht als eigene Seite dokumentiert ist, sondern von mehreren LXC-Netzwerk-Sharing-Flows verwendet wird:",
"itemTail": "CT-Validierung, Einhängepunktauswahl, privilegierte Überprüfung und universelle Gruppeneinrichtungshelfer, die über die LXC-Client- / Serverflüsse hinweg geteilt werden."
}
}
@@ -0,0 +1,174 @@
{
"meta": {
"title": "LXC-Einhängepunkte (Host ↔ Container) | ProxMenux-Dokumentation",
"description": "Der LXC Mount Manager bindet ein beliebiges Hostverzeichnis mit pct set -mpN in einen oder mehrere LXC-Container ein. Er berücksichtigt Besonderheiten der Berechtigungen unprivilegierter Container, korrigiert vorhandene CIFS- und NFS-Mounts auf dem Host und verändert nichts im Container.",
"ogTitle": "LXC-Einhängepunkte (Host ↔ Container) | ProxMenux-Dokumentation",
"ogDescription": "Bind-Mount-Hostverzeichnisse in LXC-Containern. Behandelt unprivilegiertes UID-Mapping pragmatisch, behebt CIFS / NFS-Zugriff auf der Hostseite."
},
"header": {
"title": "LXC-Einhängepunkte (Host ↔ Container)",
"description": "Das primäre Tool zum Teilen von Ordnern zwischen dem Proxmox-Host und LXC-Containern. Bindet ein beliebiges Hostverzeichnis in einen oder mehrere Container mit Proxmox's nativer pct set -mpN-Syntax. Die Besonderheit: Es löst die Berechtigungsprobleme von unprivilegierten Containern auf der Hostseite - es ändert niemals etwas im Container.",
"section": "Speicher und Freigaben · LXC"
},
"intro": {
"title": "Was das macht",
"body": "Nehmen Sie ein Verzeichnis, das sich auf dem Proxmox-Host befindet (ein lokaler Ordner, eine eingehängte NAS-Freigabe, ein von Proxmox verwalteter Speicher ...) und lassen Sie es in einem LXC-Container auf einem von Ihnen gewählten Pfad erscheinen, mit Berechtigungen, die auch für unprivilegierte Container funktionieren - ohne etwas im Container zu berühren."
},
"bigPicture": {
"heading": "Wie es funktioniert (das große Bild)",
"intro": "Bei einem Bind-Mount weist Proxmox den Kernel an, das Hostverzeichnis <code>X</code> auch unter <code>Y</code> im Container bereitzustellen. Keine Kopie, keine Synchronisierung, kein Netzwerk: Beide Seiten sehen gleichzeitig die <em>gleichen Dateien</em>.",
"sourceLabel": "Proxmox-Host",
"sourceDetail": "/mnt/data\n(Ihr Ordner)",
"targetLabel": "LXC-Container",
"targetDetail": "/mnt/data\n(erscheint hier)",
"arrowLabel": "Bind-Mount",
"outro": "Der Host-Pfad links und der Container-Pfad rechts können unterschiedlich sein - zum Beispiel kann <code>/mnt/nas-films</code> auf dem Host <code>/media/films</code> innerhalb des Containers werden. Das Skript fügt den Eintrag zur Container-Konfiguration (<code>/etc/pve/lxc/&lt;ctid&gt;.conf</code>) mit dem nächsten freien <code>mpN</code>-Index hinzu, wobei zwei sichere Standardeinstellungen eingebaut sind:",
"items": [
"<code>shared=1</code> — kennzeichnet die Daten als gemeinsam genutzt, sodass Proxmox sie nicht mit dem CT migriert. Das Flag repliziert keine Daten: Derselbe Pfad und dieselben Daten müssen auf dem Zielknoten bereits verfügbar sein.",
"<code>backup=0</code> – schließt die Bind-Mount von <code>vzdump</code>-Backups aus (die Daten leben auf dem Host, Sie sichern sie separat)."
]
},
"perms": {
"heading": "Berechtigungen handhaben",
"intro": "Bind-Mounts sind prinzipiell einfach. Der schwierige Teil sind Berechtigungen: Ein <strong>unprivilegierter</strong> LXC-Container verschiebt jede UID durch <strong> + 100000</strong>, so dass eine Datei, die vom Benutzer 1000 im Container erstellt wurde, auf dem Host als UID 101000 erscheint - eine UID, die niemand auf dem Host besitzt. Um dies zu ermöglichen, ohne UIDs über Hosts und Container auszurichten, wendet ProxMenux den richtigen \"Öffnen von Berechtigungen\" -Trick auf der <em>Host</em>-Seite an, je nachdem, welche Art von Verzeichnis Sie ausgewählt haben:",
"headerType": "Host-Verzeichnistyp",
"headerAction": "Was das Skript zu tun anbietet",
"localType": "Lokaler Ordner",
"localTypeSub": "z.B. /mnt/data",
"localActionRich": "<code>chmod o+rwx</code> + <code>setfacl o::rwx</code> im Hostverzeichnis. Nur angeboten, wenn der CT nicht privilegiert ist und die aktuellen Berechtigungen nicht ausreichen.",
"cifsType": "Eingehängtes CIFS / SMB",
"cifsTypeSub": "z.B. /mnt/pve/cifs-…",
"cifsActionRich": "Remount mit <code>uid=0, gid=0, file_mode=0777, dir_mode=0777</code>, damit der CT (jede UID) die Freigabe lesen und schreiben kann. <code>/etc/fstab</code> wird aktualisiert.",
"nfsType": "Eingehängtes NFS",
"nfsTypeSub": "z.B. /mnt/pve/nfs-…",
"nfsActionRich": "<code>chmod 1777</code> und <code>setfacl o::rwx</code> auf dem NFS-Mount. Serverseitiges Squashing lässt sich damit nicht umgehen. Kann selbst root auf dem Host nicht schreiben, werden Sie zur Korrektur des Exports auf dem NFS-Server angeleitet.",
"privTitle": "Privilegierte Container benötigen nichts davon",
"privBody": "Für privilegierte Container ist UID 0 im CT UID 0 auf dem Host - root im CT kann das Hostverzeichnis direkt ohne Berechtigungstricks lesen und schreiben. Das Skript erkennt dies und überspringt den Schritt \"Öffnen von Berechtigungen\" vollständig.",
"noCtTitle": "Das Skript ändert niemals etwas im Container",
"noCtBody": "Alle Berechtigungsanpassungen erfolgen auf dem <strong>host-Dateisystem</strong>. Keine <code>pct exec</code>-Chowns, keine im CT erstellten Gruppen, kein Fstab im Container. Wenn Sie das bind-mounted-Verzeichnis später in einem anderen CT wiederverwenden, gelten die gleichen Berechtigungen automatisch - keine Einrichtung pro Container."
},
"writes": {
"heading": "Was ProxMenux schreibt - und was nicht",
"intro": "Eine häufige Verwirrung beim Binden in einen unprivilegierten CT: Die Leute gehen davon aus, dass ProxMenux <code>lxc.idmap</code>-Einträge in <code>/etc/pve/lxc/&lt;CTID&gt;.conf</code> schreiben muss. <strong>Das tut es nicht.</strong> Nur eine Zeile ist an diese Datei angehängt – das Bind-Mount selbst:",
"outro": "Die Ausgabezeile, die Sie am Ende des Laufs sehen, <em>\"Unprivilegierter Container - UID-Offset: 100000\"</em>, ist rein informativ - sie sagt Ihnen nur, dass der CT die standardmäßige unprivilegierte Zuordnung von Proxmox verwendet (root in CT = UID 100000 auf Host). Das Skript konfiguriert nichts um es herum.",
"twoWaysHeading": "Die beiden Möglichkeiten, Berechtigungen funktionieren zu lassen - und warum ProxMenux eine auswählt",
"headerApproach": "Ansatz",
"headerChanges": "Was es verändert",
"headerWhen": "Wenn es passt",
"hostType": "Berechtigungen auf dem Host",
"hostTypeSub": "(Was dieses Skript macht)",
"hostChangesRich": "<code>chmod o+rwx</code> + <code>setfacl o::rwx</code> im Hostverzeichnis. Die abgebildeten UIDs des CT (100000+) fallen in den \"Anderen\"-Bucket, so dass das Öffnen von <em>andere</em> ausreicht.",
"hostWhen": "Generic Shared-Ordner-Zugriff von jedem CT. Mehrere CTs teilen sich das gleiche Hostverzeichnis. Einfach und wiederverwendbar.",
"idmapTypeRich": "<code>lxc.idmap</code>",
"idmapTypeSub": "(nicht von diesem Skript verwendet)",
"idmapChangesRich": "Benutzerdefiniertes UID/GID-Mapping in <code>/etc/pve/lxc/&lt;CTID&gt;.conf</code> plus passende <code>/etc/subuid</code> + <code>/etc/subgid</code> Einträge auf dem Host. CT muss bei jeder Änderung neu gestartet werden.",
"idmapWhenRich": "Sie benötigen eine <em>bestimmte</em> UID innerhalb der CT, um einer <em>bestimmte</em> UID auf dem Host zuzuordnen (z.B.) <code>media:1000</code> im CT muss Dateien als <code>media:1000</code> auf dem Host besitzen, damit NFS nicht quetscht. Ein starreres Setup, das sich normalerweise nur für genau dieses Szenario lohnt.",
"idmapTipTitle": "Wenn Sie lxc.idmap tatsächlich benötigen",
"idmapTipBody": "Verwenden Sie manuelle ID-Zuordnung, wenn im CT geschriebene Dateien auf dem Host einer bestimmten numerischen UID/GID gehören sollen, etwa für gemeinsame Eigentümerschaft mit einem Hostbenutzer. Sie umgeht NFS-<code>all_squash</code> nicht; anonyme Identität und Rechte bestimmt weiterhin der Server. Fügen Sie bei Bedarf <code>lxc.idmap</code>-Einträge von Hand hinzu. Die Bind-Mount-Zeile ist davon unabhängig."
},
"opening": {
"heading": "Öffnen des Tools",
"body": "Öffnen Sie im Hauptmenü von ProxMenux <strong>Storage &amp; Share Manager → Konfigurieren Sie LXC Mount Points (Host ↔ Container)</strong>. Sie sehen dieses sub-Menü mit drei Optionen:",
"imageAlt": "LXC Mount Manager-Menü - Hinzufügen / Ansicht / Entfernen"
},
"addFlow": {
"heading": "Mount hinzufügen — vollständiger Ablauf",
"intro": "Die technische Ansicht, wenn Sie genau wissen möchten, was jeder Dialog tut:"
},
"sources": {
"heading": "Was Sie als Host-Verzeichnis auswählen können",
"intro": "Der Host-Verzeichnis-Picker ist der gründlichste im Abschnitt Storage &amp; Share. Es scannt vier Quellen und präsentiert eine deduplizierte Liste:",
"headerSource": "Quelle",
"headerWhere": "Woher es kommt",
"headerLabel": "Label im Menü",
"rows": [
{
"source": "Aktive Netzwerk-Mounts",
"whereRich": "Aktuell eingehängte CIFS-/NFS-Freigaben aus <code>/proc/mounts</code>.",
"labelRich": "<code>NFS [used/size]</code> oder <code>CIFS/SMB [used/size]</code>"
},
{
"source": "Inaktive fstab-Mounts",
"whereRich": "Definiert in <code>/etc/fstab</code>, aber derzeit nicht montiert.",
"labelRich": "<code>fstab(off)-NFS</code> / <code>fstab(off)-CIFS/SMB</code>"
},
{
"source": "Lokale Verzeichnisse",
"whereRich": "Sub-Verzeichnisse unter <code>/mnt</code>, die keine Netzwerk-Mounts sind.",
"labelRich": "<code>Local [size]</code>"
},
{
"source": "Proxmox-Speicher",
"whereRich": "Speicherpfade unter <code>/mnt/pve/*</code> (NFS / CIFS registriert über <code>pvesm</code>).",
"labelRich": "<code>PVE-NFS</code> / <code>PVE-CIFS/SMB</code> / <code>Proxmox-Storage</code>"
},
{
"source": "Manuelle Eingabe",
"where": "Alles andere - geben Sie den absoluten Pfad selbst ein.",
"labelRich": "<em>Pfad manuell eingeben</em>"
}
],
"tipTitle": "Interne Proxmox Pfade werden herausgefiltert",
"tipBody": "Der Picker überspringt explizit interne Proxmox-Pfade (<code>/mnt/pve/local</code>, <code>/mnt/pve/local-lvm</code>, <code>/mnt/pve/backup</code>, ...) – diese sind für Proxmox-Interna reserviert und Sie sollten sie nicht binden. Nur vom Benutzer hinzugefügte Speicher werden angezeigt."
},
"manual": {
"heading": "Manuelles Äquivalent",
"privIntro": "Für einen privilegierten Container — der einfachste Fall, keine Berechtigung Tricks:",
"unprivLocalIntro": "Für einen unprivilegierten Container mit einem lokalen Host-Verzeichnis - öffnen Sie zuerst Berechtigungen auf dem Host:",
"unprivCifsIntro": "Für einen unprivilegierten Container mit einem CIFS-Freigabe, der bereits auf dem Host montiert ist:"
},
"view": {
"heading": "Einhängepunkte anzeigen",
"body": "Listet jeden <code>mpN</code>-Eintrag für jeden Container auf diesem Proxmox-Host auf, gruppiert nach CT ID und zeigt Hostpfad → Containerpfad plus zusätzliche Optionen an. Nur Lesen - nützlich als Plausibilitätsprüfung, bevor Sie etwas hinzufügen oder entfernen."
},
"remove": {
"heading": "Einhängepunkt entfernen",
"body": "Wählen Sie den Container, wählen Sie den <code>mpN</code>-Eintrag, bestätigen Sie. Das Skript führt <code>pct set --delete mpN</code> aus, um den Eintrag aus der CT-Konfiguration zu löschen, und bietet an, den Container neu zu starten, wenn er ausgeführt wird. Das Host-Verzeichnis und sein Inhalt sind <strong>unverändert</strong> – Sie können das Mount später erneut hinzufügen (oder dasselbe Verzeichnis an ein anderes CT) anhängen.",
"warnTitle": "Live-laufende Container benötigen einen Neustart, damit Änderungen wirksam werden können",
"warnBody": "Sowohl Hinzufügen als auch Entfernen von Befestigungspunkten werden erst nach einem Neustart im Inneren des Containers sichtbar. Das Skript bietet einen <code>pct reboot</code> mit einem Klick am Ende jeder Operation; Sie können später manuell ablehnen und neu starten."
},
"troubleshoot": {
"heading": "Fehlerbehebung",
"noMountTitle": "Mount erscheint in pct config, aber nicht im Container",
"noMountBody": "Bind-Mounts werden nur dann angebracht, wenn der Container startet. Wenn Sie die Mount hinzugefügt haben, während die CT ausgeführt wurde, starten Sie sie neu (<code>pct reboot &lt;ctid&gt;</code>). Wenn es bereits neu gestartet wurde und immer noch fehlt, überprüfen Sie <code>pct config &lt;ctid&gt;</code>, um zu bestätigen, dass der Eintrag existiert und der Hostpfad tatsächlich ein Verzeichnis enthält.",
"noWriteTitle": "Container kann das Verzeichnis sehen, aber nicht schreiben",
"noWriteBody": "Fast immer ein Berechtigungsproblem. Führen Sie bei unprivilegierten Containern die Berechtigungskorrektur des Skripts erneut aus - die ACLs des Hostverzeichnisses wurden möglicherweise von einem anderen Tool zurückgesetzt (rsync, Wiederherstellen aus dem Backup, manuelles <code>chmod</code>). Überprüfen Sie für CIFS die Mount-Optionen auf dem Host: <code>findmnt /mnt/pve/cifs-…</code>, suchen Sie nach <code>uid=</code> / <code>gid=</code> / <code>file_mode=</code> Werten.",
"alreadyTitle": "\"Dieser Pfad wird bereits als Einhängepunkt in diesem Container verwendet\"",
"alreadyBody": "Sie haben den gleichen Containerpfad ausgewählt, der bereits mit einem anderen Hostverzeichnis verdrahtet ist. Wählen Sie entweder einen anderen Containerpfad oder entfernen Sie zuerst den vorhandenen Montagepunkt.",
"nfsTitle": "NFS-Zugriff auch nach Anwendung des Host-Fixes blockiert",
"nfsIntro": "Ihr NFS-Server quetscht Root oder alle Verbindungen. Das Skript kann dies erkennen (es versucht, eine Testdatei vom Host zu schreiben) und zeigt die serverseitige Anleitung. Zwei gängige serverseitige Fixes für den Export:",
"nfsItems": [
"<code>no_root_squash</code> - privilegierte CTs können direkt schreiben.",
"<code>all_squash,anonuid=65534,anongid=65534</code> — für unprivilegierte CTs."
],
"nfsOutro": "Diese Änderungen finden auf dem NFS-Server (TrueNAS, Synology, Ihr benutzerdefinierter Export, ...) statt, nicht auf Proxmox.",
"fstabOffTitle": "\"Fstab(off)\"-Einträge machen nichts",
"fstabOffBody": "Der Picker zeigt <code>fstab(off)-</code>-Einträge an, wenn ein Netzwerk-Mount in fstab definiert, aber derzeit nicht montiert ist. Mit dem Skript können Sie den Pfad bind-mounten, aber das Verzeichnis wird leer sein, bis Sie die Freigabe tatsächlich mounten (<code>mount &lt;path&gt;</code> auf dem Host). Montieren Sie es zuerst und binden Sie es dann in den CT."
},
"related": {
"heading": "Verwandte Themen",
"items": [
{
"href": "/docs/storage-share/host-local-shared",
"label": "Shared Directory auf Host hinzufügen",
"tailRich": "— typischer erster Schritt: Bereiten Sie einen <code>/mnt/shared</code> auf dem Host vor, bevor Sie ihn hier in einen oder mehrere CTs binden."
},
{
"href": "/docs/storage-share/host-nfs",
"label": "NFS-Freigabe als Proxmox-Speicher hinzufügen",
"extraHref": "/docs/storage-share/host-samba",
"extraLabel": "Samba-Freigabe als Proxmox-Speicher hinzufügen",
"joiner": " / ",
"tailRich": "- registrieren Sie zuerst eine externe Freigabe in Proxmox und binden Sie dann den <code>/mnt/pve/&lt;id&gt;</code>-Pfad hier in den CT."
},
{
"href": "/docs/storage-share/lxc-nfs-client",
"label": "NFS-Client in LXC",
"extraHref": "/docs/storage-share/lxc-samba-client",
"extraLabel": "Samba-Client in LXC",
"joiner": " / ",
"tail": "- die Alternative, wenn Sie möchten, dass der CT selbst die Freigabe anbringt (erfordert einen privilegierten Container)."
}
]
}
}
@@ -0,0 +1,128 @@
{
"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-<code>mount.nfs</code>-Client benötigt Funktionen (mindestens <code>SYS_ADMIN</code>), die nicht privilegierte LXC-Container nicht bereitstellen. Das Skript erzwingt dies - es fordert Sie auf, einen CT auszuwählen, und <strong>bricht bei unprivilegierten CTs ab</strong>. Wenn Sie die Freigabe in einem unprivilegierten CT benötigen, montieren Sie sie zuerst auf dem Proxmox-Host (mit <hostNfsLink>NFS-Freigabe als Proxmox-Speicher</hostNfsLink>) und binden Sie sie mit dem <mountLink>LXC-Mount-Manager</mountLink> in den CT ein."
},
"what": {
"heading": "Was das macht",
"body": "Im Gegensatz zum LXC Mount Manager, der den CT dazu bringt, etwas <em>via</em> im Proxmox-Host zu sehen, gibt dieses Skript dem Container seinen <strong>eigenen NFS-Client</strong>: Er spricht NFS über das Netzwerk, mountet Shares direkt vom NFS-Server und speichert das Mount im <code>/etc/fstab</code> 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": "<strong>Bind-Mount über den Host</strong> (<mountLink>LXC Mount Manager</mountLink>): 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": "<strong>Direct NFS Mount im CT</strong> (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 <strong>Storage &amp; Share Manager → NFS-Client in LXC (nur privilegiert)</strong> konfigurieren. ProxMenux fordert Sie zuerst auf, <strong> das Ziel CT</strong> 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: <code>_netdev,x-systemd.automount,noauto</code>. 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 <code>/mnt/&lt;path&gt;</code>. 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 <em>ersten Zugriff</em> 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 <strong> im CT</strong> über <code>pct exec &lt;ctid&gt; --</code> oder direkt über <code>pct enter &lt;ctid&gt;</code> aus:"
},
"view": {
"heading": "Aktuelle Mounts anzeigen",
"body": "Listet jeden NFS-Montagepunkt auf, der innerhalb des CT (<code>mount | grep nfs</code>) aktiv ist, sowie jede NFS-Linie im <code>/etc/fstab</code> 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 <strong>entfernt die entsprechende Zeile aus <code>/etc/fstab</code></strong>. Das Skript führt <em>nicht</em> <code>umount</code> 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: <code>umount</code> 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 <em>sofort</em> verschwinden und sind Sie sicher, dass nichts mehr darauf zugreift, führen Sie nach Abschluss des Skripts <code>pct exec &lt;ctid&gt; -- umount /mnt/&lt;path&gt;</code> manuell aus."
},
"test": {
"heading": "NFS-Verbindung testen",
"body": "Diagnose im CT: Prüft, ob <code>nfs-common</code> installiert ist und <code>rpcbind</code> 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 → <code>showmount -e</code> 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 <code>SYS_ADMIN</code>-Fähigkeiten, die nicht privilegierte CTs nicht aussetzen. Entweder konvertieren Sie die CT in privilegierte (die Konvertierung von Disk Manager &amp; ist auf der <importLink>Import Disk in LXC</importLink> 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 (<code>apt-get</code>) 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: <code>apk add nfs-utils</code>",
"Arch: <code>pacman -S nfs-utils</code>",
"Rocky / Alma: <code>dnf install nfs-utils</code>"
],
"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 <code>nc -z &lt;server&gt; 2049</code> 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 <code>pct exec &lt;ctid&gt; -- ip route</code>).",
"bootTitle": "Permanent Mount gelingt, kommt aber nicht beim Booten",
"bootBody": "Fast immer einer von: Das Netzwerk ist nicht bereit, wenn die CT-Mounts (die <code>_netdev,x-systemd.automount,noauto</code>-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 <code>root_squash</code> (Standard) und der CT schreibt als root. Zwei Optionen:",
"squashItems": [
"Server-Seite: Ändern Sie den Export in <code>no_root_squash</code> (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 <em>aus</em> 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."
}
]
}
}
@@ -0,0 +1,159 @@
{
"meta": {
"title": "NFS Server in LXC | ProxMenux Dokumentation",
"description": "Ordner über NFS aus einem Proxmox-LXC-Container mit ProxMenux freigeben. Installiert nfs-kernel-server automatisch, richtet die gemeinsame Gruppe sharedfiles und /etc/exports ein und bietet Netzwerk-ACLs sowie vollständige Deinstallation. Erfordert einen privilegierten Container.",
"ogTitle": "NFS Server in LXC | ProxMenux Dokumentation",
"ogDescription": "Führen Sie einen NFS-Server in einem privilegierten LXC-Container aus. Universelle Sharedfiles-Gruppe, Netzwerk-ACL und vollständige Deinstallation."
},
"header": {
"title": "NFS Server in LXC",
"description": "Betreiben Sie einen NFS-Kernel-Server in einem Proxmox-LXC-Container und geben Sie Ordner für andere Rechner im Netzwerk frei. ProxMenux installiert nfs-kernel-server, richtet die gemeinsame Gruppe sharedfiles ein, damit mehrere privilegierte CTs Dateien gemeinsam nutzen können, verwaltet /etc/exports und bietet eine vollständige Deinstallation.",
"section": "Speicher und Freigaben · LXC"
},
"privReq": {
"title": "Privilegierter Container erforderlich",
"body": "<code>nfs-kernel-server</code> muss das Kernel-Dateisystem <code>nfsd</code> unter <code>/proc/fs/nfsd</code> einhängen. Dafür benötigt es <code>CAP_SYS_ADMIN</code> im Namensraum des Host-Kernels, nicht nur im Benutzer-Namensraum des Containers. Unprivilegierte LXC-Container besitzen diese Fähigkeit nicht: <code>rpc.nfsd: Unable to access /proc/fs/nfsd errno 2 (No such file or directory)</code>; systemd markiert <code>nfs-server.service</code> mit einem Abhängigkeitsfehler. Das Skript verlangt daher einen privilegierten CT und <strong>bricht bei unprivilegierten CTs ab</strong>. Alternativ kann der NFS-Server in einer VM laufen."
},
"what": {
"heading": "Was das macht",
"body": "Dies ist die umgekehrte Richtung zur <em>NFS-Client-Seite</em>: Der CT wird zum <strong>NFS-Server</strong> und stellt einen eigenen Ordner anderen CTs, dem Proxmox-Host, VMs oder physischen Rechnern bereit.",
"diagramServerLabel": "LXC (privilegiert) — NFS-Server",
"diagramServerDetail": "/mnt/data\n(freigegebener Ordner)\n\nchown root:sharedfiles\nchmod 2775 (SGID)\n\nnfs-kernel-server\n+ rpcbind läuft",
"diagramClientLabel": "Jeder Client im Netzwerk",
"diagramClientDetail": "einem anderen CT, dem Host,\nVM, eine physische Maschine...",
"diagramArrow": "NFS-Export"
},
"shared": {
"heading": "Die \"sharedfiles\" Gruppenkonvention",
"body": "Vor dem Exportieren des Ordners erstellt ProxMenux eine Gruppe namens <code>sharedfiles</code> mit <strong>GID 101000</strong> im Container, fügt jeden regulären Benutzer hinzu und setzt dann das Exportverzeichnis mit dem Modus <code>2775</code> auf <code>root:sharedfiles</code>. Das <code>2</code> an der Vorderseite ist das SGID-Bit - jede Datei oder jeder Ordner, der im Inneren erstellt wird, erbt automatisch die <code>sharedfiles</code>-Gruppe.",
"gidTitle": "Warum GID 101000 speziell",
"gidBody": "Mit der standardmäßigen LXC-ID-Zuordnung (+100000) erscheint Host-GID 101000 als GID <strong>1000</strong> in einem unprivilegierten CT. Dieser Serverablauf verwendet einen <strong>privilegierten</strong> CT ohne Verschiebung. Zwei privilegierte CTs mit <code>sharedfiles</code> bei GID 101000 verwenden daher dieselbe numerische Gruppen-ID.",
"remapTitle": "Die alte Erstellung von „remap_*“-Benutzern wird bei privilegierten CTs übersprungen",
"remapBody": "Der alte Zweig für unprivilegierte CTs würde <code>remap_&lt;uid&gt;</code>-Benutzer mit UID <code>&lt;uid&gt; + 100000</code> in <code>sharedfiles</code> für normale Benutzer und übliche UIDs (33, 1000, 1001, 1002) anlegen. Diese <code>+100000</code>-Verschiebung gilt nicht für die hier vorgeschriebenen <strong>privilegierten</strong> CTs; deshalb überspringt das Skript diesen Zweig. Fehlende <code>remap_*</code>-Konten in <code>getent passwd</code> sind zu erwarten und kein Fehler."
},
"defaults": {
"heading": "Standard-Exportoptionen - lesen Sie dies zuerst",
"warnTitle": "Standardoptionen umfassen no_root_squash",
"warnBody": "ProxMenux verwendet standardmäßig <code>rw,sync,no_subtree_check,'<'strong'>'no_root_squash'<'/strong'>'</code>. <strong>Jeder Client-Benutzer root kann auf dem Export als root schreiben.</strong> Verwenden Sie dies nur in einem vertrauenswürdigen Heimnetz. Ist der CT aus einem nicht vertrauenswürdigen Netzwerk erreichbar (VPS oder fremdes VLAN), <strong>ersetzen Sie die Exportoption im Dialog für eigene Optionen durch <code>root_squash</code></strong>."
},
"opening": {
"heading": "Öffnen des Tools",
"body": "Öffnen Sie im Hauptmenü von ProxMenux <strong>Storage &amp; Share Manager → NFS-Server in LXC (nur privilegiert)</strong> 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ü mit fünf Optionen:",
"imageAlt": "NFS Server-Manager-Menü – Erstellen / Ansicht / Löschen / Status / Deinstallieren"
},
"howRuns": {
"heading": "Wie das Skript läuft (Create flow)"
},
"network": {
"heading": "Netzwerk-ACL — wer darf einhängen?",
"intro": "<code>/etc/exports</code> filtert, welche Clients den Export einhängen dürfen. Der Dialog bietet drei Möglichkeiten:",
"headerMode": "Modus",
"headerValue": "Wert geschrieben an /etc/exports",
"headerWhen": "Wann man es wählt",
"rows": [
{
"mode": "Lokales Netz",
"value": "192.168.0.0/16",
"whenRich": "Für übliche Heim- und SOHO-Netzwerke. Deckt alle Adressen unter <code>192.168.*.*</code> ab."
},
{
"mode": "Eigenes Subnetz",
"value": "Ein beliebiges CIDR-Subnetz (z. B. 10.0.0.0/24)",
"when": "Wenn sich Ihr LAN nicht in 192.168.x.x befindet oder Sie einen engeren Umfang wünschen."
},
{
"mode": "Einzelner Host",
"value": "Die IP-Adresse eines einzelnen Clients (z. B. 192.168.1.50)",
"when": "Nur eine bestimmte Maschine sollte montieren. Am restriktivsten."
}
]
},
"options": {
"heading": "Exportoptionen",
"headerOption": "Option",
"headerEffect": "Was es tut",
"rows": [
{
"option": "rw / ro",
"effect": "Ermöglichen Sie Lese-Schreib- oder Lesezugriff für Verbindungsclients."
},
{
"option": "sync",
"effectRich": "Bestätigt Schreibanforderungen erst, wenn die Daten auf dem Datenträger liegen. Sicherer als <code>async</code>, aber mit geringerem Durchsatz."
},
{
"option": "no_subtree_check",
"effect": "Überspringt die Prüfung bei jeder Anfrage, ob die Datei noch im exportierten Teilbaum liegt. Das ist schneller und vermeidet Probleme, wenn Dateien während des Zugriffs umbenannt werden."
},
{
"option": "no_root_squash",
"effectRich": "<strong>Root auf dem Client vertrauen.</strong> Ein als root zugreifender Client schreibt auf dem Server als root. Geeignet für vertrauenswürdige LANs, etwa wenn Sicherungswerkzeuge die Eigentümer erhalten müssen. Ersetzen Sie dies durch <code>root_squash</code>, wenn Sie nicht jedem Rechner in der Netzwerk-ACL vollständig vertrauen."
}
]
},
"manual": {
"heading": "Manuelles Äquivalent",
"body": "Führen Sie den gesamten Ablauf von Hand aus. Jeder Befehl läuft <strong>innerhalb des CTs</strong> über <code>pct exec &lt;ctid&gt; --</code> oder <code>pct enter &lt;ctid&gt;</code>:"
},
"view": {
"heading": "Aktuelle Exporte ansehen",
"body": "Zeigt <code>/etc/exports</code> aus dem CT ohne Kommentare und Leerzeilen an. Jeder Export wird mit Netzwerk-ACL und Optionen ausgegeben. Damit lässt sich vor der Weitergabe der CT-IP prüfen, welche Ordner freigegeben sind."
},
"delete": {
"heading": "Einen Export löschen",
"body": "Listet jede Zeile in <code>/etc/exports</code> zur Auswahl auf, entfernt die ausgewählte (<code>sed -i</code>), führt <code>exportfs -ra</code> aus und startet <code>nfs-kernel-server</code> neu. Der Ordner selbst und sein Inhalt bleiben intakt."
},
"status": {
"heading": "NFS-Status überprüfen",
"body": "Diagnosepass: bestätigt, dass <code>nfs-kernel-server</code> und <code>rpcbind</code> installiert und aktiv sind, druckt <code>exportfs -v</code>-Ausgabe, listet aktive NFS-Sitzungen (<code>showmount -a</code>) und aktuelle Clientverbindungen auf."
},
"uninstall": {
"heading": "NFS-Server deinstallieren",
"body": "Vollständige Bereinigung nach Bestätigung: stoppt und deaktiviert <code>nfs-kernel-server</code> und <code>rpcbind</code>, leert <code>/etc/exports</code>, entfernt die NFS-Pakete mit <code>apt-get purge</code>, löscht die Gruppe <code>sharedfiles</code> und die Benutzer <code>remap_*</code> und beendet verbleibende Prozesse. Die <strong>exportierten Ordner selbst bleiben erhalten</strong>; entfernt werden nur NFS-Konfiguration und Pakete.",
"warnTitle": "Das Skript stoppt an der Exportlinie, nicht an den Daten",
"warnBody": "Sowohl <em>Export löschen</em> als auch <em>NFS-Server deinstallieren</em> entfernen die Exportkonfiguration. Die Daten im freigegebenen Ordner bleiben erhalten. Löschen Sie Daten bei Bedarf nach Abschluss des Skripts ausdrücklich mit <code>rm -rf</code>; sichern Sie sie vorher, falls jemand sie noch benötigen könnte."
},
"troubleshoot": {
"heading": "Fehlerbehebung",
"privTitle": "Privilegierter Container erforderlich (Skript bricht ab)",
"privBody": "Der ausgewählte CT ist unprivilegiert. <code>nfs-kernel-server</code> kann dort nicht starten, da die Einhängen von <code>/proc/fs/nfsd</code> <code>CAP_SYS_ADMIN</code> im Host-Kernel-Namespace benötigt und das <code>nfsd</code>-Modul auch nicht dem Namespace des Containers ausgesetzt ist (<code>modprobe nfsd</code> von innen gibt <code>FATAL: Module nfsd not found</code>). Wenn Sie das Gate umgehen, sehen Sie <code>rpc.nfsd: Unable to access /proc/fs/nfsd errno 2 (No such file or directory)</code> im Journal und keine NFS-Ports werden jemals geöffnet. Die einzigen praktikablen Optionen sind: Wandeln Sie den CT in einen privilegierten CT um oder verschieben Sie den NFS-Server in eine VM.",
"aptTitle": "apt-get install schlägt fehl",
"aptIntro": "Das Skript nimmt eine Debian-Familie CT an. Auf Alpine / Arch / Rocky / Alma installieren Sie die NFS-Serverpakete von Hand:",
"aptItems": [
"Alpine: <code>apk add nfs-utils</code>",
"Arch: <code>pacman -S nfs-utils</code>",
"Rocky / Alma: <code>dnf install nfs-utils</code>"
],
"aptOutro": "Führen Sie danach das ProxMenux-Skript erneut aus; sind die Werkzeuge schon vorhanden, wird die Installation übersprungen.",
"aclTitle": "Client kann nicht mounten: \"Zugriff verweigert durch Server\"",
"aclBody": "Die Client-IP liegt außerhalb der konfigurierten Netzwerk-ACL. Erstellen Sie den Export mit einem größeren Subnetz neu oder fügen Sie die genaue Client-IP hinzu. Häufige Ursache: Hinter Router-NAT kann der Client mit der WAN-IP des Routers statt seiner LAN-IP erscheinen. Prüfen Sie dies auf dem Server mit <code>tcpdump -n port 2049</code>.",
"ownTitle": "Vom Client geschriebene Dateien erscheinen mit seltsamem Besitz auf dem Server",
"ownIntro": "Zwei Möglichkeiten:",
"ownItems": [
"Mit <code>no_root_squash</code> (Standard) schreibt Client root als root auf den Server. Dateien gehören <code>root:sharedfiles</code> dank der SGID im Ordner.",
"Nicht-Root-Client-Benutzer schreiben als ihre eigene UID / GID. Wenn ihre UID nicht auf dem Server existiert, erscheinen Dateien mit Rohnummern (z.B. <code>1234:1234</code>). Verwenden Sie die <code>sharedfiles</code>-Gruppe auch auf dem Client oder richten Sie UIDs auf den Systemen aus, die Dateien gemeinsam nutzen."
],
"noShowTitle": "Server erreichbar, aber showmount gibt nichts zurück",
"noShowBody": "Nach dem Bearbeiten von <code>/etc/exports</code> müssen Sie die Exporttabelle mit <code>exportfs -ra</code> neu laden und <code>nfs-kernel-server</code> neu starten – das Skript macht beides, aber wenn Sie die Datei von Hand bearbeitet haben, tun Sie es selbst. Bestätigen Sie auch, dass die Firewall auf dem CT (und auf dem Proxmox-Host) TCP/UDP 2049 und den rpcbind-Port (111) ermöglicht."
},
"related": {
"heading": "Verwandte Themen",
"items": [
{
"href": "/docs/storage-share/lxc-nfs-client",
"label": "NFS-Client in LXC",
"tail": " — umgekehrte Richtung: externe NFS-Freigaben im CT einhängen."
},
{
"href": "/docs/storage-share/lxc-samba-server",
"label": "Samba-Server in LXC",
"tail": "— Geschwisterseite, gleiches Muster mit SMB / CIFS anstelle von NFS."
},
{
"href": "/docs/storage-share/host-nfs",
"label": "NFS-Freigabe als Proxmox-Speicher",
"tailRich": " — Sobald der CT Ordner über NFS freigibt, registrieren Sie die NFS-Freigabe in Proxmox, damit sie unter <em>Datacenter → Storage</em> erscheint."
}
]
}
}
@@ -0,0 +1,155 @@
{
"meta": {
"title": "Samba-Client in LXC | ProxMenux Dokumentation",
"description": "Samba-/CIFS-Freigaben direkt in einem Proxmox-LXC-Container mit ProxMenux einhängen. Installiert cifs-utils und smbclient automatisch, unterstützt Erkennung im Netzwerk, geschützte Zugangsdaten und dauerhafte Mounts über /etc/fstab. Erfordert einen privilegierten Container.",
"ogTitle": "Samba-Client in LXC | ProxMenux Dokumentation",
"ogDescription": "Samba-/CIFS-Freigaben in einem privilegierten LXC einhängen. Automatische Erkennung, geschützte Zugangsdaten-Datei und dauerhafte Einträge in /etc/fstab."
},
"header": {
"title": "Samba-Client in LXC",
"description": "Samba-Freigaben (SMB/CIFS) direkt in einem Proxmox-LXC-Container einhängen. Der Container wird zu einem echten CIFS-Client - spricht mit dem Samba-Server über das Netzwerk, führt mount.cifs aus, speichert Anmeldeinformationen sicher und schreibt an /etc/fstab. ProxMenux installiert cifs-utils + smbclient für Sie und validiert Anmeldeinformationen gegen den Server vor der Montage.",
"section": "Speicher und Freigaben · LXC"
},
"privReq": {
"title": "Privilegierter Container erforderlich",
"body": "Der Kernel-<code>mount.cifs</code>-Client benötigt Funktionen (mindestens <code>SYS_ADMIN</code>), die nicht privilegierte LXC-Container nicht bereitstellen. Das Skript erzwingt dies - es fordert Sie auf, einen CT auszuwählen, und <strong>bricht bei unprivilegierten CTs ab</strong>. Wenn Sie die Freigabe in einem unprivilegierten CT benötigen, montieren Sie sie zuerst auf dem Proxmox-Host (mit <hostSambaLink>Samba / CIFS-Freigabe als Proxmox-Speicher</hostSambaLink>) und binden Sie sie mit dem <mountLink>LXC-Mount-Manager</mountLink> in den CT ein."
},
"what": {
"heading": "Was das macht",
"body": "Der Container spricht CIFS über das Netzwerk und montiert die Freigabe selbstständig. Der Proxmox-Host ist nur die Netzwerkbrücke - er sieht oder verwaltet das Mount nicht.",
"diagramServerLabel": "Samba-Server",
"diagramServerDetail": "//srv/share",
"diagramHostLabel": "Proxmox-Host",
"diagramHostDetail": "(nur eine\nNetzwerkbrücke)",
"diagramCtLabel": "LXC (privilegiert)",
"diagramCtDetail": "/mnt/share\nmount.cifs im CT",
"diagramArrow": "CIFS",
"twoWaysTitle": "Zwei Möglichkeiten, einem CT einen Samba-Anteil zu geben - wählen Sie einen",
"twoWaysBind": "<strong>Bind-Mount über den Host</strong> (<mountLink>LXC Mount Manager</mountLink>): Der Host bindet die CIFS-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": "<strong>Direkte CIFS-Montage im CT</strong> (diese Seite): Der CT montiert das CIFS selbst. Erfordert Privilegien. Nützlich, wenn der CT seine eigenen Anmeldeinformationen besitzen muss oder wenn jeder CT mit einem anderen Server spricht."
},
"opening": {
"heading": "Öffnen des Tools",
"body": "Öffnen Sie im Hauptmenü von ProxMenux <strong>Storage &amp; Share Manager → Samba-Client in LXC (nur privilegiert)</strong> konfigurieren. ProxMenux fordert Sie zuerst auf, <strong> das Ziel CT</strong> 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": "Menü Samba Client Manager — Mount / View / Unmount / Test Connectivity"
},
"howRuns": {
"heading": "Wie das Skript läuft (Mount Flow)"
},
"creds": {
"heading": "Wo sich das Passwort befindet",
"body": "ProxMenux <strong>schreibt das Passwort nicht in den Mount-Befehl</strong> oder in <code>/etc/fstab</code>. Stattdessen wird eine Zugangsdaten-Datei im CT angelegt. Sie enthält Klartext-Zugangsdaten mit Nur-Root-Berechtigungen und ist nicht verschlüsselt:",
"whyTitle": "Warum eine separate Datei statt fstab",
"whyBody": "Das CIFS-Modul akzeptiert <code>username=</code> / <code>password=</code> Optionen inline in fstab, aber jeder, der <code>/etc/fstab</code> lesen kann, sieht das Passwort klar. Wenn Sie Anmeldeinformationen in eine Root-only-Datei einfügen und darauf zeigen (<code>credentials=</code>), wird das Passwort aus der weltlesbaren Konfiguration ausgeschlossen."
},
"options": {
"heading": "Mount Optionen erklärt",
"headerOption": "Option",
"headerEffect": "Was es tut",
"rows": [
{
"option": "rw / ro",
"effect": "Read-Write- oder Read-Only-Modus für das gesamte Mount."
},
{
"option": "file_mode=0664",
"effect": "Berechtigungen für Dateien gemeldet über CIFS. Default lässt owner+group schreiben, andere lesen."
},
{
"option": "dir_mode=0775",
"effect": "Gemeldete Verzeichnisrechte. Standardmäßig dürfen Eigentümer und Gruppe das Verzeichnis betreten und Inhalte erstellen; andere dürfen es durchqueren."
},
{
"option": "iocharset=utf8",
"effect": "Erzwingen Sie UTF-8 für Dateinamen, die über den Draht kommen. Vermeidet Mojibake auf Nicht-ASCII-Namen."
},
{
"option": "credentials=file",
"effect": "Lesen Sie Benutzername / Passwort aus der Datei (automatisch für Benutzer auth hinzugefügt)."
},
{
"option": "guest",
"effect": "Authentifizierung als Gast, keine Anmeldeinformationen erforderlich (automatisch hinzugefügt, wenn der Gast ausgewählt wird)."
},
{
"option": "_netdev",
"effect": "Sagt dem init-system, dass dieses mount das netzwerk benötigt. Boot blockiert nicht das Warten darauf."
},
{
"option": "x-systemd.automount",
"effect": "Lazy Mount: nur Mounts beim ersten Zugriff. CIFS-Server, der beim Booten nicht erreichbar ist, stoppt den CT nicht."
},
{
"option": "noauto",
"effect": "Überspringt das sofortige Einhängen beim Booten. Die Automount-Einheit richtet den Mount erst beim ersten Zugriff ein."
}
],
"netEffectTitle": "Nettoeffekt der Fstab Flags",
"netEffectBody": "Das CIFS-Dateisystem wird beim <em>ersten Zugriff</em> 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 CIFS-Ausfall unberührt bleiben."
},
"manual": {
"heading": "Manuelles Äquivalent",
"body": "Replizieren Sie den gesamten Ablauf per Hand – jeder Befehl führt <strong> im CT</strong> über <code>pct exec &lt;ctid&gt; --</code> oder direkt über <code>pct enter &lt;ctid&gt;</code> aus:",
"guestIntro": "Gastvariante — keine Anmeldedatendatei erforderlich:"
},
"view": {
"heading": "Aktuelle Mounts anzeigen",
"body": "Listet jeden CIFS-Einhängepunkt auf, der innerhalb des CT (<code>mount -t cifs</code>) aktiv ist, sowie jede CIFS-Linie im <code>/etc/fstab</code> des CT. Für jeden fstab-eintrag wird der live-mount-status angezeigt - nützlich, um permanente mounts zu erkennen, die beim boot nicht aufgekommen sind."
},
"unmount": {
"heading": "Samba-Freigabe aushängen",
"body": "Fasst aktive Mounts und fstab-Einträge in einer Auswahlliste zusammen. Für den gewählten Eintrag <strong>wird die entsprechende Zeile aus <code>/etc/fstab</code> entfernt</strong>, zusammen mit der zugehörigen Datei mit Zugangsdaten. Das Skript führt kein <code>umount</code> auf dem aktiven Mount aus, sondern weist darauf hin, dass zum Aushängen ein CT-Neustart nötig ist.",
"warnTitle": "Das Skript entfernt fstab-Einträge, nicht Live-Mounts",
"warnBody": "Gleiches Design wie der NFS-Client: <code>umount</code> auf einem belegten Mount schlägt mit \"Device Besetzt\" fehl. Das Entfernen des Fstab-Eingangs garantiert, dass die Mount beim nächsten CT-Start sauber verschwindet. Wenn Sie möchten, dass die Mount <em>sofort</em> verschwunden ist, führen Sie <code>pct exec &lt;ctid&gt; -- umount /mnt/&lt;path&gt;</code> nach Abschluss des Skripts von Hand aus."
},
"test": {
"heading": "Samba Konnektivität testen",
"body": "Diagnose im CT: Prüft, ob <code>cifs-utils</code> installiert ist, listet aktive CIFS-Mounts auf und prüft für jeden in fstab eingetragenen Server Ping → Ports 139/445 → Freigabenliste als Gast. „Authentifizierung erforderlich“ beim Gasttest ist normal, wenn der Server keine öffentlichen Freigaben anbietet."
},
"troubleshoot": {
"heading": "Fehlerbehebung",
"privTitle": "Privilegierter Container erforderlich (Skript bricht ab)",
"privBody": "Der ausgewählte CT ist unprivilegiert. Der Kernel-CIFS-Client benötigt <code>SYS_ADMIN</code>-Fähigkeit, die nicht privilegierte CTs nicht aussetzen. Konvertieren Sie entweder den CT in privilegierte oder verwenden Sie den alternativen Pfad, der in der Warnung oben auf dieser Seite beschrieben ist.",
"aptTitle": "apt-get install fails",
"aptIntro": "Das Skript nimmt eine Debian-Familie CT (<code>apt-get</code>) an. Auf Alpine / Arch / Rocky / Alma installieren Sie den CIFS-Client von Hand:",
"aptItems": [
"Alpine: <code>apk add cifs-utils samba-client</code>",
"Arch: <code>pacman -S cifs-utils smbclient</code>",
"Rocky / Alma: <code>dnf install cifs-utils samba-client</code>"
],
"aptOutro": "Führen Sie dann das ProxMenux-Skript erneut aus - der Installationsschritt überspringt, wenn die Tools bereits vorhanden sind.",
"guestFallbackTitle": "\"Der Server hat Sie als Gast anstelle des angegebenen Benutzers verbunden\"",
"guestFallbackBody": "Die aktive Validierung des Skripts hat ein echtes Auth-Problem aufgefangen. Der server akzeptierte die verbindung, degradierte sie jedoch auf gast, weil die anmeldeinformationen falsch sind. Häufige Ursachen: Tippfehler im Benutzernamen oder Passwort, der Benutzer existiert nicht auf dem Server, der Benutzer ist ausgesperrt oder die Arbeitsgruppe / Domäne ist nicht übereinstimmend. Führen Sie den Ablauf erneut aus und geben Sie die Anmeldeinformationen sorgfältig erneut ein (das Passwort ist im Dialog verborgen).",
"denyTitle": "\"NT_STATUS_ACCESS_DENIED\" bei der Montage",
"denyBody": "Anmeldeinformationen wurden validiert, aber die Freigabe verweigert den Zugang. Überprüfen Sie auf der Serverseite, ob der Benutzer über Berechtigungen für diese bestimmte Freigabe verfügt (die Validierung bestätigt nur die Anmeldung, nicht per-share-ACLs). Überprüfen Sie auch, ob der Server eine bestimmte SMB-Protokollversion benötigt: Fügen Sie <code>vers=3.0</code> (oder <code>2.1</code>, <code>2.0</code>) an die Mount-Optionen an.",
"utf8Title": "UTF-8 / Nicht-ASCII-Dateinamen sind verstümmelt",
"utf8Body": "Die Standardoptionen umfassen <code>iocharset=utf8</code>, aber einige Serverkonfigurationen melden eine unerwartete Codepage. Wenn Dateinamen mit Akzenten / Symbolen falsch aussehen, versuchen Sie auch <code>nounix</code> (einige Linux-Samba-Server benötigen dies, wenn der Client auch Linux ist) oder setzen Sie die Serverseite auf <code>unix extensions = no</code>.",
"bootTitle": "Permanent Mount gelingt, kommt aber nicht beim Booten",
"bootBody": "Fast immer eines von: das Netzwerk ist nicht bereit, wenn die CT-Mounts (die <code>_netdev,x-systemd.automount,noauto</code>-Flags des Skripts beheben dies), 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)."
},
"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-nfs-client",
"label": "NFS-Client in LXC",
"tail": " — verwandte Seite mit demselben Ablauf für NFS-Freigaben."
},
{
"href": "/docs/storage-share/lxc-samba-server",
"label": "Samba-Server in LXC",
"tailRich": " — die umgekehrte Richtung: Ordner <em>aus</em> einem CT über Samba freigeben."
},
{
"href": "/docs/storage-share/host-samba",
"label": "Samba / CIFS als Proxmox-Speicher",
"tail": " — die Freigabe direkt in Proxmox statt in einem einzelnen CT registrieren."
}
]
}
}
@@ -0,0 +1,132 @@
{
"meta": {
"title": "Samba-Server in LXC | ProxMenux Dokumentation",
"description": "Mit ProxMenux einen Samba-Server (SMB / CIFS) in einem Proxmox-LXC-Container betreiben. Installiert samba automatisch und verwaltet /etc/samba/smb.conf, smbpasswd-Benutzer und die Gruppe sharedfiles für per Bind-Mount eingebundene Ordner. Erfordert einen privilegierten Container.",
"ogTitle": "Samba-Server in LXC | ProxMenux Dokumentation",
"ogDescription": "Ordner über SMB/CIFS aus einem privilegierten LXC-Container freigeben. Automatische Installation, smbpasswd-Benutzer und an Bind-Mounts angepasste Berechtigungen."
},
"header": {
"title": "Samba-Server in LXC",
"description": "Führen Sie einen Samba-Server (SMB / CIFS) in einem Proxmox LXC-Container aus und stellen Sie Ordner Windows / macOS / Linux-Clients im Netzwerk aus. ProxMenux installiert samba, erstellt einen Samba-Benutzer mit smbpasswd, verwaltet /etc/samba/smb.conf und wendet bind-mount-bewusste Berechtigungen an, wenn der freigegebene Ordner vom Host stammt.",
"section": "Speicher und Freigaben · LXC"
},
"privReq": {
"title": "Privilegierter Container erforderlich",
"body": "Samba nimmt die Identität des verbindenden Benutzers an mit <code>setgroups()</code> auf jeder Baumverbindung (der Moment, in dem ein Client eine Freigabe öffnet). In einem unprivilegierten LXC lehnt der Kernel diesen Syscall ab, weil der Namespace des Containers mit <code>setgroups=deny</code> erstellt wird – und <code>smbd</code> reagiert, indem er den Worker-Prozess mit <code>PANIC: sys_setgroups failed</code> abbricht. Das Ergebnis ist, dass <code>smbd</code> die Ports 139/445 startet und bindet, aber jede Clientverbindung mit <code>NT_STATUS_CONNECTION_DISCONNECTED</code> fehlschlägt. Das Skript erzwingt aus diesem Grund einen privilegierten CT und <strong>bricht bei unprivilegierten CTs ab</strong>. Es gibt keine saubere Lösung auf der Serverseite; Verwenden Sie einen privilegierten CT oder führen Sie Samba in einer VM aus."
},
"what": {
"heading": "Was das macht",
"body": "Der Container wird zu einem SMB/CIFS-Server: Er führt <code>smbd</code> aus, stellt einen Ordner über <code>/etc/samba/smb.conf</code> frei und akzeptiert Clientverbindungen an den Ports <code>139</code> / <code>445</code>. Clients sehen die Freigabe unter <code>\\\\&lt;ct-ip&gt;\\&lt;share-name&gt;</code> im Windows Explorer, <code>smb://&lt;ct-ip&gt;/&lt;share-name&gt;</code> im macOS Finder oder über <code>mount.cifs</code> unter Linux.",
"diagramServerLabel": "LXC (privilegiert) — Samba-Server",
"diagramServerDetail": "/mnt/data\n(freigegebener Ordner)\n\nsmbd + nmbd laufen\n\nBenutzer: <username>\n(via smbpasswd)\n\nErzwungene Gruppe:\nsharedfiles",
"diagramClientLabel": "Jeder Client im Netzwerk",
"diagramClientDetail": "Windows: \\\\<ip>\\<share>\nmacOS: smb://<ip>/<share>\nLinux: mount.cifs",
"diagramArrow": "SMB / CIFS"
},
"perms": {
"heading": "Zwei Berechtigungspfade abhängig vom Ordnertyp",
"body": "Vor dem Hinzufügen der Freigabe zu <code>smb.conf</code> prüft das Skript, ob der Ordner ein <strong>Bind-Mount vom Host</strong> oder ein normaler <strong>lokaler Ordner im CT</strong> ist. Entsprechend setzt es Eigentümer und Berechtigungen:",
"headerType": "Art des Ordners",
"headerAction": "Was das Skript macht",
"bindType": "Bind-Mount vom Host",
"bindTypeSubRich": "erfasst über <code>mount</code> Ausgang",
"bindActionRich": "Erstellt Gruppe <code>sharedfiles</code> (Standard GID 999, dynamisch, wenn genommen), fügt den Samba-Benutzer hinzu, dann <code>chown root:sharedfiles</code> + <code>chmod 2775</code> (SGID - neue Dateien erben die Gruppe). Wenn der Benutzer immer noch nicht schreiben kann, wendet <code>setfacl -m u:&lt;user&gt;:rwx</code> an.",
"localType": "Lokaler Ordner im CT",
"localTypeSub": "Kein Bind-Mount erkannt",
"localActionRich": "Standardbesitz: <code>chown -R &lt;user&gt;:&lt;user&gt;</code> + <code>chmod -R 755</code>. Keine freigegebene Gruppe erforderlich, da kein anderer CT in diesen Ordner schreibt. Fällt zurück zu <code>setfacl</code>, wenn der Schreibzugriff noch fehlt.",
"gidTitle": "GID für 'sharedfiles' unterscheidet sich vom NFS Server Flow",
"gidBody": "Das Samba-Serverskript verwendet GID <strong>999</strong> für <code>sharedfiles</code>, während der <nfsLink>NFS-Serverablauf</nfsLink> GID <strong>101000</strong> verwendet. Wenn Sie beide Server in demselben CT betreiben und eine einzelne gemeinsame Gruppe für beide Protokolle wünschen, bearbeiten Sie eines von ihnen nach der Installation so, dass es mit dem anderen übereinstimmt (z.B. <code>groupmod -g 101000 sharedfiles</code>) und setzen Sie die Eigentümer der betroffenen Ordner erneut. Dies ist eine bekannte Inkonsistenz in den aktuellen Skripten."
},
"opening": {
"heading": "Öffnen des Tools",
"body": "Öffnen Sie im Hauptmenü von ProxMenux <strong>Storage &amp; Share Manager → Samba-Server in LXC (nur privilegiert)</strong> 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ü mit fünf Optionen:",
"imageAlt": "Samba Server Manager-Menü - Erstellen / Anzeigen / Löschen / Status / Deinstallieren"
},
"howRuns": {
"heading": "Ablauf des Skripts beim Erstellen"
},
"modes": {
"heading": "Die drei Share-Modi",
"intro": "Jeder Modus schreibt einen anderen Konfigurationsabschnitt in <code>smb.conf</code>. Alle drei beinhalten <code>valid users = &lt;username&gt;</code> (nicht anonym), <code>force group = sharedfiles</code> (damit neue Dateien zur freigegebenen Gruppe gehören) und <code>veto files = /lost+found/</code> (versteckt sie vor Clients).",
"headerMode": "Modus",
"headerBlock": "Block geschrieben an smb.conf",
"rwMode": "Lesen und Schreiben",
"roMode": "Schreibgeschützt",
"customMode": "Benutzerdefiniert",
"customBodyRich": "Sie geben Ihre eigenen Direktiven in ein Freitextfeld ein. ProxMenux wickelt sie weiterhin in einen <code>[share]</code>-Block mit den Standards <code>path</code>, <code>valid users</code>, <code>force group</code> und <code>veto files</code> ein."
},
"manual": {
"heading": "Manuelles Äquivalent",
"body": "Führen Sie den gesamten Ablauf von Hand aus. Jeder Befehl läuft <strong>innerhalb des CTs</strong> über <code>pct exec &lt;ctid&gt; --</code> oder <code>pct enter &lt;ctid&gt;</code>:"
},
"connect": {
"heading": "Verbindung von Clients",
"headerOs": "Client-Betriebssystem",
"headerHow": "Wie man verbindet",
"windowsOs": "Windows",
"windowsHowRich": "Datei-Explorer → Adressleiste: <code>\\\\&lt;ct-ip&gt;\\&lt;share-name&gt;</code>. Oder <em>Netzlaufwerk verbinden</em> → „Verbindung mit anderen Anmeldeinformationen herstellen“ aktivieren.",
"macosOs": "macOS",
"macosHowRich": "Finder → <em>Gehe zu → Verbindung zum Server...</em> → <code>smb://&lt;ct-ip&gt;/&lt;share-name&gt;</code>. Oder <code>mount_smbfs //user@&lt;ct-ip&gt;/&lt;share&gt; /mountpoint</code>.",
"linuxOs": "Linux",
"linuxHowRich": "<code>mount -t cifs //&lt;ct-ip&gt;/&lt;share&gt; /mnt/x -o username=&lt;u&gt;,password=&lt;p&gt;,iocharset=utf8</code>. Oder verwenden Sie den <clientLink>Samba-Client auf der LXC</clientLink>-Seite, wenn der Client ein anderer Proxmox CT ist."
},
"view": {
"heading": "Aktuelle Freigaben anzeigen",
"body": "Liest <code>/etc/samba/smb.conf</code> im CT und listet jeden <code>[share]</code>-Block (überspringen <code>[global]</code>, <code>[homes]</code>, <code>[printers]</code>) mit seinem Pfad auf. Nützlich als schnelles Inventar."
},
"delete": {
"heading": "Freigabe löschen",
"body": "Sie können eine Freigabe nach Namen auswählen, den Block aus <code>smb.conf</code> entfernen (<code>sed</code> löscht aus <code>[share]</code> bis zur nächsten leeren Zeile) und <code>smbd</code> neu starten. Der Ordner selbst und sein Inhalt bleiben intakt."
},
"status": {
"heading": "Samba-Status überprüfen",
"body": "Gibt an, ob <code>smbd</code> und <code>nmbd</code> installiert und aktiv sind, listet Samba-Benutzer auf (<code>pdbedit -L</code>) und druckt aktive Sitzungen aus (<code>smbstatus</code>)."
},
"uninstall": {
"heading": "Samba-Server deinstallieren",
"body": "Vollständige Bereinigung nach Bestätigung: stoppt und deaktiviert <code>smbd</code> und <code>nmbd</code>, sichert <code>smb.conf</code> als <code>smb.conf.backup.YYYYMMDD_HHMMSS</code>, entfernt Samba-Benutzer mit <code>smbpasswd -x</code> und die Samba-Pakete mit <code>apt-get purge</code>. Die <strong>exportierten Ordner selbst bleiben erhalten</strong>.",
"warnTitle": "Ordner überleben – Daten separat sichern",
"warnBody": "<em>Freigabe löschen</em> und <em>Samba-Server deinstallieren</em> entfernen die Freigabekonfiguration. Die Daten in den exportierten Ordnern bleiben erhalten. Löschen Sie Daten bei Bedarf nach Abschluss des Skripts ausdrücklich mit <code>rm -rf</code>."
},
"troubleshoot": {
"heading": "Fehlerbehebung",
"privTitle": "Privilegierter Container erforderlich (Skript bricht ab)",
"privBody": "Der ausgewählte CT ist unprivilegiert und <code>smbd</code> kann dort keine Dateien bedienen. Wenn Sie das Gate umgehen und Samba von Hand konfigurieren, startet <code>smbd</code> und die Ports öffnen sich, aber die erste Clientverbindung gerät in Panik mit <code>PANIC: sys_setgroups failed</code> in <code>/var/log/samba/log.&lt;client&gt;</code> und der Client sieht <code>NT_STATUS_CONNECTION_DISCONNECTED</code>. Die Ursache ist der unprivilegierte Benutzernamensraum mit <code>setgroups=deny</code>, der die Per-Verbindungs-Imitation von Samba blockiert. Weder <code>features=keyctl=1</code> noch das Entfernen von <code>force user</code> / <code>force group</code> ändert dies. Die einzigen praktikablen Optionen sind: Wandeln Sie den CT in einen privilegierten CT um oder verschieben Sie Samba in eine VM.",
"aptTitle": "apt-get install schlägt fehl",
"aptIntro": "Das Skript nimmt eine Debian-Familie CT an. Auf Alpine / Arch / Rocky / Alma installieren Sie Samba von Hand:",
"aptItems": [
"Alpine: <code>apk add samba</code>",
"Arch: <code>pacman -S samba</code>",
"Rocky / Alma: <code>dnf install samba</code>"
],
"aptOutro": "Führen Sie danach das ProxMenux-Skript erneut aus; sind die Werkzeuge schon vorhanden, wird die Installation übersprungen.",
"noShareTitle": "Client verbindet sich, sieht aber die Freigabe nicht",
"noShareBody": "Überprüfen Sie, ob <code>browseable = yes</code> im Freigabeblock eingestellt ist (Standard für rw / ro-Modi; möglicherweise fehlt es in benutzerdefinierten). Überprüfen Sie auch die CT-Firewall und die Proxmox-Host-Firewall erlauben TCP 445 (SMB) und 139 (NetBIOS). Einige Windows-Clients benötigen auch eine Namensauflösung - versuchen Sie die IP direkt zuerst.",
"authTitle": "Authentifizierung fehlschlägt (NT_STATUS_LOGON_FAILURE)",
"authBody": "Entweder ist das Passwort falsch (Samba-Passwörter sind von Systempasswörtern <em>getrennt</em>; Samba-Benutzer mit <code>pdbedit -L</code> auflisten) oder der Benutzer fehlt in <code>valid users</code> für diese Freigabe. Setzen Sie das Passwort im CT mit <code>smbpasswd &lt;user&gt;</code> zurück.",
"groupTitle": "Vom Client geschriebene Dateien erscheinen mit falscher Gruppe auf dem Server",
"groupBody": "Das Skript setzt <code>force group = sharedfiles</code> im Freigabeblock, so dass neue Dateien die Gruppe <code>sharedfiles</code> sein sollten. Wenn dies nicht der Fall ist, ist das SGID-Bit im Elternverzeichnis möglicherweise verloren gegangen (jemand hat <code>chmod</code> von Hand ausgeführt). Erneut anwenden: <code>chmod 2775 /mnt/&lt;share&gt;</code>.",
"bothTitle": "Teilen des gleichen Ordners über NFS und Samba",
"bothBody": "ProxMenux verwendet unterschiedliche GIDs für <code>sharedfiles</code> in jedem Skript (Samba: 999, NFS: 101000). Wenn Sie den gleichen Ordner über beide bedienen, entscheiden Sie sich für eine GID und richten Sie beide aus. Die einfachste Lösung: Nachdem Sie beide Skripte ausgeführt haben, bearbeiten Sie die kleinere GID:"
},
"related": {
"heading": "Verwandte Themen",
"items": [
{
"href": "/docs/storage-share/lxc-samba-client",
"label": "Samba-Client in LXC",
"tail": " — umgekehrte Richtung: externe Samba-Freigaben im CT einhängen."
},
{
"href": "/docs/storage-share/lxc-nfs-server",
"label": "NFS Server in LXC",
"tail": "— Geschwisterseite, gleiches Muster mit NFS anstelle von CIFS."
},
{
"href": "/docs/storage-share/host-samba",
"label": "Samba / CIFS als Proxmox-Speicher",
"tailRich": " — Sobald der CT Ordner über Samba freigibt, registrieren Sie die Samba-Freigabe in Proxmox, damit sie unter <em>Datacenter → Storage</em> erscheint."
}
]
}
}