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": "Hôte : ajouter une cible iSCSI comme stockage Proxmox | Documentation ProxMenux",
"description": "Enregistrez une cible iSCSI comme stockage Proxmox avec ProxMenux. L’outil installe open-iscsi, découvre le portail via sendtargets, permet de choisir la cible et exécute pvesm add iscsi. Il fournit des périphériques bloc bruts pour les images disque des VM.",
"ogTitle": "Hôte : ajouter une cible iSCSI comme stockage Proxmox | Documentation ProxMenux",
"ogDescription": "Enregistrer une cible iSCSI comme stockage Proxmox avec découverte guidée. Utilise pvesm add iscsi et fournit des périphériques de blocs bruts pour les disques VM."
},
"header": {
"title": "Hôte : Ajouter une cible iSCSI comme stockage Proxmox",
"description": "Enregistrez une cible iSCSI (à partir d'un SAN, TrueNAS / FreeNAS, Synology, une cible Windows Server, n'importe quel baie compatible avec iSCSI) comme stockage Proxmox. Les LUN exportés apparaissent comme des périphériques de blocs et peuvent héberger des images de disque VM à des performances quasi locales sur le réseau.",
"section": "Stockage et partage · Hôte"
},
"intro": {
"title": "Ce que ça fait",
"body": "ProxMenux enveloppe <code>pvesm add iscsi</code> avec un flux guidé: il installe <code>open-iscsi</code> si nécessaire, demande le portail iSCSI (IP:port), exécute <code>iscsiadm --mode discovery --type sendtargets</code> contre lui, vous permet de choisir une cible IQN, et enregistre le stockage iSCSI dans Proxmox. Le service <code>iscsid</code> maintient ensuite la session iSCSI en vie à travers les reboots."
},
"vocab": {
"heading": "vocabulaire iSCSI (référence rapide)",
"headerTerm": "Terme",
"headerMeaning": "Signification",
"rows": [
{
"term": "Portail",
"meaningRich": "Le point d’accès du service iSCSI sur le serveur cible : une adresse IP (ou un nom d’hôte) et un port TCP. Le port par défaut est <code>3260</code> ; ProxMenux l’utilise si aucun autre n’est indiqué."
},
{
"term": "Cible",
"meaningRich": "Un seul \"serveur\" exporté à l'intérieur du portail, identifié par son IQN (<em>iSCSI Nom qualifié</em>). Un portail peut accueillir de nombreuses cibles."
},
{
"term": "IQN",
"meaningRich": "La forme canonique est <code>iqn.YYYY-MM.reverse.domain:identifier</code>, par exemple <code>iqn.2024-08.com.truenas:proxmox-pool</code>. La cible et l'initiateur ont leur propre IQN."
},
{
"term": "LUN",
"meaningRich": "Un périphérique bloc à l'intérieur d'une cible (numéro d'unité logique). Une seule cible peut exposer plusieurs LUN ; chaque LUN apparaît comme son propre disque dans Proxmox et peut devenir un disque VM."
},
{
"term": "Initiateur",
"meaningRich": "Le client qui se connecte à une cible — dans ce cas, votre hôte Proxmox. L'initiateur a son propre IQN stocké dans <code>/etc/iscsi/initiatorname.iscsi</code>. Les cibles n'acceptent généralement que les sessions des IQN des initiateurs préautorisés."
}
]
},
"opening": {
"heading": "Ouverture de l'outil",
"body": "Depuis le menu principal de ProxMenux, ouvrez <strong>Storage &amp; Share Manager → Ajouter iSCSI Target comme Proxmox Storage</strong>. Vous verrez ce menu sub avec quatre options :",
"imageAlt": "Menu du gestionnaire d'hôtes iSCSI — Ajouter / Afficher / Supprimer / Tester la connectivité"
},
"howRuns": {
"heading": "Comment fonctionne le script (Ajouter le flux)",
"body": "Le flux a deux phases avec une séparation claire entre \"la mise en place de l'initiateur, la découverte des cibles\" et \"l'enregistrement effectif du stockage dans Proxmox\". Contrairement à NFS / Samba, il n'y a pas d'auto-découverte sur le sous-réseau — vous devez connaître l'adresse du portail (iSCSI n'est pas convivial pour la diffusion)."
},
"add": {
"heading": "Ajouter la cible iSCSI comme stockage Proxmox",
"items": [
"<strong>Saisie du portail</strong> — tapez l'IP ou le nom d'hôte du serveur cible iSCSI. Port <code>3260</code> est supposé sauf si vous tapez <code>host:port</code>.",
"<strong>Découverte des cibles</strong> — ProxMenux appelle <code>iscsiadm --mode discovery --type sendtargets --portal &lt;ip:port&gt;</code>. Le serveur répond avec chaque IQN qu'il permet à cet initiateur de voir. Si la découverte échoue, le script affiche l'erreur exacte de <code>iscsiadm</code> et énumère les causes courantes (mauvaise IP, pare-feu, initiateur IQN non autorisé).",
"<strong>Sélection des cibles</strong> — une seule cible est sélectionnée automatiquement; plusieurs cibles affichent un menu.",
"<strong>Storage ID</strong> — par défaut <code>iscsi-&lt;last IQN segment, 20 chars max&gt;</code>. Seulement lettres, chiffres, <code>-</code> et <code>_</code>.",
"<strong>Type de contenu</strong> — contrairement à NFS / Samba, le contenu iSCSI est <strong>fixé à <code>images</code></strong>. iSCSI expose les périphériques de blocs bruts, pas un système de fichiers, donc Proxmox vous permet seulement d'héberger des disques VM sur lui."
],
"authTitle": "Autoriser l'initiateur Proxmox sur la cible",
"authBody1": "Avant que le flux Add ne fonctionne de bout en bout, la cible iSCSI doit connaître votre hôte Proxmox. Obtenez votre initiateur IQN:",
"authBody2": "Ajoutez cet IQN à la liste d’accès de la cible (TrueNAS : <em>Sharing → Block → Initiators Groups</em> ; Synology : <em>SAN Manager → iSCSI → Target → Edit → Initiators</em> ; etc.). Si l’initiateur n’est pas autorisé, la découverte avec <code>iscsiadm</code> renvoie une liste vide ou une erreur d’authentification."
},
"manual": {
"heading": "Équivalent manuel",
"body": "La procédure complète correspond aux commandes suivantes :"
},
"view": {
"heading": "Affichage des stockages iSCSI configurés",
"body": "Liste toutes les entrées iSCSI dans Proxmox (<code>pvesm status | awk ''$2 == \"iscsi\"''</code>) avec portail, cible IQN, type de contenu et statut en direct."
},
"remove": {
"heading": "Supprimer le stockage iSCSI",
"body": "Exécute <code>pvesm remove &lt;storage-id&gt;</code> après avoir confirmé portail, cible et contenu. Seul l’enregistrement Proxmox est supprimé — <strong>la cible iSCSI elle-même n'est pas touchée</strong> et les sessions existantes du côté noyau peuvent durer jusqu'au prochain redémarrage.",
"warnTitle": "Vérifiez d’abord les disques VM existants sur cet iSCSI",
"warnBody": "Supprimer un stockage iSCSI alors que des VM y possèdent encore des disques laisse ces VM pointer vers un stockage absent. Proxmox signale l’erreur, mais les données LUN restent intactes sur la cible : vous pouvez réenregistrer le stockage pour retrouver les disques. Déplacez ou sauvegardez toutefois les VM au préalable par précaution."
},
"test": {
"heading": "Tester la connectivité iSCSI",
"body": "Exécute une passe de diagnostic : vérifie que <code>iscsiadm</code> est installé, imprime votre initiateur IQN, confirme que <code>iscsid</code> fonctionne, pinge chaque portail enregistré, sonde son port, et signale <code>pvesm status</code> plus si une session iSCSI est actuellement active (<code>iscsiadm --mode session</code>). Session active plus portail accessible, mais \"inactive\" dans Proxmox signifie généralement un état obsolète — essayez <code>pvesm set &lt;id&gt; --disable 0</code>."
},
"troubleshoot": {
"heading": "Dépannage",
"portalTitle": "\"Impossible d'atteindre le portail\" mais l'IP du serveur répond ailleurs",
"portalBody": "Ping a échoué sur l'adresse du portail. Vérifiez que vous atteignez l'interface <em>réseau de stockage</em> (iSCSI vit souvent sur un réseau VLAN / sous-net séparé du réseau de gestion). Vérifiez également DNS si vous avez tapé un nom d'hôte.",
"discoverTitle": "\"la découverte iSCSI a échoué\" de l'iscsiadm",
"discoverIntro": "Le script montre l'erreur exacte. Causes les plus courantes:",
"discoverItems": [
"Portal IP / port incorrect (double vérification, par défaut est 3260).",
"Le service iSCSI ne fonctionne pas sur le serveur cible.",
"Pare-feu bloque 3260 entre Proxmox et la cible.",
"<strong>L’IQN de l’initiateur n’est pas autorisé sur la cible.</strong> Cause la plus fréquente sur les baies professionnelles. Ajoutez d’abord l’IQN Proxmox à l’ACL des initiateurs de la cible."
],
"noTargetTitle": "Aucune cible trouvée mais la découverte a réussi",
"noTargetBody": "Le serveur a accepté votre initiateur mais ne lui expose aucune cible. Vérifiez les contrôles d’authentification et d’accès : certaines baies autorisent la découverte pour tous les IQN mais filtrent les cibles visibles par chacun.",
"noLunTitle": "Les LUNs n'apparaissent pas dans /dev/disk/by-path après enregistrement",
"noLunBody": "<code>pvesm add iscsi</code> a réussi mais le noyau ne voit pas les périphériques de blocs. Vérifiez <code>iscsiadm --mode session</code> — Si aucune session n'est active, démarrez manuellement avec <code>iscsiadm --mode node --login</code>. Si une session existe mais qu'aucun LUN n'apparaît, forcez un rescan : <code>iscsiadm --mode session --rescan</code>. Si rien n'est encore fait, la cible n'a probablement pas encore de LUN assigné à cet IQN (configurer la cartographie LUN sur la cible).",
"chapTitle": "Authentification CHAP",
"chapBody": "ProxMenux ne propose pas de champs utilisateur/mot de passe CHAP dans le processus interactif. Si la découverte échoue, le script s’arrête avant <code>pvesm add</code> ; le stockage n’est pas enregistré malgré l’échec. Configurez séparément les exigences CHAP de la cible dans <code>open-iscsi</code>, y compris l’authentification de découverte si nécessaire, puis réessayez. Vérifiez la configuration avec <code>iscsiadm</code> et les sessions actives avec <code>iscsiadm --mode session</code>."
},
"related": {
"heading": "Autres",
"items": [
{
"href": "/docs/storage-share/host-nfs",
"label": "Partage NFS comme stockage Proxmox",
"tail": "— alternative au niveau des fichiers. Plus simple à configurer, plus flexible (backup / ISO / tmpl / images), légèrement plus lent pour les disques en direct VM."
},
{
"href": "/docs/storage-share/host-samba",
"label": "Samba / CIFS comme stockage Proxmox",
"tail": " — une autre option au niveau des fichiers ; à éviter pour les disques des VM actives en raison de la sémantique des verrous."
},
{
"href": "/docs/storage-share/host-local-disk",
"label": "Ajouter le disque local comme stockage Proxmox",
"tail": "— lorsque le disque est local à l'hôte Proxmox, pas sur une autre boîte sur le réseau."
}
]
}
}
@@ -0,0 +1,186 @@
{
"meta": {
"title": "Hôte : Ajouter le disque local comme stockage Proxmox ProxMenux Documentation",
"description": "Formatez un disque SATA, SAS ou NVMe local sur un hôte Proxmox et enregistrez-le comme stockage de type répertoire ou pool ZFS. L’outil vérifie les disques, exige une confirmation avant les opérations destructives, configure fstab par UUID, crée les pools ZFS et utilise pvesm add dir / zfspool.",
"ogTitle": "Hôte : Ajouter le disque local comme stockage Proxmox ProxMenux Documentation",
"ogDescription": "Formatez un disque local et enregistrez-le comme stockage répertoire ou pool ZFS dans Proxmox avec une procédure guidée et des filtres de sécurité."
},
"header": {
"title": "Hôte : Ajouter un disque local comme stockage Proxmox",
"description": "Choisissez un disque physique sur l’hôte Proxmox, formatez-le si nécessaire en ext4, xfs, btrfs ou zfs, puis enregistrez-le comme stockage répertoire avec pvesm add dir ou comme pool ZFS avec pvesm add zfspool. ProxMenux écarte le disque système et les disques utilisés, et annonce chaque opération destructive avant de l’exécuter.",
"section": "Stockage et partage · Hôte"
},
"intro": {
"title": "Ce que ça fait",
"body": "D'autres outils <em>Host</em> dans cette section traitent du stockage <strong>réseau</strong> (NFS / Samba / iSCSI). Celui-ci traite des disques <strong>locaux</strong> — disques de rechange physiquement attachés à votre hôte Proxmox que vous souhaitez utiliser pour les disques, sauvegardes, ISO ou modèles VM. ProxMenux prépare le disque (partitionnement + formatage + montage) et l'enregistre dans Proxmox afin que l'interface utilisateur puisse y placer du contenu."
},
"destructive": {
"title": "Outil destructif pour le chemin 'format'",
"body": "L’option <em>Formater</em> <strong>détruit les partitions et données existantes du disque sélectionné</strong>. ProxMenux affiche un avertissement, filtre les disques utilisés et exige une confirmation avant <code>wipefs</code> / <code>sgdisk</code> / <code>mkfs</code>. Ce n’est pas un écrasement sécurisé de chaque octet. Vérifiez deux fois le chemin du périphérique avant de confirmer."
},
"compare": {
"heading": "Répertoire ou pool ZFS — que choisir ?",
"headerDir": "Répertoire (ext4 / xfs / btrfs)",
"headerZfs": "Pool ZFS",
"rows": [
{
"label": "Type de stockage Proxmox",
"dirRich": "<code>dir</code>",
"zfsRich": "<code>zfspool</code>"
},
{
"label": "Format du disque VM",
"dir": "Fichier qcow2 / raw dans un système de fichiers",
"zfs": "Ensemble de données Native ZFS (zvol) par disque"
},
{
"label": "Instantanés",
"dir": "qcow2 snapshots; btrfs snapshots si fs=btrfs",
"zfs": "Natif, instantané, copie à l'écriture"
},
{
"label": "Allocation fine",
"dir": "Oui (par défaut qcow2)",
"zfs": "Oui (ZFS par défaut)"
},
{
"label": "Besoins en RAM",
"dir": "Faible",
"zfs": "Élevés — ZFS utilise la RAM disponible comme cache ARC"
},
{
"label": "Prend en charge les types de contenu",
"dir": "images, backup, iso, vztmpl, snippets, rootdir",
"zfs": "images et rootdir uniquement (stockage en blocs)"
},
{
"label": "Meilleur pour",
"dir": "Disque à usage général: mélange de disques VM, sauvegardes, ISO",
"zfs": "Pure disque de données VM / LXC avec instantané + besoins d'intégrité"
}
]
},
"opening": {
"heading": "Ouverture de l'outil",
"body": "Dans le menu principal de ProxMenux, ouvrez <strong>Storage &amp; Share Manager → Add Local Disk as Proxmox Storage</strong>. Le sous-menu comporte quatre options :",
"imageAlt": "Menu Local Disk Manager — Ajouter / Afficher / Supprimer / Liste des disques disponibles"
},
"howRuns": {
"heading": "Comment fonctionne le script (Ajouter le flux)",
"body": "La procédure comporte deux phases avec un filtre de sécurité à trois vérifications. Phase 1 découvre les disques sûrs, décide ce qu'il faut faire avec celui choisi et recueille les paramètres de stockage; Phase 2 fait le travail destructeur. Jusqu'à la confirmation finale, le disque est intact."
},
"format": {
"heading": "Formater un disque vide",
"intro": "Le chemin pour un disque frais ou un disque dont le contenu ne vous intéresse pas.",
"items": [
"Choisissez le disque (système / disques en usage sont cachés).",
"Choisissez \"Format disque (ERASE toutes les données)\".",
"Choisissez le système de fichiers — voir le tableau ci-dessus pour les compromis.",
"ID de stockage (<code>disk-&lt;device&gt;</code> par défaut), chemin de montage, préréglage de type contenu.",
"Confirmez dans le dialogue <strong>CONFIRMATION FINALE — LES DONNÉES SERONT EFFACÉES</strong>.",
"ProxMenux efface la table de partitions et crée une partition sur tout le disque. Il exécute <code>mkfs.&lt;fs&gt;</code> ou <code>zpool create</code>, puis monte le résultat. Les systèmes de fichiers classiques reçoivent une entrée UUID dans <code>/etc/fstab</code> avec <code>defaults,nofail</code> ; ZFS utilise la configuration de montage du pool. L’enregistrement utilise <code>pvesm add dir</code> ou <code>pvesm add zfspool</code>."
],
"tipTitle": "Pourquoi UUID + nofail dans /etc/fstab",
"tipBody": "Le script écrit <code>UUID=… /mnt/&lt;id&gt; &lt;fs&gt; defaults,nofail 0 2</code>. UUID survit à la réorganisation de l'appareil à travers les reboots (ainsi <code>/dev/sdc</code> devenir <code>/dev/sdd</code> ne casse pas le démarrage). <code>nofail</code> signifie que si le disque disparaît un jour (défaut de matériel, débranché), Proxmox démarre quand même — le stockage se montrera comme inactif jusqu'à ce que le disque revienne."
},
"reuse": {
"heading": "Réutiliser un système de fichiers existant",
"intro": "Le chemin pour un disque sur lequel vous souhaitez conserver les données — peut-être l'avez-vous déplacé d'un autre hôte Proxmox, ou le disque a déjà des sauvegardes / ISO que vous voulez garder accessible.",
"items": [
"Choisissez le disque.",
"Choisir « Utiliser le système de fichiers existant ».",
"ID de stockage, chemin de montage, préréglage de type contenu.",
"ProxMenux ne touche <strong>pas</strong> aux données : il crée le point de montage, monte le disque, ajoute une entrée UUID à <code>/etc/fstab</code> et l'enregistre en tant que stockage Proxmox <code>dir</code>."
],
"warnTitle": "Le chemin de réutilisation ne gère pas ZFS pools",
"warnBody": "Si le disque contient déjà un pool ZFS, le chemin <em>reuse</em> essaie ici de le monter en tant que système de fichiers régulier — qui échoue. Pour importer un pool ZFS existant, utilisez <code>zpool import &lt;name&gt;</code> sur la ligne de commande, puis enregistrez-le manuellement avec <code>pvesm add zfspool</code>."
},
"presets": {
"heading": "Préréglages de type contenu",
"intro": "ProxMenux propose trois préréglages et une option personnalisée. La liste de contenu choisie est transmise à <code>pvesm add … --content &lt;csv&gt;</code> :",
"headerPreset": "Préréglage",
"headerContent": "Chaîne de contenu",
"headerUse": "Cas d'utilisation",
"rows": [
{
"preset": "Stockage VM",
"content": "images,backup",
"use": "Un magasin de disques VM dédié qui conserve également les sauvegardes de ces VMs à proximité."
},
{
"preset": "NAS standard",
"content": "backup,iso,vztmpl",
"use": "Une archive / disque multimédia — sauvegardes, ISOs et modèles LXC. Pas de disques VM en direct ici."
},
{
"preset": "Tous types",
"content": "images,backup,iso,vztmpl,snippets",
"use": "Ce préréglage étendu active images, sauvegardes, ISO, modèles LXC et snippets. Ajoutez d’autres types pris en charge, comme rootdir, via Personnalisé si nécessaire."
},
{
"preset": "Personnalisé",
"content": "(saisie libre)",
"useRich": "Tapez le CSV exact vous-même, par exemple. <code>images</code> seul ou <code>rootdir,images</code>."
}
],
"zfsTitle": "ZFS pool le contenu est plus étroit",
"zfsBody": "Avec <strong>zfs</strong>, un <code>zfspool</code> accepte uniquement <code>images</code> et <code>rootdir</code>, pas les fichiers ISO ou de sauvegarde. Saisissez une liste compatible via Personnalisé. Le script la transmet sans modification ; des types non pris en charge peuvent faire échouer l’enregistrement. Vérifiez ensuite <code>pvesm status</code>."
},
"manual": {
"heading": "Équivalent manuel",
"extIntro": "Format + enregistrer un disque comme stockage de répertoire ext4 :",
"zfsIntro": "Ou comme un pool ZFS:"
},
"view": {
"heading": "Afficher les stockages de disques",
"body": "Liste tous les stockages Proxmox soutenus par un disque (les deux <code>dir</code> et <code>zfspool</code> qui sont créés par l'utilisateur — système pools comme <code>rpool</code> sont cachés). Affiche le chemin de montage / pool nom, types de contenu et statut en direct."
},
"remove": {
"heading": "Supprimer le stockage du disque",
"body": "Désenregistre le stockage de Proxmox (<code>pvesm remove</code>) et propose de nettoyer l'entrée correspondante dans <code>/etc/fstab</code>. Pour ZFS pools, le script <strong>ne détruit pas</strong> automatiquement le pool — il s'agit d'une étape <code>zpool destroy &lt;name&gt;</code> distincte que vous effectuez manuellement lorsque vous êtes sûr.",
"warnTitle": "Données et dépendances existantes VM",
"warnBody": "La suppression du stockage ne touche pas le système de fichiers ou le pool — les données restent sur le disque. Mais VMs / CTs qui font référence à ce stockage par ID échouera à démarrer après la suppression. Déplacez ces disques VM vers un autre stockage (ou prenez une sauvegarde) avant de les supprimer."
},
"list": {
"heading": "Liste des disques disponibles",
"body": "Une vue diagnostique en lecture seule : imprime la sortie de <code>lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,MODEL</code> suivie des stockages <code>dir</code> / <code>zfspool</code> Proxmox en est déjà au courant. Bon premier arrêt lorsque vous ouvrez l'outil et que vous voulez voir \"ce qui est sur cet hôte?\" avant d'ajouter quelque chose."
},
"troubleshoot": {
"heading": "Dépannage",
"noDisksTitle": "\"Aucun disque disponible trouvé\"",
"noDisksIntro": "Le filtre de sécurité a caché chaque disque. Raisons communes:",
"noDisksItems": [
"Seul le disque racine est présent.",
"Tous les autres disques font partie d'un tableau actif ZFS / LVM / RAID.",
"Chaque disque est référencé par une config VM ou LXC (passthrough).",
"Le disque est en lecture seule (défaillance matérielle ou dispositif de blocage des écritures)."
],
"noDisksOutro": "Utiliser <em>List Disques disponibles</em> dans le menu pour voir la sortie brute <code>lsblk</code> et comprendre ce qui se passe.",
"mountedTitle": "Le format échoue avec \"le dispositif est monté\"",
"mountedBody": "Quelque chose a monté automatiquement le disque (udisksd, un gestionnaire de bureau, une unité de systemd persistante). Démonter : <code>umount /dev/sdX?*</code> ou <code>systemctl stop &lt;whatever-mounts-it&gt;</code>, puis réessayer. Le filtre de sécurité du script devrait avoir des disques cachés montés, donc si vous avez atteint cette erreur, le montage s'est produit entre le menu montrant et vous confirmant.",
"zpoolTitle": "Échec de zpool create : « invalid vdev specification »",
"zpoolBody": "En général, le disque a encore des signatures GPT/LVM/ZFS que <code>zpool</code> refuse d'écraser sans force. Le script exécute <code>wipefs</code> et <code>sgdisk --zap-all</code> avant le format, mais un disque très têtu peut encore avoir une étiquette obstinée. Forcez un nettoyage manuellement : <code>zpool labelclear -f /dev/sdX</code> ou <code>dd if=/dev/zero of=/dev/sdX bs=1M count=10</code> et réessayez.",
"inactiveTitle": "Le stockage s'affiche comme inactif après redémarrage",
"inactiveBody": "Vérifiez <code>findmnt &lt;mount-path&gt;</code> — si le montage est manquant, quelque chose dans <code>/etc/fstab</code> a échoué. <code>dmesg | tail</code> pointe habituellement à la raison (inadéquation UUID, corruption du système de fichiers, <code>nofail</code> a abandonné la réessayer). Un <code>mount -a</code> réactive habituellement le stockage une fois la cause réglée."
},
"related": {
"heading": "Autres",
"items": [
{
"href": "/docs/disk-manager/format-disk",
"label": "Gestionnaire de disques : formater / effacer un disque physique",
"tail": "— alternative de bas niveau lorsque vous voulez simplement préparer un disque sans l'enregistrer comme stockage Proxmox."
},
{
"href": "/docs/storage-share/host-iscsi",
"label": "Ajouter la cible iSCSI comme stockage Proxmox",
"tail": " — équivalent réseau lorsque le périphérique bloc se trouve sur une autre machine."
},
{
"href": "/docs/storage-share/host-local-shared",
"label": "Ajouter un répertoire partagé sur l'hôte",
"tail": " — prépare un répertoire sur l’hôte pour les bind mounts LXC, sans l’enregistrer comme stockage Proxmox."
}
]
}
}
@@ -0,0 +1,103 @@
{
"meta": {
"title": "Hôte : ajouter un répertoire partagé | Documentation ProxMenux",
"description": "Créez un répertoire hôte prêt pour les bind mounts LXC, avec des permissions adaptées aux conteneurs privilégiés et non privilégiés. Sticky bit, rwx pour tous et ACL par défaut pour l’héritage.",
"ogTitle": "Hôte : ajouter un répertoire partagé | Documentation ProxMenux",
"ogDescription": "Préparer un répertoire hôte pour les bind mounts LXC avec des permissions compatibles avec des CT privilégiés et non privilégiés."
},
"header": {
"title": "Host : Ajouter un répertoire partagé sur Host",
"description": "Créer un répertoire hôte conçu pour être monté sur un ou plusieurs conteneurs LXC. ProxMenux applique un ensemble de permissions qui fonctionne à la fois pour les CT privilégiés et non privilégiés à la fois — pas de maux de tête UID décalés, pas de chowns par conteneur — et enregistre le répertoire afin que le gestionnaire de montage LXC puisse le récupérer plus tard.",
"section": "Stockage et partage · Hôte"
},
"intro": {
"title": "Ce que c'est (et n'est PAS)",
"body": "Cet outil n'enregistre <strong>pas</strong> quoi que ce soit dans Proxmox (pas de <code>pvesm add</code> ici). Il prépare simplement un répertoire sur l'hôte — <code>/mnt/shared</code>, par défaut — avec des autorisations que tout conteneur LXC peut lire et écrire, que le CT soit privilégié ou non. L'étape suivante habituelle consiste à le monter en liaison dans chaque CT avec le <mountLink>LXC Mount Manager</mountLink>."
},
"why": {
"heading": "Pourquoi un outil dédié à cette tâche",
"intro": "Lorsque vous liez un répertoire hôte dans un conteneur LXC, les permissions dépendent de :",
"items": [
"Si le CT est <strong>privilégié</strong> (UID 0 du CT = UID 0 de l’hôte) ou <strong>non privilégié</strong> (UID 0 du CT = UID 100000 de l’hôte — tout est décalé de +100000).",
"Le propriétaire du répertoire hôte (un fichier appartenant à l’UID 1000 sur l’hôte relève des permissions « autres » pour un CT non privilégié, car aucun utilisateur du CT ne correspond à cet UID hôte).",
"Indique si plusieurs CT partagent le même répertoire (différents CT peuvent avoir des plages UID différentes)."
],
"outro": "ProxMenux choisit ici une solution pratique : <strong>donner accès à tout le monde</strong> au niveau du système de fichiers, avec rwx pour tous, le sticky bit et des ACL pour l’héritage des permissions. Tout UID mappé peut lire et écrire ; aucun alignement des UID/GID n’est nécessaire."
},
"howRuns": {
"heading": "Comment fonctionne le script",
"body": "Le script n'a pas de menu principal — il exécute une seule action, <strong>Créer répertoire partagé</strong>. Phase 1 recueille le chemin cible; Phase 2 crée le répertoire et applique les permissions."
},
"bits": {
"heading": "Ce que chaque bit de permission fait",
"intro": "Le numéro <strong>1777</strong> n'est pas arbitraire — c'est le même mode que Linux utilise pour <code>/tmp</code>. Trois propriétés combinées:",
"headerBit": "Bit",
"headerEffect": "Effet",
"headerWhy": "Pourquoi c'est important ici",
"rows": [
{
"bit": "1 (sticky bit)",
"effect": "Seuls le propriétaire du fichier, celui du répertoire ou un processus suffisamment privilégié peuvent supprimer ou renommer le fichier.",
"why": "Limite la suppression des fichiers d’autres utilisateurs ayant des UID mappés différents. N’isole pas les CT partageant un UID mappé ou un accès root privilégié."
},
{
"bit": "777 (rwx-rwx-rwx)",
"effect": "Tout le monde peut lire, écrire et traverser.",
"why": "Les UIDs CT non privilégiés (100000+) apparaissent comme des \"autres\" de l'hôte, de sorte que world-rwx leur donne accès."
},
{
"bit": "ACL (par défaut)",
"effect": "Hérité sur chaque fichier / sous-dir nouvellement créé.",
"why": "Le nouveau contenu hérite des ACL par défaut sans réexécuter le script. Les applications peuvent toutefois demander des modes restrictifs ou modifier les permissions ensuite."
}
],
"privTitle": "Les CT privilégiés voient la même chose, juste sans le changement",
"privBody": "Pour un CT privilégié, UID 0 dans le CT est UID 0 sur l'hôte, de sorte que <code>root</code> à l'intérieur du CT peut lire / écrire le répertoire hôte directement. Le <code>1777</code> est toujours bien — cela signifie simplement que les utilisateurs non root à l'intérieur du CT peuvent également utiliser le répertoire. Les mêmes autorisations couvrent les deux cas."
},
"where": {
"heading": "Où mettre le répertoire partagé",
"intro": "Le localisateur offre quatre options :",
"opt1Title": "1. Créer un nouveau dossier dans /mnt",
"opt1Body": "Le choix habituel. Le ProxMenux suggère automatiquement la première dénomination libre (<code>shared</code>, <code>shared2</code>, <code>shared3</code>, ...). Il suffit de confirmer ou de taper un nom différent.",
"opt2Title": "2. Saisissez le chemin personnalisé",
"opt2Body": "Pour les répertoires hors <code>/mnt</code>. Tout chemin absolu fonctionne (par exemple : <code>/srv/media</code>, <code>/data/family</code>). Le script applique les mêmes permissions.",
"opt3Title": "3. Afficher les dossiers existants dans /mnt",
"opt3Body": "Diagnostic en lecture seule : liste chaque répertoire sous <code>/mnt</code> avec ses permissions, son propriétaire et son espace disponible. Utile avant de créer un nouveau pour éviter les collisions de noms.",
"opt4Title": "4. Annuler",
"opt4Body": "Quitte sans rien créer, comme la touche <kbd>Esc</kbd>.",
"tipTitle": "Où vit /mnt ?",
"tipBody": "Par défaut, <code>/mnt</code> se trouve sur le système de fichiers racine Proxmox. Si vous voulez le répertoire partagé sur un disque différent (un disque de données, un pool ZFS), montez ce disque sous <code>/mnt/&lt;name&gt;</code> d'abord (Disk Manager ou <diskLink>Ajouter le disque local comme stockage Proxmox</diskLink>), puis créez le répertoire partagé comme sous-dossier à l'intérieur — ou choisissez \"Entrer le chemin personnalisé\" ici et pointez sur le disque monté."
},
"manual": {
"heading": "Équivalent manuel",
"body": "Tout le flux peut être rejoué à la main:"
},
"next": {
"heading": "Étape suivante : bind mount dans les conteneurs",
"body": "La création du répertoire ne fait que le préparer — aucun conteneur ne le voit encore. Pour le rendre visible à l'intérieur d'un ou plusieurs LXC, utilisez le <mountLink>LXC Mount Manager</mountLink> pour lier le montage de <code>/mnt/&lt;name&gt;</code> dans les CT. Étant donné que les autorisations sont déjà ouvertes, Mount Manager <strong>ne proposera pas</strong> de les modifier : le répertoire est prêt à être utilisé tel quel."
},
"troubleshoot": {
"heading": "Dépannage",
"mkdirTitle": "\"Failed to create directory\"",
"mkdirBody": "Habituellement un problème de système de fichiers: <code>/mnt</code> est sur un système de fichiers en lecture seule, le chemin contient un composant qui n'est pas un répertoire (par exemple, vous avez tapé <code>/etc/passwd/sub</code>), ou le disque est plein. Vérifiez avec <code>df -h /mnt</code> et <code>mount | grep /mnt</code>.",
"writeTitle": "Conteneur ne peut pas écrire malgré les autorisations ouvertes",
"writeBody": "Vérifiez que le CT utilise bien le bind mount (<code>pct config &lt;ctid&gt; | grep ^mp</code>). À l'intérieur du CT, exécutez <code>touch /mnt/data/test-$(date +%s)</code> — si cela échoue avec la permission refusée, le montage peut être sur un système de fichiers hôte qui n'honore pas les ACL (certaines anciennes <code>ext3</code> ou <code>vfat</code> montures). Déplacez le répertoire partagé vers un support ext4 / xfs / btrfs / zfs.",
"aclTitle": "ACL commande silencieusement indisponible",
"aclBody": "Sur une installation Proxmox minimale <code>setfacl</code> / <code>getfacl</code> peuvent ne pas être installés. Le script tombe gracieusement (contrôle <code>command -v setfacl</code>) et n'applique que les permissions POSIX — ce qui est souvent suffisant, mais les nouveaux fichiers n'hériteront pas automatiquement du profil permissif. Installez <code>acl</code> avec <code>apt-get install -y acl</code> et réexécutez le script dans le répertoire."
},
"related": {
"heading": "Autres",
"items": [
{
"href": "/docs/storage-share/lxc-mount-points",
"label": "Gestionnaire de montage LXC",
"tail": "— l'étape suivante naturelle: lier ce répertoire dans un ou plusieurs conteneurs."
},
{
"href": "/docs/storage-share/host-local-disk",
"label": "Ajouter le disque local comme stockage Proxmox",
"tailRich": "— si vous voulez le répertoire partagé sur un disque dédié, préparez le disque d'abord, montez-le sous <code>/mnt</code>, puis créez le sous-dossier partagé ici."
}
]
}
}
@@ -0,0 +1,174 @@
{
"meta": {
"title": "Hôte : monter un partage NFS | Documentation ProxMenux",
"description": "Montez une exportation externe de NFS sur l'hôte Proxmox — soit sous forme de stockage Proxmox (pvesm add nfs), soit sous forme de montage fstab (NON visible dans Datacenter > Storage), ou les deux. La méthode fstab est idéale pour lier le partage dans les conteneurs LXC sans l'exposer comme stockage Proxmox.",
"ogTitle": "Hôte : monter un partage NFS | Documentation ProxMenux",
"ogDescription": "Montez un export NFS externe sur l’hôte Proxmox via pvesm, fstab ou les deux. La méthode fstab convient aux bind mounts LXC."
},
"header": {
"title": "Hôte : monter un partage NFS sur l’hôte",
"description": "Montez une exportation externe de NFS (à partir d'un NAS, d'un autre serveur, d’un partage homelab...) sur l'hôte Proxmox. Choisissez une ou les deux méthodes : enregistrez-la en tant que stockage Proxmox (visible dans Datacenter > Storage) et/ou ajoutez un montage simple /etc/fstab sur un chemin que vous choisissez (utile pour lier le partage dans des conteneurs LXC sans l'exposer comme stockage Proxmox).",
"section": "Stockage et partage · Hôte"
},
"intro": {
"title": "Ce que ça fait",
"body": "ProxMenux propose deux méthodes de montage pour toute exportation de NFS : <strong>(1) Stockage Proxmox</strong> via <code>pvesm add nfs</code> — le partage apparaît dans Datacenter > Stockage et Proxmox gère le montage à <code>/mnt/pve/&lt;id&gt;</code>; <strong>(2) Montage fstab sur l’hôte</strong> sur un chemin que vous choisissez — persistant via <code>/etc/fstab</code>, NON visible comme stockage Proxmox, idéal pour le montage au niveau des conteneurs LXC (l'UI Proxmox reste propre). Vous pouvez exécuter une méthode, l'autre, ou les deux."
},
"opening": {
"heading": "Ouverture de l'outil",
"body": "Dans le menu principal de ProxMenux, ouvrez <strong>Storage &amp; Share Manager → Mount NFS Share on Host</strong>. Le sous-menu comporte quatre options :",
"imageAlt": "Menu NFS Host Manager — Monter / Afficher / Supprimer / Tester la connectivité"
},
"howRuns": {
"heading": "Comment fonctionne le script",
"body": "Le flux a deux phases avec une séparation claire entre \"découvrir, valider et choisir\" et \"en fait monter / écrire config\". Après avoir sélectionné une exportation, vous choisissez les méthodes de montage via une liste de contrôle; le reste des dialogues ne demandent que des paramètres pour les méthodes que vous avez sélectionnées. Jusqu'à la confirmation finale, ni <code>/etc/pve/storage.cfg</code> ni <code>/etc/fstab</code> ne sont touchés."
},
"modes": {
"heading": "Choix de la méthode de montage (une ou deux options)",
"intro": "Après avoir sélectionné et validé l'exportation, ProxMenux affiche une liste de contrôle avec les deux méthodes de montage. Vous pouvez marquer l'un ou l'autre, ou les deux. Si vous appuyez sur OK sans marquer quoi que ce soit, la boîte de dialogue réapparaît jusqu'à ce que vous choisissiez au moins une option ou appuyez sur Annuler pour quitter le flux.",
"imageAlt": "Liste de contrôle des méthodes de montage avec options pvesm et fstab",
"headerMethod": "Méthode",
"headerMount": "Chemin de montage",
"headerUi": "Visible dans Datacenter > Stockage",
"headerUseCase": "Cas d'utilisation typique",
"rows": [
{
"method": "<strong>Comme stockage Proxmox (pvesm)</strong>",
"mountRich": "<code>/mnt/pve/&lt;storage-id&gt;</code> (géré par Proxmox)",
"ui": "Oui",
"useCase": "VM images de disque, sauvegardes, ISOs, modèles LXC — tout ce qui doit apparaître dans l'interface utilisateur Proxmox."
},
{
"method": "<strong>Uniquement le fstab de l'hôte</strong>",
"mountRich": "<code>/mnt/&lt;path&gt;</code> (vous choisissez le chemin)",
"ui": "Non",
"useCaseRich": "Rendre le partage accessible dans un ou plusieurs LXC par bind mount <em>sans</em> l’enregistrer comme stockage Proxmox. Garde l’interface Datacenter claire."
},
{
"method": "<strong>Les deux</strong>",
"mount": "Les deux chemins ci-dessus (deux points de montage du même export NFS)",
"ui": "Oui",
"useCase": "Intégration à l’interface et chemin stable séparé sur l’hôte avec permissions ouvertes pour les bind mounts LXC."
}
],
"bothTitle": "\"Les deux\" crée deux supports indépendants NFS",
"bothBody": "Les deux méthodes sont exécutées séparément : pvesm monte sur <code>/mnt/pve/&lt;id&gt;</code> et fstab sur <code>/mnt/&lt;path&gt;</code>. Cela fournit un montage géré par Proxmox avec ses options par défaut et un montage hôte séparé pour les bind mounts LXC. Deux points de montage ne garantissent pas deux connexions TCP ; le client NFS peut réutiliser les connexions de transport."
},
"pvesmBranch": {
"heading": "Méthode A — En tant que stockage Proxmox (pvesm)",
"intro": "Si <em>Comme stockage Proxmox</em> est marqué, ProxMenux exécute le flux pvesm d'origine:",
"items": [
"<strong>Storage ID</strong> — ce que Proxmox appellera ce stockage. La valeur par défaut est <code>nfs-&lt;server-ip-with-dashes&gt;</code>. Seules les lettres, chiffres, <code>-</code> et <code>_</code> sont acceptés.",
"<strong>Types de contenu</strong> — Proxmox relie les catégories de contenu aux volumes de stockage; choisissez ce que ce NFS peut contenir:"
],
"headerType": "Type de contenu",
"headerAllows": "Ce qu'il permet",
"rows": [
{
"type": "import",
"allowsRich": "Importations d'images de disque (sélectionnées par défaut). Nécessaire pour <em>Importer l'image disque vers VM</em>."
},
{
"type": "backup",
"allowsRich": "Fichiers de sauvegarde VM et CT (<code>vzdump</code>)."
},
{
"type": "iso",
"allows": "Installation des images ISO."
},
{
"type": "vztmpl",
"allows": "Modèles LXC."
},
{
"type": "images",
"allows": "Images disque des VM en cours d’utilisation (ce NFS sert alors au stockage des disques VM)."
},
{
"type": "rootdir",
"allows": "Systèmes de fichiers racine LXC (rare pour NFS – lire la note ci-dessous)."
},
{
"type": "snippets",
"allows": "Scripts de hook et snippets cloud-init."
}
],
"warnTitle": "images et rootdir sur NFS",
"warnBody": "Sélectionner <code>images</code> permet de stocker les disques VM sur NFS. Les performances dépendent du réseau, du serveur et de la charge ; une panne peut bloquer les E/S dépendant du montage. <code>rootdir</code> place les systèmes de fichiers racine LXC sur NFS, où les conteneurs non privilégiés peuvent rencontrer des limites de mappage UID, d’overlay et de propriété. Évaluez ces besoins avant d’y placer <code>images</code> / <code>rootdir</code> ; NFS convient aussi à <code>backup</code> / <code>iso</code> / <code>vztmpl</code>.",
"result": "Le résultat est <code>pvesm add nfs &lt;id&gt; --server &lt;srv&gt; --export &lt;path&gt; --content &lt;csv&gt;</code> et Proxmox se monte automatiquement à <code>/mnt/pve/&lt;id&gt;</code>."
},
"fstabBranch": {
"heading": "Méthode B — Montage fstab de l'hôte uniquement",
"intro": "Si <em>En tant que montage hôte fstab seulement</em> est marqué, ProxMenux demande un chemin de montage hôte et des options persistantes, puis monte et écrit l'entrée à <code>/etc/fstab</code>:",
"items": [
"<strong>Chemin de montage sur l’hôte</strong> — par défaut <code>/mnt/&lt;export-basename&gt;</code>. Ça doit être un chemin absolu. Si quelque chose y est déjà monté, ou si une entrée fstab existe pour le même chemin, ProxMenux vous avertit et vous propose de la remplacer.",
"<strong>Options de montage</strong> — <em>Lecture/écriture</em> (par défaut: <code>rw,hard,nofail,_netdev,rsize=131072,wsize=131072,timeo=600,retrans=2</code>), <em>Lecture seule</em>, <em>Personnalisé</em> (saisissez vos propres options)."
],
"appliesIntro": "Une fois que vous avez confirmé, le script :",
"applies": [
"<code>mkdir -p</code> le chemin de montage.",
"<code>mount -t nfs -o &lt;opts&gt; &lt;srv&gt;:&lt;export&gt; &lt;path&gt;</code>.",
"Écrit une entrée d'une ligne à <code>/etc/fstab</code>: <code>&lt;srv&gt;:&lt;export&gt; &lt;path&gt; nfs &lt;opts&gt; 0 0</code>.",
"Exécute <code>systemctl daemon-reload</code> donc systemd prend la nouvelle entrée fstab.",
"Tente <code>chmod 1777</code> et <code>setfacl o::rwx</code> sur le point de montage, sans signaler l’échec éventuel. Ne réussit que si le serveur NFS le permet ; beaucoup d’exports NAS permettent déjà l’écriture à tous les utilisateurs."
],
"lxcTitle": "Utilisation du montage fstab d'un LXC",
"lxcBody": "Le script affiche une commande <code>pct set</code> pour un bind mount, par exemple <code>pct set &lt;ctid&gt; -mp0 /mnt/&lt;path&gt;,mp=/mnt/&lt;ct-path&gt;,shared=1,backup=0</code>. Vous pouvez aussi utiliser le <mountLink>LXC Mount Manager</mountLink>, qui détecte les montages fstab. <strong>Rien n’est modifié dans le conteneur</strong>. L’accès depuis un CT non privilégié dépend des permissions serveur pour ses UID/GID mappés. Le script tente seulement des changements de permissions depuis l’hôte ; il ne garantit ni export accessible en écriture ni réglages par défaut des fabricants. En cas d’échec, consultez Dépannage.",
"noUiTitle": "Le montage fstab n'est PAS un stockage Proxmox",
"noUiBody": "Le support fstab hôte est invisible à l'interface web Proxmox — par conception. Il n'apparaît pas dans <em>Datacenter > Storage</em>, vous ne pouvez pas le sélectionner dans le créateur VM / CT et les tâches de sauvegarde Proxmox ne peuvent pas le cibler. C'est simplement un chemin du système de fichiers hôte. Si vous voulez aussi intégrer l'interface utilisateur, marquez les méthodes <em>les deux</em> dans le sélecteur."
},
"manual": {
"heading": "Équivalent manuel",
"pvesmIntro": "Méthode A (pvesm) :",
"fstabIntro": "Méthode B (fstab) :"
},
"view": {
"heading": "Affichage configuré NFS stockages",
"body": "Liste toutes les entrées NFS dans Proxmox (<code>pvesm status | awk ''$2 == \"nfs\"''</code>) avec serveur, exportation, types de contenu, chemin de montage et statut en direct. <strong>Note:</strong> cette vue affiche uniquement les stockages enregistrés par pvesm — les montages uniquement par fstab ne sont pas listés ici. Vérifiez ceux avec <code>findmnt -t nfs</code> ou <code>grep nfs /etc/fstab</code>."
},
"remove": {
"heading": "Supprimer le stockage NFS",
"body": "Exécute <code>pvesm remove &lt;storage-id&gt;</code> après une confirmation qui affiche le serveur / export / contenu. Seul l'enregistrement côté Proxmox est supprimé — <strong>le serveur NFS distant lui-même n'est jamais touché</strong>, aucun fichier n'est supprimé. Pour supprimer un montage uniquement fstab, modifiez <code>/etc/fstab</code> à la main et exécutez <code>umount &lt;path&gt;</code>.",
"warnTitle": "Sauvegarder les dépendances d'abord",
"warnBody": "Si les VM, les CT ou les tâches de sauvegarde renvoient encore à ce stockage (par ID), l'enlever les laisse pointer vers un magasin disparu. Proxmox va signaler l'erreur mais pas nettoyer. Déplacez ou supprimez ces références d'abord, puis supprimez le stockage."
},
"test": {
"heading": "Tester la connectivité NFS",
"body": "Exécute une passe diagnostique sur chaque stockage NFS enregistré dans Proxmox : vérifie que <code>showmount</code> est disponible, que <code>rpcbind</code> est en cours d'exécution, pinge chaque serveur, sonde le port 2049, appelle <code>showmount -e</code>, et enfin rapporte la propre vue de Proxmox (<code>pvesm status</code>). Bon premier arrêt quand un stockage affiche comme <em>inactive</em> dans l'interface utilisateur Proxmox."
},
"troubleshoot": {
"heading": "Dépannage",
"noServersTitle": "\"Aucun serveur NFS trouvé sur le réseau\"",
"noServersBody": "Auto-découverte utilise <code>nmap -p 2049 --open &lt;subnet&gt;/24</code>. Le serveur peut ne pas répondre si : il est sur un sous-réseau VLAN /, ses pare-feu bloquent les sondes nmap (beaucoup font) ou le port 2049 est intentionnellement fermé sur cette interface. Utilisez l'option <em>Manual</em> avec l'IP ou le nom d'hôte du serveur.",
"portTitle": "« Le port NFS (2049) est inaccessible »",
"portBody": "Ping a réussi, mais <code>nc -z -w 3 &lt;server&gt; 2049</code> a échoué. Vérifiez que le service NFS fonctionne sur le serveur (<code>systemctl status nfs-server</code> sous Linux, Panneau de configuration → Services de fichiers sur Synology, plugin NFS sur OMV / TrueNAS), et que le pare-feu permet 2049 depuis l'hôte Proxmox.",
"showmountTitle": "« Impossible de se connecter » depuis showmount",
"showmountBody": "Le serveur a refusé la requête de la liste d'exportation. Causes communes : le serveur fait respecter les CLA du client (votre IP Proxmox n'est pas sur la liste autorisée), <code>rpcbind</code> ne fonctionne pas sur le serveur, ou le serveur n'expose que NFSv4 avec <code>showmount</code> désactivé. Le chemin d'exportation peut encore être ajouté manuellement si vous le connaissez.",
"inactiveTitle": "Le stockage est inactif dans l'UI Proxmox",
"inactiveBody": "Lancez <em>Tester la connectivité NFS</em> pour examiner DNS, ports et accès au montage. Si la connexion fonctionne mais que le stockage reste inactif, consultez <code>journalctl -u pvestatd</code> et la configuration serveur/export. Rétablissez d’abord connexion ou permissions. <code>pvesm set &lt;id&gt; --disable 0</code> active un stockage désactivé ; ce n’est pas une réparation générale de NFS.",
"lxcNoWriteTitle": "Le montage fstab fonctionne mais le LXC non privilégié ne peut pas écrire à travers un montage de liaison",
"lxcNoWriteBody": "L’accès NFS dépend des propriétaires, ACL et réglages de squash du serveur. Les options CIFS <code>uid=</code> et <code>file_mode=</code> ne s’appliquent <strong>pas</strong> à NFS. Avec le mappage LXC par défaut, root dans le CT devient l’UID 100000 de l’hôte, pas l’UID distant 0. Autorisez l’UID/GID réellement mappé ou l’identité anonyme du serveur. <code>no_root_squash</code> concerne seulement l’UID distant 0 et ne résout pas tous les cas d’UID 100000. Le script tente <code>chmod 1777</code> sans pouvoir contourner les permissions serveur.",
"fstabBootTitle": "fstab mount ne vient pas après le redémarrage",
"fstabBootBody": "Le script ajoute <code>nofail,_netdev</code> de sorte qu'une part manquante au démarrage ne bloque pas le démarrage. Si le montage n'arrive jamais : confirmez que le réseau est accessible (<code>ping &lt;server&gt;</code>), vérifiez <code>journalctl -u remote-fs.target</code>, et vérifiez que l'entrée est valide avec <code>mount -fav | grep nfs</code>. <code>mount -a</code> après le démarrage monte tout ce qui manque actuellement."
},
"related": {
"heading": "Autres",
"items": [
{
"href": "/docs/storage-share/host-samba",
"label": "Samba / CIFS comme stockage Proxmox",
"tail": "— même schéma de flux (méthode A pvesm + méthode B fstab) pour les partages SMB/CIFS."
},
{
"href": "/docs/storage-share/lxc-mount-points",
"label": "Gestionnaire de montage LXC",
"tailRich": "— lier le chemin <code>/mnt/&lt;path&gt;</code> dans un ou plusieurs conteneurs."
},
{
"href": "/docs/storage-share/lxc-nfs-client",
"label": "Client NFS dans LXC",
"tail": "— alternative: monter NFS directement de l'intérieur d'un conteneur privilégié (sans passer par l’hôte)."
}
]
}
}
@@ -0,0 +1,172 @@
{
"meta": {
"title": "Hôte : monter un partage Samba | Documentation ProxMenux",
"description": "Monter un partage externe de Samba / CIFS sur l'hôte Proxmox — soit sous forme de stockage Proxmox (pvesm add cifs), soit sous forme de montage fstab d'hôte uni avec uid/gid/file_mode ouvert (NON visible dans Datacenter > Storage), ou les deux. La méthode fstab ouvre les permissions afin qu'un montage non privilégié LXC liant le chemin puisse lire/écrire sans aucun changement à l'intérieur du conteneur.",
"ogTitle": "Hôte : monter un partage Samba | Documentation ProxMenux",
"ogDescription": "Montez un partage Samba / CIFS externe sur l’hôte Proxmox via pvesm, fstab avec permissions ouvertes pour les bind mounts LXC, ou les deux."
},
"header": {
"title": "Hôte : monter un partage Samba sur l’hôte",
"description": "Monter un partage externe de Samba (SMB / CIFS) — depuis un NAS, une boîte Windows, une exportation de TrueNAS SMB — sur l'hôte Proxmox. Choisissez une ou les deux méthodes : enregistrez-la en tant que stockage Proxmox (visible dans Datacenter > Storage) et/ou ajoutez un montage simple /etc/fstab sur un chemin que vous choisissez, avec ouvert uid/gid/file_mode afin que les LXC non privilégiés puissent fixer et écrire sans aucun changement à l'intérieur du conteneur.",
"section": "Stockage et partage · Hôte"
},
"intro": {
"title": "Ce que ça fait",
"body": "ProxMenux propose deux méthodes pour un partage Samba : <strong>(1) Stockage Proxmox</strong> via <code>pvesm add cifs</code>, visible dans Datacenter > Storage et monté sur <code>/mnt/pve/&lt;id&gt;</code>. Le mot de passe est conservé en clair dans <code>/etc/pve/priv/storage/&lt;id&gt;.pw</code>, protégé par le répertoire privé accessible uniquement à root : il s’agit d’un contrôle d’accès, pas d’un chiffrement. <strong>(2) Montage fstab de l’hôte</strong> à un chemin choisi, persistant via <code>/etc/fstab</code> avec <code>uid=0,gid=0,file_mode=0777,dir_mode=0777</code> pour permettre l’écriture depuis les montages liés des LXC non privilégiés. Les identifiants se trouvent dans un fichier réservé à root sous <code>/etc/samba/credentials/</code>, jamais directement dans <code>fstab</code>. Vous pouvez utiliser l’une des méthodes ou les deux."
},
"opening": {
"heading": "Ouverture de l'outil",
"body": "Dans le menu principal de ProxMenux, ouvrez <strong>Storage &amp; Share Manager → Mount Samba Share on Host</strong>. Le sous-menu comporte quatre options :",
"imageAlt": "Menu Samba Host Manager — Monter / Afficher / Supprimer / Tester la connectivité"
},
"howRuns": {
"heading": "Comment fonctionne le script",
"body": "Le flux a deux phases. Phase 1: découvrez le serveur, validez les identifiants, choisissez le partage, puis choisissez les méthodes de montage via une liste de contrôle. Phase 2 : seules les méthodes que vous avez marquées sont exécutées. Les identifiants sont nécessaires dès le départ parce que <code>smbclient</code> a besoin de ceux-ci pour lister les partages. Jusqu'à la confirmation finale, ni <code>/etc/pve/storage.cfg</code> ni <code>/etc/fstab</code> ne sont touchés."
},
"modes": {
"heading": "Choix de la méthode de montage (une ou deux options)",
"intro": "Après avoir sélectionné le partage et validé les identifiants, ProxMenux affiche une liste de contrôle avec les deux méthodes de montage. Vous pouvez marquer l'un ou l'autre, ou les deux. Si vous appuyez sur OK sans marquer quoi que ce soit, la boîte de dialogue réapparaît jusqu'à ce que vous choisissiez au moins une option ou appuyez sur Annuler pour quitter le flux.",
"headerMethod": "Méthode",
"headerMount": "Chemin de montage",
"headerUi": "Visible dans Datacenter > Stockage",
"headerUseCase": "Cas d'utilisation typique",
"rows": [
{
"method": "<strong>Comme stockage Proxmox (pvesm)</strong>",
"mountRich": "<code>/mnt/pve/&lt;storage-id&gt;</code> (géré par Proxmox)",
"ui": "Oui",
"useCase": "Sauvegardes, ISOs, modèles LXC — tout ce qui doit apparaître dans l'interface utilisateur Proxmox. Les disques en direct VM sont techniquement pris en charge mais découragés sur CIFS (blocage sémantique)."
},
{
"method": "<strong>Uniquement le fstab de l'hôte</strong>",
"mountRich": "<code>/mnt/&lt;path&gt;</code> avec uid/gid/file_mode ouverts",
"ui": "Non",
"useCaseRich": "Montez le partage dans des LXC par bind mount <em>sans</em> enregistrer de stockage Proxmox. Les permissions locales ouvertes facilitent l’accès des CT non privilégiés, mais le serveur SMB doit toujours autoriser l’utilisateur authentifié à écrire."
},
{
"method": "<strong>Les deux</strong>",
"mount": "Les deux chemins ci-dessus (deux points de montage du même export CIFS)",
"ui": "Oui",
"useCase": "Vous voulez l'intégration de l'interface utilisateur ET un chemin stable côté hôte avec des permissions ouvertes pour les montants de liaison LXC. Le montage pvesm utilise les valeurs par défaut de Proxmox; le montage fstab applique séparément l'uid/gid/file_mode."
}
],
"bothTitle": "« Les deux » crée deux points de montage CIFS",
"bothBody": "pvesm monte sur <code>/mnt/pve/&lt;id&gt;</code> avec les options Proxmox par défaut. fstab monte sur <code>/mnt/&lt;path&gt;</code> avec <code>uid=0,gid=0,file_mode=0777,dir_mode=0777</code> pour l’accès local par bind mounts LXC. Le serveur SMB applique toujours les permissions de l’utilisateur du montage. Deux points de montage ne garantissent pas deux connexions TCP distinctes."
},
"pvesmBranch": {
"heading": "Méthode A — En tant que stockage Proxmox (pvesm)",
"intro": "Si <em>Comme stockage Proxmox</em> est marqué, ProxMenux exécute le flux pvesm d'origine:",
"items": [
"<strong>Storage ID</strong> — par défaut <code>cifs-&lt;server-ip-with-dashes&gt;</code>. Seulement lettres, chiffres, <code>-</code> et <code>_</code>.",
"<strong>Types de contenu</strong> — ce sélecteur ProxMenux propose <strong>6</strong> choix. Il omet <code>rootdir</code> par rapport à NFS ; c’est un choix du script, pas une interdiction des systèmes de fichiers racine LXC dans toutes les versions du backend CIFS Proxmox :"
],
"headerType": "Type de contenu",
"headerAllows": "Ce qu'il permet",
"rows": [
{
"type": "import",
"allows": "Importations d'images de disque (sélectionnées par défaut)."
},
{
"type": "backup",
"allowsRich": "Fichiers de sauvegarde VM et CT (<code>vzdump</code>)."
},
{
"type": "iso",
"allows": "Installation des images ISO."
},
{
"type": "vztmpl",
"allows": "Modèles LXC."
},
{
"type": "images",
"allowsRich": "Images disque des VM en cours d’utilisation — <strong>avertissement dans le dialogue</strong>, voir ci-dessous."
},
{
"type": "snippets",
"allows": "Scripts de hook et snippets cloud-init."
}
],
"warnTitle": "Live VM disques sur CIFS",
"warnBody": "Sélectionner <code>images</code> déclenche un avertissement ProxMenux : CIFS/SMB peut poser des problèmes de verrouillage lors des opérations sur disques VM. Le script recommande NFS mais permet de continuer. Sauvegardes et ISO sont des usages courants de CIFS. Évaluez verrouillage, instantanés, migration et charge avant d’utiliser CIFS pour <code>images</code>.",
"credsTitle": "Où pvesm stocke les identifiants",
"credsBody": "Le mot de passe n’est pas écrit dans <code>/etc/pve/storage.cfg</code>. Proxmox écrit les identifiants en clair dans <code>/etc/pve/priv/storage/&lt;storage-id&gt;.pw</code>, protégé par le répertoire privé du système de fichiers du cluster accessible à <code>root</code>. Ne supposez ni mode fixe <code>0600</code> ni chiffrement. Après un changement de mot de passe serveur, utilisez <code>pvesm set &lt;id&gt; --password &lt;new&gt;</code> ou supprimez puis ajoutez le stockage via ProxMenux."
},
"fstabBranch": {
"heading": "Méthode B — Montage fstab de l'hôte uniquement",
"intro": "Si <em>Montage fstab sur l’hôte uniquement</em> est sélectionné, ProxMenux demande le chemin et les options persistantes, crée un fichier d’identifiants réservé à root en mode utilisateur, puis monte le partage et écrit l’entrée dans <code>/etc/fstab</code> :",
"items": [
"<strong>Chemin de montage sur l’hôte</strong> — par défaut <code>/mnt/&lt;share-name&gt;</code>. Ça doit être un chemin absolu. Si quelque chose y est déjà monté, ou si une entrée fstab existe, ProxMenux propose de la remplacer.",
"<strong>Options de montage</strong> — <em>Lecture/écriture</em> (par défaut: <code>rw,uid=0,gid=0,file_mode=0777,dir_mode=0777,iocharset=utf8,nofail,_netdev</code>), <em>Lecture seule</em> (<code>file_mode=0555,dir_mode=0555</code>), <em>Personnalisé</em> (saisissez vos options). Le script recommande des uid/gid/file_mode ouverts pour les écritures via bind mounts LXC."
],
"credsTitle": "Fichier d’identifiants (mode utilisateur)",
"credsBody": "En mode utilisateur, ProxMenux crée un fichier d’identifiants réservé à root dans <code>/etc/samba/credentials/&lt;server&gt;_&lt;share&gt;.cred</code> (mode <code>0600</code>) avec des lignes <code>username=</code> et <code>password=</code>. L’entrée fstab le référence par l’option <code>credentials=</code> : le mot de passe en clair ne figure pas dans <code>/etc/fstab</code>. En mode invité, l’option <code>guest</code> remplace ce fichier, qui n’est pas créé.",
"appliesIntro": "Une fois que vous avez confirmé, le script :",
"applies": [
"<code>mkdir -p</code> le chemin de montage.",
"<code>mount -t cifs -o &lt;opts&gt;,credentials=&lt;file&gt;</code> (ou <code>guest</code>) <code>//&lt;srv&gt;/&lt;share&gt; &lt;path&gt;</code>.",
"Écrit une entrée d'une ligne à <code>/etc/fstab</code>: <code>//&lt;srv&gt;/&lt;share&gt; &lt;path&gt; cifs &lt;opts&gt; 0 0</code>.",
"Exécute <code>systemctl daemon-reload</code> donc systemd prend la nouvelle entrée fstab."
],
"lxcTitle": "Utilisation du montage fstab d'un LXC non privilégié",
"lxcBody": "Les options CIFS <code>uid=0,gid=0,file_mode=0777,dir_mode=0777</code> ouvrent les permissions locales pour les bind mounts LXC. Les ACL serveur et la sémantique Unix/POSIX négociée peuvent encore limiter l’accès. <strong>Rien n’est modifié dans le conteneur</strong> : ni <code>chown</code> dans le CT, ni groupes, ni édition de <code>/etc/lxc</code>. La ligne <code>mp</code> est gérée dans la configuration Proxmox du CT. Utilisez la commande <code>pct set</code> affichée ou le <mountLink>LXC Mount Manager</mountLink>.",
"noUiTitle": "Le montage fstab n'est PAS un stockage Proxmox",
"noUiBody": "Le support fstab hôte est invisible à l'interface web Proxmox — par conception. Il n'apparaît pas dans <em>Datacenter > Storage</em>, vous ne pouvez pas le sélectionner dans le créateur VM / CT et les tâches de sauvegarde Proxmox ne peuvent pas le cibler. C'est simplement un chemin du système de fichiers hôte. Si vous voulez aussi intégrer l'interface utilisateur, marquez les méthodes <em>les deux</em> dans le sélecteur."
},
"manual": {
"heading": "Équivalent manuel",
"pvesmIntro": "Méthode A (pvesm) :",
"fstabUserIntro": "Méthode B (fstab, auth utilisateur) — fichier d'identification + montage:",
"fstabGuestIntro": "Méthode B (fstab, guest auth) — pas de dossier d'identification:"
},
"view": {
"heading": "Voir les stockages CIFS et montages de l’hôte",
"body": "Affiche les stockages CIFS enregistrés (<code>pvesm status | awk ''$2 == \"cifs\"''</code>) avec serveur, partage, contenu, utilisateur ou <em>Invité</em>, chemin et état. Les mots de passe ne sont <strong>jamais affichés</strong>. <strong>Note :</strong> une seconde section liste les montages fstab de l’hôte, leurs options, le chemin du fichier d’identifiants et leur état actif/inactif. Vérification manuelle avec <code>findmnt -t cifs</code> ou <code>grep cifs /etc/fstab</code>."
},
"remove": {
"heading": "Supprimer un stockage CIFS ou un montage hôte",
"body": "Le sélecteur propose les stockages pvesm et les montages fstab de l’hôte. Pour pvesm, il exécute <code>pvesm remove &lt;storage-id&gt;</code> et Proxmox retire les identifiants associés. Pour fstab, il tente <code>umount &lt;path&gt;</code>, retire l’entrée de <code>/etc/fstab</code> et les identifiants sous <code>/etc/samba/credentials/</code>, puis le répertoire vide si possible. Un échec du démontage exige un démontage manuel ou un redémarrage. <strong>Le serveur Samba distant et ses fichiers restent inchangés</strong>.",
"warnTitle": "Sauvegarder les dépendances d'abord",
"warnBody": "VMs, CTs ou tâches de sauvegarde qui renvoient à ce stockage par ID échoueront après la suppression. Déplacer / laisser tomber ces références avant de supprimer le stockage."
},
"test": {
"heading": "Tester la connectivité Samba",
"body": "Diagnostic de chaque stockage CIFS enregistré dans Proxmox : vérifie la présence de <code>smbclient</code>, teste ping et les ports 445/139, tente de lister les partages en invité et affiche l’état selon Proxmox (<code>pvesm status</code>). « Authentification requise » lors du test invité signifie que le serveur réserve les partages aux utilisateurs authentifiés, ce qui est normal pour la plupart des NAS."
},
"troubleshoot": {
"heading": "Dépannage",
"noServersTitle": "\"Aucun serveur Samba trouvé sur le réseau\"",
"noServersBody": "Auto-découverte utilise <code>nmap -p 139,445</code>. Le serveur peut être sur un sous-réseau différent, pare-feu, ou seulement accessible par hostname (mDNS / WINS). Utilisez l'option <em>Manual</em> avec l'IP ou le nom d'hôte à la place.",
"noSharesTitle": "« Aucun partage accessible trouvé »",
"noSharesBody": "<code>smbclient -L</code> n'a rien retourné pour ces références. Causes : l'utilisateur n'a pas la permission de lister des partages (essayez avec les identifiants d'administrateur une fois, ou entrez le nom du partage manuellement), le serveur a désactivé la visibilité du partage, ou les identifiants sont erronés. Le script vous permet de saisir le nom du partage à la main dans ce cas.",
"denyTitle": "Le montage Proxmox échoue avec NT_STATUS_ACCESS_DENIED",
"denyBody": "Les identifiants pvesm stockés sont hors de synchronisation avec le serveur Samba (mot de passe modifié, compte désactivé, domaine / groupe de travail incorrect). Rentrer les identifiants avec <code>pvesm set &lt;id&gt; --username &lt;u&gt; --password &lt;p&gt;</code> ou supprimer et réajouter de ProxMenux. Si le serveur est dans un domaine AD, ajoutez <code>--domain &lt;DOMAIN&gt;</code> à l'appel <code>pvesm set</code>.",
"sleepTitle": "\"l'hôte est en panne\" ou le statut de stockage est inactif la nuit",
"sleepBody": "Certains appareils NAS mettent SMB à dormir agressivement. <code>pvestatd</code> voit alors le stockage comme inactif jusqu'à ce que le premier accès réveille le NAS. Si c'est cosmétique, rien n'est cassé. Si cela provoque des défaillances de sauvegarde, désactivez la déconnexion au ralenti de SMB sur le NAS ou planifiez des sauvegardes à l'extérieur de la fenêtre de veille.",
"lxcNoWriteTitle": "Le bind mount du LXC non privilégié ne permet pas d’écrire dans le chemin fstab",
"lxcNoWriteBody": "Vérifiez les options voulues avec <code>findmnt /mnt/&lt;path&gt;</code>, par exemple <code>uid=0,gid=0,file_mode=0777,dir_mode=0777</code>. Des permissions locales insuffisantes peuvent bloquer les UID LXC mappés. Réappliquez le profil RW ou adaptez les options personnalisées. Vérifiez aussi les droits serveur de l’utilisateur SMB et si les extensions Unix/POSIX fournissent les modes serveur ; les modes locaux ouverts ne contournent pas les ACL serveur.",
"fstabBootTitle": "fstab mount ne vient pas après le redémarrage",
"fstabBootBody": "Le script ajoute <code>nofail,_netdev</code> de sorte qu'un partage manquant au démarrage ne bloque pas le démarrage. Si le montage n'arrive jamais : confirmez que le réseau est accessible (<code>ping &lt;server&gt;</code>), vérifiez <code>journalctl -u remote-fs.target</code>, vérifiez que le fichier d'identification existe toujours (<code>ls -l /etc/samba/credentials/</code>) et est lisible, et essayez <code>mount -a</code> manuellement."
},
"related": {
"heading": "Autres",
"items": [
{
"href": "/docs/storage-share/host-nfs",
"label": "Partage NFS comme stockage Proxmox",
"tail": "— page soeur avec le même schéma de flux (méthode A pvesm + méthode B fstab) et compromis côte à côte."
},
{
"href": "/docs/storage-share/lxc-mount-points",
"label": "Gestionnaire de montage LXC",
"tailRich": "— lier le chemin <code>/mnt/&lt;path&gt;</code> dans un ou plusieurs conteneurs."
},
{
"href": "/docs/storage-share/lxc-samba-client",
"label": "Client Samba en LXC",
"tail": "— alternative: monter Samba directement de l'intérieur d'un conteneur privilégié (sans passer par l’hôte)."
}
]
}
}
@@ -0,0 +1,135 @@
{
"meta": {
"title": "NFS, Samba, iSCSI et points de montage LXC dans Proxmox — Stockage et partage | ProxMenux",
"description": "Intégrez le stockage externe et local dans Proxmox VE et partagez des dossiers entre l’hôte et les conteneurs LXC. Ajoutez des partages NFS, Samba (CIFS) et des cibles iSCSI comme stockage Proxmox, configurez les bind mounts LXC avec Mount Manager et exécutez des clients et serveurs NFS ou Samba dans les conteneurs.",
"ogTitle": "Proxmox NFS, Samba, iSCSI et LXC Points de montage — Stockage et partage",
"ogDescription": "Intégrez le stockage externe / local dans Proxmox VE — NFS, Samba, enregistrement iSCSI plus les bind mounts LXC et le partage de réseau.",
"twitterTitle": "Proxmox NFS, Samba, iSCSI | ProxMenux",
"twitterDescription": "Ajouter NFS / Samba / iSCSI comme stockage Proxmox et partager des dossiers entre hôte et LXC."
},
"header": {
"title": "Gestionnaire de stockage et de partage",
"description": "Intégrez le stockage externe ou local dans Proxmox VE et partagez des dossiers entre l’hôte et les conteneurs LXC. Trois groupes d’outils : intégration du stockage de l’hôte (enregistrement dans Proxmox), LXC Mount Manager (bind mounts avec gestion pratique des permissions) et partage réseau LXC (procédures client et serveur NFS ou Samba pour des besoins précis).",
"section": "Stockage et partage"
},
"intro": {
"title": "Ce menu sert à",
"body": "Le gestionnaire de disques agit au niveau des <em>disques physiques individuels</em>. Storage &amp; Share Manager agit au niveau supérieur : il <strong>enregistre les pools de stockage et les partages réseau dans Proxmox</strong> (pour que l’interface et l’outil de création de VM puissent les utiliser) et <strong>configure le partage de fichiers entre l’hôte et vos conteneurs</strong>."
},
"opening": {
"heading": "Ouverture du menu",
"body": "Dans le menu principal de ProxMenux, sélectionnez <strong>Storage &amp; Share Manager</strong>. Vous verrez ceci :",
"imageAlt": "Menu Storage & Share Manager avec blocs HOST et LXC"
},
"groups": {
"heading": "Trois groupes d'outils",
"intro": "Le menu se divise en trois groupes. <strong>Intégration du stockage de l’hôte</strong> enregistre le stockage externe ou local dans Proxmox. Le <strong>LXC Mount Manager</strong> est l’outil principal pour partager des dossiers avec les conteneurs : une procédure de bind mount qui gère la correspondance des UID non privilégiés côté hôte. <strong>Partage réseau LXC</strong> couvre quatre scénarios supplémentaires dans lesquels un conteneur doit directement <em>utiliser</em> ou <em>exposer</em> des partages NFS ou Samba.",
"hostTitle": "Stockage de l'hôte",
"hostBody": "Enregistrer le stockage externe et local dans Proxmox via <code>pvesm add …</code>. Une fois enregistré, le stockage apparaît dans l'interface utilisateur Proxmox et est disponible pour les créateurs VM et CT.",
"hostItems": [
"NFS / Samba / iSCSI externes → stockage Proxmox",
"Disque local → Répertoire Proxmox ou stockage ZFS",
"Répertoire local partagé (pour les bind mounts entre CT)"
],
"lxcMountTitle": "Gestionnaire de montage LXC",
"lxcMountBody": "L’outil principal de partage LXC. Il monte les répertoires de l’hôte dans les conteneurs par bind mount via <code>pct set -mpN</code> et gère les particularités des permissions des CT non privilégiés, sans créer de groupe ni d’utilisateur dans le conteneur.",
"lxcMountItems": [
"Fonctionne avec des CT privilégiés et non privilégiés",
"Propose <code>o+rwx</code> sur le répertoire hôte pour les UID non privilégiés",
"Correction des montages CIFS / NFS existants si nécessaire"
],
"lxcNetTitle": "Partage de réseau LXC",
"lxcNetBody": "Quatre procédures supplémentaires pour les conteneurs qui doivent utiliser ou exposer directement des partages NFS ou Samba. Toutes exigent un conteneur <strong>privilégié</strong>.",
"lxcNetItems": [
"<strong>Client</strong> NFS / Samba (utiliser des partages externes)",
"NFS / Samba <strong>serveur</strong> (exposer les dossiers CT)"
]
},
"host": {
"heading": "Intégration du stockage de l'hôte",
"intro": "Enregistrer le stockage dans Proxmox. Chaque option appelle <code>pvesm add …</code> sous le capot, de sorte que le stockage apparaît dans <strong>Datacenter → Storage</strong> et devient disponible pour les créateurs VM / CT.",
"options": [
{
"href": "/docs/storage-share/host-nfs",
"icon": "Network",
"title": "Ajouter un partage NFS comme stockage Proxmox",
"description": "Enregistrez un export NFS externe comme stockage Proxmox avec pvesm add nfs. Proxmox gère le montage, sans ajout dans fstab."
},
{
"href": "/docs/storage-share/host-samba",
"icon": "Share2",
"title": "Ajouter un partage Samba comme stockage Proxmox",
"description": "Enregistrez un partage Samba ou CIFS externe comme stockage Proxmox avec pvesm add cifs. Proxmox gère le montage et les identifiants."
},
{
"href": "/docs/storage-share/host-iscsi",
"icon": "Database",
"title": "Ajouter la cible iSCSI comme stockage Proxmox",
"description": "Connectez-vous à une cible externe iSCSI et enregistrez-la en tant que stockage Proxmox (périphérique bloc) pour les images de disque VM."
},
{
"href": "/docs/storage-share/host-local-disk",
"icon": "HardDrive",
"title": "Ajouter le disque local comme stockage Proxmox",
"description": "Formatez un disque local SATA / SAS / NVMe et enregistrez-le comme stockage de type répertoire ou pool ZFS dans Proxmox."
},
{
"href": "/docs/storage-share/host-local-shared",
"icon": "FolderOpen",
"title": "Ajouter un répertoire partagé sur Host",
"description": "Créer un répertoire hôte destiné à être monté sur plusieurs CT. Pas un stockage Proxmox — purement une ressource côté hôte pour les bind mounts LXC."
}
]
},
"lxcMount": {
"heading": "Gestionnaire de montage LXC",
"intro": "L'outil principal pour le partage des dossiers entre l'hôte Proxmox et les conteneurs LXC. Il utilise <code>pct set -mpN</code> pour relier un répertoire hôte dans le conteneur, et gère les quirks de permission des CT non privilégiés du côté hôte (aucun groupe ou utilisateur ne sont créés à l'intérieur du conteneur).",
"card": {
"title": "Points de montage LXC (hôte ↔ CT)",
"description": "Bind-mount n'importe quel répertoire hôte dans un conteneur LXC via pct set -mpN. Fonctionne avec des CT privilégiés et non privilégiés; offre chmod o+rwx / ACLs sur le répertoire hôte et corrige les montages CIFS / NFS existants au besoin."
}
},
"lxcNet": {
"heading": "Partage de réseau LXC",
"intro": "Utilisez ces procédures quand le conteneur doit <em>être</em> un point d’accès NFS ou Samba : utiliser un partage externe (client) ou exposer ses propres dossiers (serveur). Pour la plupart des partages de fichiers (bind mounts hôte ↔ CT), le <mountLink>LXC Mount Manager</mountLink> est plus simple et ne nécessite pas de conteneurs privilégiés.",
"options": [
{
"href": "/docs/storage-share/lxc-nfs-client",
"icon": "Download",
"title": "Client NFS dans LXC",
"description": "Montez des partages NFS externes depuis un conteneur LXC privilégié. Détection automatique, persistance dans /etc/fstab et démontages propres pris en charge."
},
{
"href": "/docs/storage-share/lxc-samba-client",
"icon": "Download",
"title": "Client Samba en LXC",
"description": "Montez des partages Samba / CIFS depuis un conteneur LXC privilégié. Identifiants stockés de manière protégée et détection automatique disponible."
},
{
"href": "/docs/storage-share/lxc-nfs-server",
"icon": "Upload",
"title": "Serveur NFS dans LXC",
"description": "Exporter des dossiers sur NFS à partir d'un conteneur LXC privilégié."
},
{
"href": "/docs/storage-share/lxc-samba-server",
"icon": "Upload",
"title": "Serveur Samba en LXC",
"description": "Exposer les dossiers sur SMB / CIFS de l'intérieur d'un conteneur privilégié LXC."
}
]
},
"privReq": {
"title": "Exigences concernant les conteneurs privilégiés",
"body": "Les quatre procédures de <strong>partage réseau LXC</strong> ci-dessus exigent un conteneur <strong>privilégié</strong>. Les scripts imposent ce mode pris en charge avant de configurer les services et outils de montage (<code>nfs-kernel-server</code>, <code>smbd</code>, <code>mount.nfs</code>, <code>mount.cifs</code>). Pour partager des fichiers entre l’hôte et un CT non privilégié, utilisez le <mountLink>LXC Mount Manager</mountLink> : il réalise les bind mounts et ajuste les permissions côté hôte pour permettre la lecture et l’écriture sans configurer ces services ou outils dans le conteneur."
},
"unprivExplain": {
"title": "Comment ProxMenux gère les autorisations de CT non privilégiées",
"body": "Les conteneurs LXC non privilégiés décalent leurs UID de <strong>+100000</strong> sur l’hôte (UID 0 du conteneur = UID 100000 de l’hôte, UID 1000 du conteneur = UID 101000 de l’hôte, …). Un fichier créé par un utilisateur du conteneur apparaît donc comme appartenant aux <em>autres</em> sur l’hôte, sans utilisateur ni groupe hôte ordinaire correspondant. LXC Mount Manager propose une solution pratique : plutôt que d’aligner les UID/GID entre hôte et CT, il propose <code>chmod o+rwx</code> et les ACL correspondantes sur le répertoire hôte pour que tout UID mappé puisse lire et écrire. Pour CIFS, il remonte avec <code>uid=0,gid=0,file_mode=0777,dir_mode=0777</code> ; pour NFS, il configure un répertoire accessible en écriture à tous avec sticky bit et, si le serveur applique root squash, indique la correction à effectuer côté serveur."
},
"scripts": {
"heading": "Scripts concernés",
"intro": "Chaque page se connecte au script qui conduit son flux. Le fichier ci-dessous est un helper partagé qui n'est pas documenté comme sa propre page mais est utilisé par plusieurs flux de partage de réseau LXC:",
"itemTail": "— validation CT, sélection de points de montage, contrôle privilégié et helpers de configuration de groupe universels partagés sur les flux client/serveur LXC."
}
}
@@ -0,0 +1,174 @@
{
"meta": {
"title": "Points de montage LXC (hôte ↔ conteneur) | Documentation ProxMenux",
"description": "Le gestionnaire de montages LXC rend tout répertoire de l’hôte accessible dans un ou plusieurs conteneurs LXC par bind mount via pct set -mpN. Il gère les particularités des permissions des conteneurs non privilégiés, corrige les montages CIFS / NFS sur l’hôte et ne modifie rien dans le conteneur.",
"ogTitle": "Points de montage LXC (hôte ↔ conteneur) | Documentation ProxMenux",
"ogDescription": "Montez les répertoires de l’hôte dans les conteneurs LXC par bind mount. Gestion pratique du mappage UID non privilégié et correction des accès CIFS / NFS sur l’hôte."
},
"header": {
"title": "Points de montage LXC (hôte ↔ conteneur)",
"description": "L'outil principal pour le partage des dossiers entre l'hôte Proxmox et les conteneurs LXC. Bind-mount n'importe quel répertoire hôte dans un ou plusieurs conteneurs en utilisant la syntaxe native pct set -mpN de Proxmox. Le point fort : il résout les maux de tête d'autorisation des conteneurs non privilégiés du côté hôte – il ne modifie jamais rien à l'intérieur du conteneur.",
"section": "Stockage et partage · LXC"
},
"intro": {
"title": "Ce que ça fait",
"body": "Prenez un répertoire qui vit sur l'hôte Proxmox (un dossier local, un NAS partagé, un stockage géré par Proxmox...) et faites-le apparaître à l'intérieur d'un conteneur LXC sur un chemin que vous choisissez, avec des permissions qui fonctionnent même pour des conteneurs non privilégiés — sans rien toucher à l'intérieur du conteneur."
},
"bigPicture": {
"heading": "Comment ça marche (la grande image)",
"intro": "Un bind mount demande au noyau de rendre le répertoire <code>X</code> de l’hôte également accessible au chemin <code>Y</code> du conteneur. Aucune copie, synchronisation ou transmission réseau : les deux côtés voient les <em>mêmes fichiers</em> en même temps.",
"sourceLabel": "Hôte Proxmox",
"sourceDetail": "/mnt/data\n(votre dossier)",
"targetLabel": "Conteneur LXC",
"targetDetail": "/mnt/data\n(apparaît ici)",
"arrowLabel": "bind mount",
"outro": "Le chemin de l'hôte à gauche et le chemin du conteneur à droite peuvent être différents — par exemple, <code>/mnt/nas-films</code> sur l'hôte peut devenir <code>/media/films</code> à l'intérieur du conteneur. Le script ajoute l'entrée à la configuration du conteneur (<code>/etc/pve/lxc/&lt;ctid&gt;.conf</code>) en utilisant le prochain index libre <code>mpN</code>, avec deux paramètres de sécurité par défaut:",
"items": [
"<code>shared=1</code> — indique à Proxmox que les données sont partagées et ne doivent pas être migrées avec le CT. Ce drapeau ne réplique rien : le même chemin et les mêmes données doivent déjà être disponibles sur le nœud cible.",
"<code>backup=0</code> — exclut le montage de liaison des sauvegardes <code>vzdump</code> (les données vivent sur l'hôte, vous les sauvegardez séparément)."
]
},
"perms": {
"heading": "Gestion des autorisations — la partie smart",
"intro": "Les bind mounts sont faciles en principe. La partie dure est permissions : un conteneur <strong>non privilégié</strong> LXC déplace chaque UID par <strong>+100000</strong>, donc un fichier créé à l'intérieur du conteneur par l'utilisateur 1000 apparaît sur l'hôte sous le nom d'UID 101000 — un UID que personne ne possède sur l'hôte. Pour que cela fonctionne sans aligner les UIDs sur les hôtes et les conteneurs, ProxMenux applique le bon \"ouvrir les permissions\" sur le côté <em>hôte</em>, selon le type de répertoire que vous avez choisi:",
"headerType": "Type de répertoire hôte",
"headerAction": "Ce que le script offre à faire",
"localType": "Dossier local",
"localTypeSub": "Par exemple /mnt/data",
"localActionRich": "<code>chmod o+rwx</code> + <code>setfacl o::rwx</code> dans le répertoire hôte. Seulement offert si le CT n'est pas privilégié et que les autorisations actuelles sont insuffisantes.",
"cifsType": "CIFS monté / SMB",
"cifsTypeSub": "Par exemple /mnt/pve/cifs-…",
"cifsActionRich": "Remonter avec <code>uid=0, gid=0, file_mode=0777, dir_mode=0777</code> afin que le CT (tout UID) puisse lire et écrire le partage. <code>/etc/fstab</code> est mis à jour.",
"nfsType": "NFS monté",
"nfsTypeSub": "Par exemple /mnt/pve/nfs-…",
"nfsActionRich": "<code>chmod 1777</code> + <code>setfacl o::rwx</code> sur le support NFS. Impossible de surcharger le squashing côté serveur — si même l'hôte root ne peut pas écrire, vous êtes guidé pour corriger l'exportation sur le serveur NFS.",
"privTitle": "Les conteneurs privilégiés n'ont pas besoin de ça",
"privBody": "Pour les conteneurs privilégiés, UID 0 dans le CT est UID 0 sur l'hôte — root à l’intérieur du CT peut lire et écrire le répertoire hôte directement sans aucun tour de permission. Le script détecte cela et saute l'étape \"ouvrir les permissions\" entièrement.",
"noCtTitle": "Le script ne modifie jamais rien à l'intérieur du conteneur",
"noCtBody": "Toutes les modifications d'autorisation se produisent sur le système de fichiers <strong>host</strong>. Pas de chowns <code>pct exec</code>, pas de groupes créés dans le CT, pas de fstab à l'intérieur du conteneur. Si vous réutilisez le répertoire relié dans un autre CT plus tard, les mêmes permissions s'appliquent automatiquement — pas de configuration par conteneur."
},
"writes": {
"heading": "Ce que ProxMenux écrit — et ce qu'il ne fait pas",
"intro": "Une confusion fréquente lors du montage de la liaison dans un CT non privilégié: les gens supposent que ProxMenux doit écrire des entrées <code>lxc.idmap</code> dans <code>/etc/pve/lxc/&lt;CTID&gt;.conf</code>. <strong>Il ne le fait pas.</strong> Une seule ligne est annexée à ce fichier — le montage de liaison lui-même:",
"outro": "La ligne de sortie que vous voyez à la fin de l'exécution, <em>\"Conteneur non privilégié — Offset UID: 100000\"</em>, est purement informative — elle vous indique simplement que le CT utilise la cartographie non privilégiée par défaut de Proxmox (root dans CT = UID 100000 sur l'hôte). Le script ne configure rien autour.",
"twoWaysHeading": "Les deux façons de faire fonctionner les permissions — et pourquoi ProxMenux en choisit une",
"headerApproach": "Approche",
"headerChanges": "Ce que ça change",
"headerWhen": "Quand ça va",
"hostType": "Permissions côté hôte",
"hostTypeSub": "(ce que ce script fait)",
"hostChangesRich": "<code>chmod o+rwx</code> + <code>setfacl o::rwx</code> dans le répertoire hôte. Les UIDs cartographiés du CT (100000+) tombent dans le seau \"autres\", donc ouvrir le <em>autres</em> suffit.",
"hostWhen": "Accès à dossier partagé générique depuis n'importe quel CT. Plusieurs CT partageant le même répertoire hôte. Simple et réutilisable.",
"idmapTypeRich": "<code>lxc.idmap</code>",
"idmapTypeSub": "(non utilisé par ce script)",
"idmapChangesRich": "Carte UID/GID personnalisée dans <code>/etc/pve/lxc/&lt;CTID&gt;.conf</code> plus les entrées correspondantes <code>/etc/subuid</code> + <code>/etc/subgid</code> sur l'hôte. Le CT doit être redémarré sur chaque changement.",
"idmapWhenRich": "Vous avez besoin d'un UID <em>spécifique</em> à l'intérieur du CT pour cartographier un UID <em>spécifique</em> sur l'hôte (p. ex. <code>media:1000</code> dans le CT doit posséder des fichiers comme <code>media:1000</code> sur l'hôte de sorte que NFS ne squash). Une configuration plus rigide, normalement ne vaut que pour ce scénario exact.",
"idmapTipTitle": "Lorsque vous avez réellement besoin de lxc.idmap",
"idmapTipBody": "Utilisez le mappage manuel si les fichiers écrits dans le CT doivent avoir un UID/GID numérique précis sur l’hôte, par exemple pour partager le propriétaire avec un utilisateur de l’hôte. Il ne contourne pas <code>all_squash</code> de NFS : le serveur décide toujours de l’identité anonyme et des permissions. Ajoutez au besoin des entrées <code>lxc.idmap</code> manuellement. La ligne de bind mount en est indépendante."
},
"opening": {
"heading": "Ouverture de l'outil",
"body": "Dans le menu principal de ProxMenux, ouvrez <strong>Storage &amp; Share Manager → Configure LXC Mount Points (Host ↔ Container)</strong>. Le sous-menu comporte trois options :",
"imageAlt": "Menu LXC Mount Manager — Ajouter / Afficher / Supprimer"
},
"addFlow": {
"heading": "Ajouter un montage — procédure complète",
"intro": "La vue technique, pour savoir exactement ce que fait chaque boîte de dialogue :"
},
"sources": {
"heading": "Ce que vous pouvez choisir comme répertoire hôte",
"intro": "Le sélectionneur de répertoire hôte est le plus complet de la section Stockage &amp; Share. Il scanne quatre sources et présente une liste dédoublée :",
"headerSource": "Source",
"headerWhere": "D'où ça vient",
"headerLabel": "Étiquette dans le menu",
"rows": [
{
"source": "Montages en réseau actifs",
"whereRich": "Partages CIFS / NFS actuellement montés, lus dans <code>/proc/mounts</code>.",
"labelRich": "<code>NFS [used/size]</code> ou <code>CIFS/SMB [used/size]</code>"
},
{
"source": "Montages fstab inactifs",
"whereRich": "Défini dans <code>/etc/fstab</code> mais pas actuellement monté.",
"labelRich": "<code>fstab(off)-NFS</code> / <code>fstab(off)-CIFS/SMB</code>"
},
{
"source": "Répertoires locaux",
"whereRich": "Les répertoires Sub sous <code>/mnt</code> qui ne sont pas des montages réseau.",
"labelRich": "<code>Local [size]</code>"
},
{
"source": "Stockages Proxmox",
"whereRich": "Voies de stockage sous <code>/mnt/pve/*</code> (NFS / CIFS enregistrées via <code>pvesm</code>).",
"labelRich": "<code>PVE-NFS</code> / <code>PVE-CIFS/SMB</code> / <code>Proxmox-Storage</code>"
},
{
"source": "Entrée manuelle",
"where": "N'importe quoi d'autre — tapez le chemin absolu vous-même.",
"labelRich": "<em>Saisir le chemin manuellement</em>"
}
],
"tipTitle": "Les chemins internes Proxmox sont filtrés",
"tipBody": "Le sélecteur saute explicitement les chemins Proxmox internes (<code>/mnt/pve/local</code>, <code>/mnt/pve/local-lvm</code>, <code>/mnt/pve/backup</code>, ...) — ceux-ci sont réservés aux internes Proxmox et vous ne devriez pas les fixer. Seuls les stockages ajoutés par l'utilisateur apparaissent."
},
"manual": {
"heading": "Équivalent manuel",
"privIntro": "Pour un conteneur privilégié — le cas le plus simple, pas de tours de permission:",
"unprivLocalIntro": "Pour un conteneur non privilégié avec un répertoire d'hôte local — ouvrir les permissions sur l'hôte d'abord:",
"unprivCifsIntro": "Pour un conteneur non privilégié avec un partage CIFS déjà montée sur l'hôte:"
},
"view": {
"heading": "Afficher les points de montage",
"body": "Liste toutes les entrées <code>mpN</code> sur chaque conteneur de cet hôte Proxmox, regroupées par CT id et montrant le chemin hôte → chemin conteneur plus toutes les options supplémentaires. En lecture seule — utile comme vérification de cohérence avant d'ajouter ou de supprimer quoi que ce soit."
},
"remove": {
"heading": "Supprimer un point de montage",
"body": "Choisissez le contenant, choisissez l'entrée <code>mpN</code>, confirmez. Le script lance <code>pct set --delete mpN</code> pour supprimer l'entrée de la configuration CT et propose de redémarrer le conteneur s'il est en cours d'exécution. Le répertoire hôte et son contenu sont <strong>non touché</strong> — vous pouvez rajouter le montage plus tard (ou attacher le même répertoire à un autre CT).",
"warnTitle": "Les conteneurs en cours d’exécution doivent redémarrer pour appliquer les changements",
"warnBody": "L'ajout et la suppression de points de montage ne deviennent visibles à l'intérieur du conteneur qu'après un redémarrage. Le script offre un <code>pct reboot</code> en un clic à la fin de chaque opération ; vous pouvez décliner et redémarrer manuellement plus tard."
},
"troubleshoot": {
"heading": "Dépannage",
"noMountTitle": "Mont apparaît en pct config mais pas dans le conteneur",
"noMountBody": "Les bind mounts ne sont attachés que lorsque le conteneur démarre. Si vous avez ajouté le montage pendant que le CT était en cours d'exécution, redémarrez-le (<code>pct reboot &lt;ctid&gt;</code>). Si elle est déjà redémarrée et manquante, vérifiez que <code>pct config &lt;ctid&gt;</code> confirme que l'entrée existe et que le chemin hôte contient un répertoire.",
"noWriteTitle": "Le conteneur peut voir le répertoire mais ne peut pas écrire",
"noWriteBody": "Presque toujours un problème de permissions. Pour les conteneurs non privilégiés, lancez à nouveau la correction de l'autorisation du script — les ACL du répertoire hôte peuvent avoir été réinitialisés par un autre outil (rsync, restauration de sauvegarde, manuel <code>chmod</code>). Pour CIFS, double-vérifiez les options de montage sur l'hôte : <code>findmnt /mnt/pve/cifs-…</code>, recherchez les valeurs <code>uid=</code> / <code>gid=</code> / <code>file_mode=</code>.",
"alreadyTitle": "\"Ce chemin est déjà utilisé comme point de montage dans ce conteneur\"",
"alreadyBody": "Vous avez choisi le même chemin de conteneur qui est déjà connecté à un autre répertoire hôte. Soit choisir un chemin de conteneur différent, soit enlever le point de montage existant en premier.",
"nfsTitle": "L'accès NFS est bloqué même après l'application de la correction hôte",
"nfsIntro": "Votre serveur NFS est un squashing root ou toutes les connexions. Le script peut détecter cela (il essaie d'écrire un fichier de test à partir de l'hôte) et affiche des conseils côté serveur. Deux corrections communes côté serveur pour l'exportation:",
"nfsItems": [
"<code>no_root_squash</code> — les CT privilégiés peuvent écrire directement.",
"<code>all_squash,anonuid=65534,anongid=65534</code> — pour les CT non privilégiés."
],
"nfsOutro": "Ces changements se produisent sur le serveur NFS (TrueNAS, Synology, votre exportation personnalisée, ...), pas sur Proxmox.",
"fstabOffTitle": "Le montage des entrées \"fstab(off)\" ne fait rien",
"fstabOffBody": "Le sélecteur affiche les entrées <code>fstab(off)-</code> lorsqu'un montage réseau est défini dans fstab mais pas actuellement monté. Le script vous permet de lier le chemin, mais le répertoire sera vide jusqu'à ce que vous montez réellement le partage (<code>mount &lt;path&gt;</code> sur l'hôte). Montez-le d'abord, puis liez-le au CT."
},
"related": {
"heading": "Autres",
"items": [
{
"href": "/docs/storage-share/host-local-shared",
"label": "Ajouter un répertoire partagé sur l'hôte",
"tailRich": "— première étape typique: préparer un <code>/mnt/shared</code> sur l'hôte avant de le fixer dans un ou plusieurs CTs ici."
},
{
"href": "/docs/storage-share/host-nfs",
"label": "Ajouter un partage NFS comme stockage Proxmox",
"extraHref": "/docs/storage-share/host-samba",
"extraLabel": "Ajouter un partage Samba comme stockage Proxmox",
"joiner": " / ",
"tailRich": "— enregistrer d'abord un partage externe dans Proxmox, puis fixer son chemin <code>/mnt/pve/&lt;id&gt;</code> dans le CT ici."
},
{
"href": "/docs/storage-share/lxc-nfs-client",
"label": "Client NFS dans LXC",
"extraHref": "/docs/storage-share/lxc-samba-client",
"extraLabel": "Client Samba en LXC",
"joiner": " / ",
"tail": "— l'alternative lorsque vous voulez que le CT lui-même monte le partage (exige un conteneur privilégié)."
}
]
}
}
@@ -0,0 +1,128 @@
{
"meta": {
"title": "NFS client en LXC | ProxMenux Documentation",
"description": "Montez des partages NFS directement dans un conteneur LXC Proxmox avec ProxMenux. Installation automatique de nfs-common, découverte sur le LAN, montages persistants via /etc/fstab et paramètres de démarrage sûrs. Nécessite un conteneur privilégié.",
"ogTitle": "NFS client en LXC | ProxMenux Documentation",
"ogDescription": "Montez des partages NFS dans un conteneur LXC privilégié. Découverte automatique, persistance dans /etc/fstab et paramètres de démarrage sûrs."
},
"header": {
"title": "Client NFS dans LXC",
"description": "Montez des partages NFS directement dans un conteneur LXC Proxmox. Le conteneur devient un véritable client NFS : il communique avec le serveur par le réseau, exécute mount.nfs et écrit dans /etc/fstab. ProxMenux installe nfs-common, aide à trouver les serveurs et exports et applique des paramètres de démarrage sûrs.",
"section": "Stockage et partage · LXC"
},
"privReq": {
"title": "Conteneur privilégié requis",
"body": "Le client du noyau <code>mount.nfs</code> a besoin de capacités (<code>SYS_ADMIN</code> au minimum) que les conteneurs non privilégiés LXC n'exposent pas. Le script force cela — il vous demande de choisir un CT et <strong>s’arrête s'il n'est pas privilégié</strong>. Si vous avez besoin du partage à l'intérieur d'un CT non privilégié, montez-la d'abord sur l'hôte Proxmox (avec <hostNfsLink>NFS en tant que stockage Proxmox</hostNfsLink>) et montez-la par bind mount dans le CT avec le <mountLink>LXC Mount Manager</mountLink>."
},
"what": {
"heading": "Ce que ça fait",
"body": "Contrairement au gestionnaire de montage LXC — ce qui fait que le CT voit quelque chose <em>via</em> l'hôte Proxmox — ce script donne au conteneur son <strong>propre client NFS</strong>: il parle NFS sur le réseau, monte des partages directement du serveur NFS et stocke le montage dans le <code>/etc/fstab</code> du conteneur. L'hôte Proxmox n'est pas dans le chemin de données.",
"diagramServerLabel": "Serveur NFS",
"diagramServerDetail": "/export/data",
"diagramHostLabel": "Hôte Proxmox",
"diagramHostDetail": "(seulement un\npont réseau)",
"diagramCtLabel": "LXC (privilégié)",
"diagramCtDetail": "/mnt/data\nmount.nfs dans le CT",
"diagramArrow": "NFS",
"twoWaysTitle": "Deux façons de donner un accès CT NFS — choisissez une",
"twoWaysBind": "<strong>Montage par host</strong> (<mountLink>LXC Mount Manager</mountLink>) : l'hôte monte le NFS une fois, chaque CT reçoit le même chemin par bind mount. Fonctionne avec des CT non privilégiés. Recommandé lorsque plusieurs CT ont besoin de le même partage.",
"twoWaysDirect": "<strong>Montage NFS direct dans le CT</strong> (cette page) : le CT monte NFS lui-même. Exige un CT privilégié. Utile si le CT doit gérer sa propre connexion et ses identifiants ou si chaque CT utilise un serveur différent."
},
"opening": {
"heading": "Ouverture de l'outil",
"body": "Dans le menu principal de ProxMenux, ouvrez <strong>Storage &amp; Share Manager → Configurer le client NFS dans LXC (privilégié uniquement)</strong>. Choisissez d’abord <strong>le CT cible</strong> ; ProxMenux le démarre s’il est arrêté et abandonne s’il n’est pas privilégié. Le sous-menu suivant s’affiche ensuite :",
"imageAlt": "Menu NFS Client Manager — Montage / Vue / Démonter / Tester la connectivité"
},
"howRuns": {
"heading": "Comment fonctionne le script (mount flow)"
},
"fstabFlags": {
"heading": "Pourquoi ces drapeaux fstab",
"intro": "Pour les montages permanents, le script ajoute trois drapeaux au-delà des options standard NFS : <code>_netdev,x-systemd.automount,noauto</code>. Chacun résout un vrai problème de démarrage :",
"headerFlag": "Drapeau",
"headerEffect": "Ce qu'il fait",
"rows": [
{
"flag": "_netdev",
"effect": "Indique au système d’initialisation que ce montage nécessite le réseau. Le démarrage n’attend pas ce montage avant que le réseau soit disponible."
},
{
"flag": "x-systemd.automount",
"effectRich": "Crée une unité de montage automatique systemd : le montage n'arrive que la première fois que quelque chose accède à <code>/mnt/&lt;path&gt;</code>. Le serveur NFS inaccessible au démarrage ne bloque pas le CT."
},
{
"flag": "noauto",
"effect": "Évite le montage immédiat au démarrage. Avec l’unité automount ci-dessus, le montage n’a lieu qu’au premier accès."
}
],
"netEffectTitle": "Effet net",
"netEffectBody": "Le système de fichiers NFS est monté au <em>premier accès</em> plutôt qu’immédiatement au démarrage. Si le serveur est hors ligne, cet accès peut attendre ou échouer et affecter les services qui dépendent du chemin. Automount réduit la dépendance au démarrage, sans garantir que tous les services du CT restent épargnés."
},
"manual": {
"heading": "Équivalent manuel",
"body": "Répliquez l'ensemble du flux à la main — chaque commande exécute <strong> à l'intérieur du CT</strong> via <code>pct exec &lt;ctid&gt; --</code> ou directement via <code>pct enter &lt;ctid&gt;</code>:"
},
"view": {
"heading": "Afficher les montages actuels",
"body": "Liste tous les points de montage NFS actifs à l'intérieur du CT (<code>mount | grep nfs</code>) plus toutes les lignes NFS du CT du <code>/etc/fstab</code>. Pour chaque entrée fstab, l'état de montage en direct est affiché — utile pour repérer les montages permanents qui ne sont pas apparus au démarrage."
},
"unmount": {
"heading": "Démonter le partage NFS",
"body": "Combine les montages live et les entrées fstab dans une seule liste, vous permet d'en choisir une et <strong>supprime la ligne correspondante de <code>/etc/fstab</code></strong>. Le script <em>n'exécute pas</em> <code>umount</code> sur le montage en direct ; à la place, il vous indique qu'un redémarrage CT est nécessaire pour que le démontage prenne effet.",
"warnTitle": "Le script supprime les entrées fstab, pas les montages en direct",
"warnBody": "C'est un choix de conception délibéré : <code>umount</code> sur une monture occupée échoue avec \"appareil occupé\" quand quelque chose à l'intérieur du CT l'utilise encore. La suppression de l'entrée fstab garantit que le montage disparaît proprement lors du prochain démarrage CT. Si vous voulez que le montage soit parti <em>maintenant</em> et vous êtes sûr que rien ne l'utilise, exécutez <code>pct exec &lt;ctid&gt; -- umount /mnt/&lt;path&gt;</code> à la main après la fin du script."
},
"test": {
"heading": "Tester la connectivité NFS",
"body": "Pass diagnostique à l'intérieur du CT: confirme que le <code>nfs-common</code> est installé, <code>rpcbind</code> est en cours d'exécution, liste les montages NFS, puis itération sur chaque serveur NFS référencé dans fstab et vérifie ping → port 2049 → <code>showmount -e</code>. Bon premier arrêt quand une monture permanente n'arrive pas."
},
"troubleshoot": {
"heading": "Dépannage",
"privTitle": "Conteneur privilégié requis (le script s’arrête)",
"privBody": "Le CT sélectionné n'est pas privilégié. Le client du noyau NFS a besoin de la capacité <code>SYS_ADMIN</code> que les CT non privilégiés n'exposent pas. Soit convertir le CT en privilège (la conversion du gestionnaire de disque &amp; est documentée dans le disque <importLink>Importer en LXC</importLink> page) soit utiliser le chemin alternatif décrit dans l'avertissement en haut de cette page.",
"aptTitle": "apt-get install nfs-common fails",
"aptIntro": "Le script suppose une famille Debian CT (<code>apt-get</code>). Si le CT tourne Alpine / Arch / Rocky / Alma, l'étape d'installation échoue silencieusement. Installez le client NFS à la main pour cette 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": "Ensuite, lancez le script ProxMenux — l'étape d'installation saute lorsque les outils sont déjà présents.",
"portTitle": "\"NFS port (2049) is not accessible\"",
"portBody": "Ping a réussi, mais <code>nc -z &lt;server&gt; 2049</code> a échoué de l'intérieur du CT. Vérifiez que le service NFS fonctionne sur le serveur, que le pare-feu permet 2049 à partir du réseau de CT et que le CT a en fait une route réseau valide (essayez <code>pct exec &lt;ctid&gt; -- ip route</code>).",
"bootTitle": "Le montage permanent réussit mais ne vient pas au démarrage",
"bootBody": "Presque toujours : le réseau n'est pas prêt lorsque le CT monte (les drapeaux du script <code>_netdev,x-systemd.automount,noauto</code> corrigent cela – rajouter le montage via le script si vous avez écrit la ligne fstab à la main sans ces derniers), le serveur est inaccessible au démarrage (le montage automatique attend le premier accès, c'est normal), ou le DNS n'est pas résolu au démarrage (utiliser l'IP du serveur, pas son nom d'hôte).",
"squashTitle": "Serveur squashes root, aucun accès d'écriture à partir de l'intérieur CT",
"squashIntro": "L'exportation de NFS utilise <code>root_squash</code> (par défaut) et le CT écrit comme racine. Deux options :",
"squashItems": [
"Côté serveur : changez l'exportation en <code>no_root_squash</code> (seulement si vous faites confiance au CT).",
"Côté CT : écrivez avec un utilisateur non root accepté par le serveur ou ajustez le propriétaire du partage avec chown."
],
"squashOutro": "ProxMenux ne peut pas corriger cela — c'est la politique du serveur."
},
"related": {
"heading": "Autres",
"items": [
{
"href": "/docs/storage-share/lxc-mount-points",
"label": "Points de montage LXC (hôte ↔ conteneur)",
"tail": "— l'alternative pour les CT non privilégiés: monter sur l'hôte, lier dans CT."
},
{
"href": "/docs/storage-share/lxc-samba-client",
"label": "Client Samba en LXC",
"tail": " — page associée avec la même approche pour les partages SMB / CIFS."
},
{
"href": "/docs/storage-share/lxc-nfs-server",
"label": "Serveur NFS dans LXC",
"tailRich": "— l'inverse: exposer les dossiers <em>de</em> un CT sur NFS."
},
{
"href": "/docs/storage-share/host-nfs",
"label": "Partage NFS comme stockage Proxmox",
"tail": " — enregistrer le partage dans Proxmox lui-même plutôt que dans un seul CT."
}
]
}
}
@@ -0,0 +1,159 @@
{
"meta": {
"title": "NFS serveur dans LXC | ProxMenux Documentation",
"description": "Partagez des dossiers via NFS depuis un conteneur LXC Proxmox avec ProxMenux. Installation automatique de nfs-kernel-server, groupe commun sharedfiles, configuration de /etc/exports, ACL réseau et désinstallation complète. Nécessite un conteneur privilégié.",
"ogTitle": "NFS serveur dans LXC | ProxMenux Documentation",
"ogDescription": "Exécutez un serveur NFS dans un LXC privilégié avec le groupe commun sharedfiles, des ACL réseau et une désinstallation complète."
},
"header": {
"title": "Serveur NFS dans LXC",
"description": "Exécutez un serveur NFS du noyau dans un conteneur LXC Proxmox et exposez des dossiers aux autres machines du réseau. ProxMenux installe nfs-kernel-server, configure le groupe commun sharedfiles pour faciliter le partage entre plusieurs CT privilégiés, gère /etc/exports et propose une désinstallation complète.",
"section": "Stockage et partage · LXC"
},
"privReq": {
"title": "Conteneur privilégié requis",
"body": "<code>nfs-kernel-server</code> doit monter le système de fichiers du noyau <code>nfsd</code> sur <code>/proc/fs/nfsd</code>. Cela exige <code>CAP_SYS_ADMIN</code> dans l’espace de noms du noyau hôte, pas seulement dans celui des utilisateurs du conteneur. Les LXC non privilégiés n’ont pas cette capacité : <code>rpc.nfsd: Unable to access /proc/fs/nfsd errno 2 (No such file or directory)</code> ; systemd signale un échec de dépendance pour <code>nfs-server.service</code>. Le script exige donc un CT privilégié et <strong>s’arrête si le CT n’est pas privilégié</strong>. Une autre possibilité consiste à placer le serveur NFS dans une VM."
},
"what": {
"heading": "Ce que ça fait",
"body": "C’est l’inverse de la page <em>client NFS</em> : le CT devient un <strong>serveur NFS</strong> et expose son propre dossier à d’autres CT, à l’hôte Proxmox, à des VM ou à des machines physiques.",
"diagramServerLabel": "LXC (privilégié) — Serveur NFS",
"diagramServerDetail": "/mnt/data\n(dossier exposé)\n\nchown root:sharedfiles\nchmod 2775 (SGID)\n\nnfs-kernel-server\n+ rpcbind en cours d’exécution",
"diagramClientLabel": "Tout client sur le réseau",
"diagramClientDetail": "un autre CT, l'hôte,\nun VM, une machine physique...",
"diagramArrow": "Exportation NFS"
},
"shared": {
"heading": "Le groupe commun « sharedfiles »",
"body": "Avant d'exporter le dossier, ProxMenux crée un groupe appelé <code>sharedfiles</code> avec <strong>GID 101000</strong> à l'intérieur du conteneur, y ajoute chaque utilisateur régulier, puis définit le répertoire d'exportation à <code>root:sharedfiles</code> avec le mode <code>2775</code>. Le <code>2</code> à l'avant est le bit SGID — chaque fichier ou dossier créé à l'intérieur hérite automatiquement du groupe <code>sharedfiles</code>.",
"gidTitle": "Pourquoi GID 101000 spécifiquement",
"gidBody": "Avec le mappage LXC par défaut (+100000), le GID 101000 de l’hôte apparaît comme GID <strong>1000</strong> dans un CT non privilégié. Ce serveur utilise un CT <strong>privilégié</strong>, sans décalage. Deux CT privilégiés utilisant <code>sharedfiles</code> avec le GID 101000 partagent donc le même identifiant numérique de groupe.",
"remapTitle": "La création héritée des utilisateurs « remap_* » est ignorée pour les CT privilégiés",
"remapBody": "L’ancienne branche pour les CT non privilégiés créerait des utilisateurs <code>remap_&lt;uid&gt;</code> avec l’UID <code>&lt;uid&gt; + 100000</code>, tous dans <code>sharedfiles</code>, pour les utilisateurs ordinaires et les UID courants (33, 1000, 1001, 1002). Ce décalage de <code>+100000</code> ne s’applique pas aux CT <strong>privilégiés</strong> exigés ici ; le script ignore donc cette branche. L’absence de comptes <code>remap_*</code> dans <code>getent passwd</code> est normale et n’indique pas une erreur."
},
"defaults": {
"heading": "Options d'exportation par défaut — lire cette première",
"warnTitle": "Les options par défaut incluent no_root_squash",
"warnBody": "ProxMenux utilise par défaut <code>rw,sync,no_subtree_check,'<'strong'>'no_root_squash'<'/strong'>'</code>. <strong>Tout utilisateur root d’un client peut écrire comme root sur l’export.</strong> Réservez cette option à un réseau local de confiance. Si le CT est accessible depuis un réseau non fiable (VPS ou VLAN non fiable), <strong>remplacez l’option par <code>root_squash</code></strong> dans le dialogue des options personnalisées."
},
"opening": {
"heading": "Ouverture de l'outil",
"body": "Dans le menu principal, ouvrez <strong>Storage & Share Manager → Configure NFS Server in LXC</strong>. Seuls les CT privilégiés sont proposés. Choisissez le CT cible ; le script le démarre s’il est arrêté et refuse les CT non privilégiés. Le menu comporte cinq options.",
"imageAlt": "Menu NFS Server Manager — Créer / Afficher / Supprimer / Statut / Désinstaller"
},
"howRuns": {
"heading": "Comment fonctionne le script (Créer le flux)"
},
"network": {
"heading": "Réseau ACL — qui peut monter le partage",
"intro": "<code>/etc/exports</code> détermine quels clients peuvent monter l’export. Le dialogue propose trois modes :",
"headerMode": "Mode",
"headerValue": "Valeur écrite pour /etc/exports",
"headerWhen": "Quand le choisir",
"rows": [
{
"mode": "Réseau local",
"value": "192.168.0.0/16",
"whenRich": "Pour les réseaux domestiques ou de petite entreprise habituels. Couvre toutes les adresses <code>192.168.*.*</code>."
},
{
"mode": "Sous-réseau personnalisé",
"value": "votre CIDR (par exemple 10.0.0.0/24)",
"when": "Lorsque votre LAN n'est pas dans 192.168.x.x ou que vous voulez une portée plus étroite."
},
{
"mode": "Un seul hôte",
"value": "votre IP (par exemple 10.0.0.42)",
"when": "Seule une machine précise peut monter l’export. Option la plus restrictive."
}
]
},
"options": {
"heading": "Options d'exportation expliquées",
"headerOption": "Option",
"headerEffect": "Ce qu'il fait",
"rows": [
{
"option": "rw / ro",
"effect": "Autoriser les clients à lire et écrire, ou à lire uniquement."
},
{
"option": "sync",
"effectRich": "Ne répond aux écritures qu’une fois les données sur disque. Plus sûr que <code>async</code>, au prix d’un débit réduit."
},
{
"option": "no_subtree_check",
"effect": "Évite de vérifier à chaque requête que le fichier appartient encore au sous-arbre exporté. Plus rapide et évite les problèmes si des fichiers sont renommés pendant l’opération."
},
{
"option": "no_root_squash",
"effectRich": "<strong>Faire confiance à root sur le client.</strong> Un client monté par root écrit comme root sur le serveur. Convient aux LAN de confiance, par exemple pour préserver les propriétaires lors des sauvegardes. Remplacez cette option par <code>root_squash</code> si vous ne faites pas entièrement confiance à chaque machine autorisée par l’ACL réseau."
}
]
},
"manual": {
"heading": "Équivalent manuel",
"body": "Reproduisez toute la procédure manuellement. Chaque commande s’exécute <strong>dans le CT</strong> via <code>pct exec &lt;ctid&gt; --</code> ou <code>pct enter &lt;ctid&gt;</code> :"
},
"view": {
"heading": "Voir les exportations actuelles",
"body": "Affiche <code>/etc/exports</code> depuis le CT en ignorant commentaires et lignes vides, puis présente chaque export avec son ACL réseau et ses options. Utile pour vérifier les dossiers exposés avant de communiquer l’IP du CT."
},
"delete": {
"heading": "Supprimer une exportation",
"body": "Liste chaque ligne dans <code>/etc/exports</code> pour la sélection, supprime la ligne choisie (<code>sed -i</code>), exécute <code>exportfs -ra</code> et redémarre <code>nfs-kernel-server</code>. Le dossier lui-même et son contenu restent intacts."
},
"status": {
"heading": "Vérifier l'état NFS",
"body": "Pass diagnostique : confirme que <code>nfs-kernel-server</code> et <code>rpcbind</code> sont installés et actifs, imprime la sortie <code>exportfs -v</code>, liste les sessions NFS actives (<code>showmount -a</code>) et les connexions client actuelles."
},
"uninstall": {
"heading": "Désinstaller le serveur NFS",
"body": "Nettoyage complet après confirmation : arrête et désactive <code>nfs-kernel-server</code> et <code>rpcbind</code>, vide <code>/etc/exports</code>, supprime les paquets NFS avec <code>apt-get purge</code>, retire le groupe <code>sharedfiles</code> et les utilisateurs <code>remap_*</code>, puis termine les processus restants. Les <strong>dossiers exportés eux-mêmes ne sont pas supprimés</strong> ; seules la configuration NFS et les paquets le sont.",
"warnTitle": "Le script s'arrête à la ligne d'exportation, pas aux données",
"warnBody": "<em>Supprimer un export</em> et <em>Désinstaller le serveur NFS</em> retirent la configuration d’export. Les données du dossier sont conservées. Pour les supprimer aussi, utilisez explicitement <code>rm -rf</code> après la fin du script et sauvegardez-les d’abord si quelqu’un peut encore en avoir besoin."
},
"troubleshoot": {
"heading": "Dépannage",
"privTitle": "Conteneur privilégié requis (le script s’arrête)",
"privBody": "Le CT sélectionné n'est pas privilégié. <code>nfs-kernel-server</code> ne peut pas démarrer là parce que le montage <code>/proc/fs/nfsd</code> nécessite <code>CAP_SYS_ADMIN</code> dans l'espace nominatif du noyau hôte, et le module <code>nfsd</code> n'est pas non plus exposé à l'espace nominatif du conteneur (<code>modprobe nfsd</code> de l'intérieur renvoie <code>FATAL: Module nfsd not found</code>). Si vous contournez le contrôle, vous verrez <code>rpc.nfsd: Unable to access /proc/fs/nfsd errno 2 (No such file or directory)</code> dans le journal et aucun port NFS n'ouvrira jamais. Les seules options utilisables sont : convertir le CT en privilégié, ou déplacer le serveur NFS vers une VM.",
"aptTitle": "Échec de apt-get install",
"aptIntro": "Le script suppose une famille Debian CT. Sur Alpine / Arch / Rocky / Alma, installez les paquets du serveur NFS à la main:",
"aptItems": [
"Alpine: <code>apk add nfs-utils</code>",
"Arch: <code>pacman -S nfs-utils</code>",
"Rocky / Alma: <code>dnf install nfs-utils</code>"
],
"aptOutro": "Relancez ensuite le script ProxMenux ; l’installation est ignorée si les outils sont déjà présents.",
"aclTitle": "Le client ne peut pas monter : 'accès refusé par le serveur'",
"aclBody": "L’IP du client n’est pas autorisée par l’ACL réseau. Recréez l’export avec un sous-réseau plus large ou ajoutez l’IP exacte du client. Attention : via un routeur NAT, le client peut apparaître avec l’IP WAN du routeur au lieu de son IP LAN. Vérifiez sur le serveur avec <code>tcpdump -n port 2049</code>.",
"ownTitle": "Les fichiers écrits par le client apparaissent avec une propriété bizarre sur le serveur",
"ownIntro": "Deux possibilités :",
"ownItems": [
"Avec <code>no_root_squash</code> (par défaut), le client root écrit comme root sur le serveur. Les fichiers sont détenus par <code>root:sharedfiles</code> grâce au SGID du dossier.",
"Les utilisateurs non-racines de clients écrivent comme leur propre UID/GID. Si leur UID n'existe pas sur le serveur, les fichiers apparaissent avec des nombres bruts (par exemple : <code>1234:1234</code>). Utilisez également le groupe <code>sharedfiles</code> sur le client, ou alignez les UID sur les systèmes qui partagent des fichiers."
],
"noShowTitle": "Serveur accessible mais showmount ne renvoie rien",
"noShowBody": "Après avoir édité <code>/etc/exports</code>, vous devez recharger la table d'exportation avec <code>exportfs -ra</code> et redémarrer <code>nfs-kernel-server</code> — le script fait les deux, mais si vous avez édité le fichier à la main, faites-le vous-même. Confirmez également le pare-feu sur le CT (et sur l'hôte Proxmox) permet TCP/UDP 2049 et le port rpcbind (111)."
},
"related": {
"heading": "Autres",
"items": [
{
"href": "/docs/storage-share/lxc-nfs-client",
"label": "Client NFS dans LXC",
"tail": " — l’inverse : monter des partages NFS externes dans un CT."
},
{
"href": "/docs/storage-share/lxc-samba-server",
"label": "Serveur Samba en LXC",
"tail": "— page soeur, même motif avec SMB / CIFS au lieu de NFS."
},
{
"href": "/docs/storage-share/host-nfs",
"label": "Partage NFS comme stockage Proxmox",
"tailRich": " — une fois que le CT expose un export, enregistrez ce partage NFS dans Proxmox pour le voir sous <em>Datacenter → Storage</em>."
}
]
}
}
@@ -0,0 +1,155 @@
{
"meta": {
"title": "Client Samba en LXC | ProxMenux Documentation",
"description": "Montez des partages Samba / CIFS dans un conteneur LXC Proxmox avec ProxMenux. Installation automatique de cifs-utils et smbclient, découverte des serveurs, stockage protégé des identifiants et montages persistants via /etc/fstab. Nécessite un conteneur privilégié.",
"ogTitle": "Client Samba en LXC | ProxMenux Documentation",
"ogDescription": "Montez des partages Samba / CIFS dans un conteneur LXC privilégié. Découverte automatique, fichier d’identifiants protégé et persistance dans /etc/fstab."
},
"header": {
"title": "Client Samba en LXC",
"description": "Le montage Samba (SMB / CIFS) se fait directement à l'intérieur d'un conteneur Proxmox LXC. Le conteneur devient un vrai client CIFS — parle au serveur Samba sur le réseau, exécute mount.cifs, stocke les identifiants en toute sécurité, et écrit à /etc/fstab. ProxMenux installe cifs-utils + smbclient pour vous et valide les identifiants sur le serveur avant le montage.",
"section": "Stockage et partage · LXC"
},
"privReq": {
"title": "Conteneur privilégié requis",
"body": "Le client du noyau <code>mount.cifs</code> a besoin de capacités (<code>SYS_ADMIN</code> au minimum) que les conteneurs non privilégiés LXC n'exposent pas. Le script force cela — il vous demande de choisir un CT et <strong>s’arrête s'il n'est pas privilégié</strong>. Si vous avez besoin du partage à l'intérieur d'un CT non privilégié, montez-la d'abord sur l'hôte Proxmox (avec <hostSambaLink>Samba / CIFS en tant que stockage Proxmox</hostSambaLink>) et montez-la par bind mount dans le CT avec le <mountLink>LXC Mount Manager</mountLink>."
},
"what": {
"heading": "Ce que ça fait",
"body": "Le conteneur parle CIFS sur le réseau et monte le partage lui-même. L'hôte Proxmox n'est que le pont réseau — il ne voit ni ne gère le montage.",
"diagramServerLabel": "Serveur Samba",
"diagramServerDetail": "//srv/share",
"diagramHostLabel": "Hôte Proxmox",
"diagramHostDetail": "(seulement un\npont réseau)",
"diagramCtLabel": "LXC (privilégié)",
"diagramCtDetail": "/mnt/share\nmount.cifs à l'intérieur de CT",
"diagramArrow": "CIFS",
"twoWaysTitle": "Deux façons de donner un CT une part de Samba — choisissez une",
"twoWaysBind": "<strong>Montage par host</strong> (<mountLink>LXC Mount Manager</mountLink>) : l'hôte monte le CIFS une fois, chaque CT reçoit le même chemin par bind mount. Fonctionne avec des CT non privilégiés. Recommandé lorsque plusieurs CT ont besoin de le même partage.",
"twoWaysDirect": "<strong>Montage CIFS direct dans le CT</strong> (cette page) : le CT monte CIFS lui-même. Exige un CT privilégié. Utile si chaque CT doit gérer ses identifiants ou accéder à un serveur différent."
},
"opening": {
"heading": "Ouverture de l'outil",
"body": "Dans le menu principal de ProxMenux, ouvrez <strong>Storage &amp; Share Manager → Configurer le client Samba dans LXC (privilégié uniquement)</strong>. Choisissez d’abord <strong>le CT cible</strong> ; ProxMenux le démarre s’il est arrêté et abandonne s’il n’est pas privilégié. Le sous-menu suivant s’affiche ensuite :",
"imageAlt": "Menu Samba Client Manager — Montage / Affichage / Démontage / Test de connectivité"
},
"howRuns": {
"heading": "Comment fonctionne le script (mount flow)"
},
"creds": {
"heading": "Où vit le mot de passe",
"body": "ProxMenux <strong>ne place pas le mot de passe dans la commande de montage</strong> ni dans <code>/etc/fstab</code>. Il crée un fichier d’identifiants dans le CT. Ce fichier contient les identifiants en clair, protégés par des permissions réservées à root ; il n’est pas chiffré :",
"whyTitle": "Pourquoi un fichier séparé plutôt que fstab",
"whyBody": "Le module CIFS accepte les options <code>username=</code> / <code>password=</code> en ligne dans fstab, mais quiconque peut lire <code>/etc/fstab</code> voit le mot de passe en clair. Mettre des identifiants dans un fichier root-only et pointer fstab dessus (<code>credentials=</code>) maintient le mot de passe hors de config lisible dans le monde."
},
"options": {
"heading": "Options de montage expliquées",
"headerOption": "Option",
"headerEffect": "Ce qu'il fait",
"rows": [
{
"option": "rw / ro",
"effect": "Mode lecture-écriture ou lecture seule pour l'ensemble du montage."
},
{
"option": "file_mode=0664",
"effect": "Permissions présentées pour les fichiers via CIFS. Par défaut, le propriétaire et le groupe peuvent écrire, les autres lire."
},
{
"option": "dir_mode=0775",
"effect": "Autorisations signalées pour les répertoires. Par défaut, le propriétaire+groupe entre et crée, d'autres traversent."
},
{
"option": "iocharset=utf8",
"effect": "Impose UTF-8 pour les noms de fichiers transmis par le réseau. Évite les caractères illisibles dans les noms non ASCII."
},
{
"option": "credentials=file",
"effect": "Lisez le nom d'utilisateur / mot de passe du fichier (ajouté automatiquement pour l'auth utilisateur)."
},
{
"option": "guest",
"effect": "Authentifier en tant qu'invité, aucune identification requise (ajoutée automatiquement lorsque l'invité est choisi)."
},
{
"option": "_netdev",
"effect": "Indique que le système d'initialisation de ce montage a besoin du réseau. Boot ne bloque pas l'attente."
},
{
"option": "x-systemd.automount",
"effect": "Montage paresseux : ne monte que sur le premier accès. Le serveur CIFS inaccessible au démarrage ne bloque pas le CT."
},
{
"option": "noauto",
"effect": "Évite le montage immédiat au démarrage. Avec l’unité automount, le montage n’a lieu qu’au premier accès."
}
],
"netEffectTitle": "Effet net des drapeaux fstab",
"netEffectBody": "Le système de fichiers CIFS est monté au <em>premier accès</em> plutôt qu’immédiatement au démarrage. Si le serveur est hors ligne, cet accès peut attendre ou échouer et affecter les services qui dépendent du chemin. Automount réduit la dépendance au démarrage, sans garantir que tous les services du CT restent épargnés."
},
"manual": {
"heading": "Équivalent manuel",
"body": "Répliquez l'ensemble du flux à la main — chaque commande exécute <strong> à l'intérieur du CT</strong> via <code>pct exec &lt;ctid&gt; --</code> ou directement via <code>pct enter &lt;ctid&gt;</code>:",
"guestIntro": "Variante d'invité — aucun fichier d'identification nécessaire:"
},
"view": {
"heading": "Afficher les montages actuels",
"body": "Liste tous les points de montage CIFS actifs à l'intérieur du CT (<code>mount -t cifs</code>) plus toutes les lignes CIFS du CT <code>/etc/fstab</code>. Pour chaque entrée fstab, l'état de montage en direct est affiché — utile pour repérer les montages permanents qui ne sont pas apparus au démarrage."
},
"unmount": {
"heading": "Démonter le partage Samba",
"body": "Combine les montages live et les entrées fstab dans une seule liste, vous permet de choisir une, et <strong> retire la ligne correspondante de <code>/etc/fstab</code></strong> plus le fichier d'identification correspondant. Le script n'exécute pas <code>umount</code> sur le montage en direct — il vous indique plutôt qu'un redémarrage CT est nécessaire pour que le démontage prenne effet.",
"warnTitle": "Le script supprime les entrées fstab, pas les montages en direct",
"warnBody": "Même conception que le client NFS : <code>umount</code> sur une monture occupée échoue avec \"dispositif occupé\". La suppression de l'entrée fstab garantit que le montage disparaît proprement lors du prochain démarrage CT. Si vous voulez que le montage soit parti <em>maintenant</em>, exécutez <code>pct exec &lt;ctid&gt; -- umount /mnt/&lt;path&gt;</code> à la main après la fin du script."
},
"test": {
"heading": "Tester la connectivité Samba",
"body": "Diagnostic dans le CT : vérifie que <code>cifs-utils</code> est installé, liste les montages CIFS actifs puis teste, pour chaque serveur de fstab, ping → ports 139/445 → liste des partages en invité. « Authentification requise » lors du test invité est normal si le serveur ne propose pas de partage public."
},
"troubleshoot": {
"heading": "Dépannage",
"privTitle": "Conteneur privilégié requis (le script s’arrête)",
"privBody": "Le CT sélectionné n'est pas privilégié. Le client du noyau CIFS a besoin de la capacité <code>SYS_ADMIN</code> que les CT non privilégiés n'exposent pas. Convertissez le CT en privilégié, ou utilisez le chemin alternatif décrit dans l'avertissement en haut de cette page.",
"aptTitle": "apt-get install fails",
"aptIntro": "Le script suppose une famille Debian CT (<code>apt-get</code>). Sur Alpine / Arch / Rocky / Alma, installez le client CIFS à la main:",
"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": "Ensuite, lancez le script ProxMenux — l'étape d'installation saute lorsque les outils sont déjà présents.",
"guestFallbackTitle": "\"Le serveur vous a connecté en tant qu'invité au lieu de l'utilisateur spécifié\"",
"guestFallbackBody": "La validation active du script a attrapé un vrai problème d'auth. Le serveur a accepté la connexion mais l'a rétrogradée à invité parce que les identifiants sont erronés. Causes communes : faute de frappe dans le nom d'utilisateur / mot de passe, l'utilisateur n'existe pas sur le serveur, l'utilisateur est verrouillé, ou le groupe de travail / domaine est mal adapté. Réexécutez soigneusement le flux et entrez les identifiants (le mot de passe est caché dans la boîte de dialogue).",
"denyTitle": "\"NT_STATUS_ACCESS_DENIED\" lors du montage",
"denyBody": "Les identifiants sont valides mais le partage refuse l’accès. Vérifiez côté serveur les permissions de l’utilisateur pour ce partage précis : la validation confirme la connexion, pas les ACL de chaque partage. Vérifiez aussi si le serveur exige une version SMB particulière ; ajoutez <code>vers=3.0</code> (ou <code>2.1</code>, <code>2.0</code>) aux options de montage.",
"utf8Title": "Noms de fichiers UTF-8 / non ASCII mal affichés",
"utf8Body": "Les options par défaut incluent <code>iocharset=utf8</code>, mais certaines configurations de serveur signalent une page de code inattendue. Si les noms de fichiers avec des accents / symboles semblent mal, essayez également <code>nounix</code> (certains serveurs Linux Samba en ont besoin lorsque le client est également Linux) ou placez le côté serveur sur <code>unix extensions = no</code>.",
"bootTitle": "Le montage permanent réussit mais ne vient pas au démarrage",
"bootBody": "Presque toujours : le réseau n'est pas prêt lorsque le CT monte (les drapeaux du script <code>_netdev,x-systemd.automount,noauto</code> corrigent cela), le serveur est inaccessible au démarrage (le montage automatique attend le premier accès — c'est normal) ou le DNS n'est pas résolu au démarrage (utiliser l'IP du serveur, pas son nom d'hôte)."
},
"related": {
"heading": "Autres",
"items": [
{
"href": "/docs/storage-share/lxc-mount-points",
"label": "Points de montage LXC (hôte ↔ conteneur)",
"tail": "— l'alternative pour les CT non privilégiés: monter sur l'hôte, lier dans CT."
},
{
"href": "/docs/storage-share/lxc-nfs-client",
"label": "Client NFS dans LXC",
"tail": " — page associée avec la même approche pour les partages NFS."
},
{
"href": "/docs/storage-share/lxc-samba-server",
"label": "Serveur Samba en LXC",
"tailRich": "— l'inverse: exposer les dossiers <em>de</em> un CT sur Samba."
},
{
"href": "/docs/storage-share/host-samba",
"label": "Samba / CIFS comme stockage Proxmox",
"tail": " — enregistrer le partage dans Proxmox lui-même plutôt que dans un seul CT."
}
]
}
}
@@ -0,0 +1,132 @@
{
"meta": {
"title": "Serveur Samba en LXC | ProxMenux Documentation",
"description": "Exécutez un serveur Samba (SMB / CIFS) dans un conteneur LXC Proxmox avec ProxMenux. Installation automatique de samba, gestion de /etc/samba/smb.conf, des utilisateurs smbpasswd et du groupe sharedfiles pour les dossiers montés par bind mount. Nécessite un conteneur privilégié.",
"ogTitle": "Serveur Samba en LXC | ProxMenux Documentation",
"ogDescription": "Exposez des dossiers via SMB/CIFS depuis un LXC privilégié. Installation automatique, utilisateur smbpasswd et permissions adaptées aux bind mounts."
},
"header": {
"title": "Serveur Samba en LXC",
"description": "Exécutez un serveur Samba (SMB / CIFS) à l'intérieur d'un conteneur Proxmox LXC et exposez des dossiers aux clients Windows / macOS / Linux sur le réseau. ProxMenux installe samba, crée un utilisateur Samba avec smbpasswd, gère /etc/samba/smb.conf et applique des permissions adaptées aux bind mounts lorsque le dossier partagé vient de l'hôte.",
"section": "Stockage et partage · LXC"
},
"privReq": {
"title": "Conteneur privilégié requis",
"body": "Samba prend l’identité de l’utilisateur qui se connecte avec <code>setgroups()</code> sur chaque connexion arborescente (le moment où un client ouvre un partage). Dans un LXC non privilégié, le noyau rejette ce syscall parce que l'espace de nom d'utilisateur du conteneur est créé avec <code>setgroups=deny</code> — et <code>smbd</code> répond en arrêtant le processus de travail avec <code>PANIC: sys_setgroups failed</code>. Le résultat est que <code>smbd</code> démarre et lie les ports 139/445, mais chaque connexion client échoue avec <code>NT_STATUS_CONNECTION_DISCONNECTED</code>. Le script impose un CT privilégié pour cette raison et <strong>s’arrête si le CT n’est pas privilégié</strong>. Il n'y a pas de correctif propre du côté serveur; utilisez un CT privilégié ou lancez Samba à l'intérieur d’une VM."
},
"what": {
"heading": "Ce que ça fait",
"body": "Le conteneur devient un serveur SMB/CIFS : il exécute <code>smbd</code>, expose un dossier via <code>/etc/samba/smb.conf</code> et accepte les connexions clientes sur les ports <code>139</code> / <code>445</code>. Les clients voient le partage à <code>\\\\&lt;ct-ip&gt;\\&lt;share-name&gt;</code> dans Windows Explorer, <code>smb://&lt;ct-ip&gt;/&lt;share-name&gt;</code> dans macOS Finder, ou via <code>mount.cifs</code> sur Linux.",
"diagramServerLabel": "LXC (privilégié) — Serveur Samba",
"diagramServerDetail": "/mnt/data\n(dossier exposé)\n\nsmbd + nmbd en cours d’exécution\n\nUtilisateur: <username>\n(via smbpasswd)\n\nGroupe imposé:\nsharedfiles",
"diagramClientLabel": "Tout client sur le réseau",
"diagramClientDetail": "Windows: \\\\<ip>\\<share>\nmacOS: smb://<ip>/<share>\nLinux: mount.cifs",
"diagramArrow": "SMB / CIFS"
},
"perms": {
"heading": "Deux chemins d'autorisation selon le type de dossier",
"body": "Avant d'ajouter la part à <code>smb.conf</code>, le script vérifie si le dossier choisi est un montage <strong>bind de l'hôte</strong> ou un dossier local normal <strong> à l'intérieur du CT</strong> — et applique des droits de propriété différents en conséquence:",
"headerType": "Type de dossier",
"headerAction": "Ce que fait le script",
"bindType": "Bind-mount de l'hôte",
"bindTypeSubRich": "détecté par la sortie <code>mount</code>",
"bindActionRich": "Crée le groupe <code>sharedfiles</code> (par défaut GID 999, dynamique si pris), y ajoute l'utilisateur Samba, puis <code>chown root:sharedfiles</code> + <code>chmod 2775</code> (SGID — nouveaux fichiers héritent du groupe). Si l'utilisateur ne peut toujours pas écrire, applique <code>setfacl -m u:&lt;user&gt;:rwx</code>.",
"localType": "Dossier local à l'intérieur de CT",
"localTypeSub": "aucun montage de liaison détecté",
"localActionRich": "Propriété standard: <code>chown -R &lt;user&gt;:&lt;user&gt;</code> + <code>chmod -R 755</code>. Aucun groupe partagé n'est nécessaire car aucun autre CT n'écrit dans ce dossier. Retourne à <code>setfacl</code> si l'accès à l'écriture est toujours manquant.",
"gidTitle": "GID pour 'sharedfiles' diffère du flux du serveur NFS",
"gidBody": "Le script serveur Samba utilise GID <strong>999</strong> pour <code>sharedfiles</code>, tandis que le flux du serveur <nfsLink>NFS</nfsLink> utilise GID <strong>101000</strong>. Si vous exécutez les deux serveurs dans le même CT et que vous voulez un seul groupe partagé dans les deux protocoles, modifiez l'un d'eux pour correspondre à l'autre après l'installation (p. ex. <code>groupmod -g 101000 sharedfiles</code>) et ré-appliquer la propriété sur les dossiers touchés. C'est une incohérence connue dans les scripts actuels."
},
"opening": {
"heading": "Ouverture de l'outil",
"body": "Dans le menu principal, ouvrez <strong>Storage & Share Manager → Configure Samba Server in LXC</strong>. Seuls les CT privilégiés sont proposés. Choisissez le CT cible ; le script le démarre s’il est arrêté et refuse les CT non privilégiés. Le menu comporte cinq options.",
"imageAlt": "Menu Samba Server Manager — Créer / Afficher / Supprimer / Statut / Désinstaller"
},
"howRuns": {
"heading": "Comment fonctionne le script (Créer le flux)"
},
"modes": {
"heading": "Les trois modes de partage",
"intro": "Chaque mode écrit une stanza différente à <code>smb.conf</code>. Tous les trois comprennent le <code>valid users = &lt;username&gt;</code> (pas d'anonymat), le <code>force group = sharedfiles</code> (ainsi les nouveaux fichiers appartiennent au groupe partagé) et le <code>veto files = /lost+found/</code> (le cache des clients).",
"headerMode": "Mode",
"headerBlock": "Bloc écrit en smb.conf",
"rwMode": "Lecture et écriture",
"roMode": "Lecture seule",
"customMode": "Personnalisé",
"customBodyRich": "Vous tapez vos propres directives dans une boîte en texte libre. Le ProxMenux les enveloppe toujours dans un bloc <code>[share]</code> avec les <code>path</code>, <code>valid users</code>, <code>force group</code> et <code>veto files</code>."
},
"manual": {
"heading": "Équivalent manuel",
"body": "Reproduisez toute la procédure manuellement. Chaque commande s’exécute <strong>dans le CT</strong> via <code>pct exec &lt;ctid&gt; --</code> ou <code>pct enter &lt;ctid&gt;</code> :"
},
"connect": {
"heading": "Connexion des clients",
"headerOs": "Système d'exploitation du client",
"headerHow": "Comment se connecter",
"windowsOs": "Windows",
"windowsHowRich": "Explorateur de fichiers → barre d’adresse : <code>\\\\&lt;ct-ip&gt;\\&lt;share-name&gt;</code>. Ou <em>Connecter un lecteur réseau</em> → cocher « Se connecter à l’aide d’informations d’identification différentes ».",
"macosOs": "macOS",
"macosHowRich": "Finder → <em>Aller → Se connecter au serveur...</em> → <code>smb://&lt;ct-ip&gt;/&lt;share-name&gt;</code>. Ou <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>. Ou utilisez le client <clientLink>Samba dans la page LXC</clientLink> si le client est un autre client Proxmox CT."
},
"view": {
"heading": "Voir les partages actuels",
"body": "Analyse <code>/etc/samba/smb.conf</code> à l'intérieur du CT et liste tous les blocs <code>[share]</code> (en ignorant <code>[global]</code>, <code>[homes]</code>, <code>[printers]</code>) avec son chemin. Utile comme un inventaire rapide."
},
"delete": {
"heading": "Supprimer un partage",
"body": "Permet de choisir un partage par nom, supprime le bloc de <code>smb.conf</code> (<code>sed</code> supprime de <code>[share]</code> jusqu'à la prochaine ligne blanche), et redémarre <code>smbd</code>. Le dossier lui-même et son contenu restent intacts."
},
"status": {
"heading": "Vérifier l'état de Samba",
"body": "Indique si <code>smbd</code> et <code>nmbd</code> sont installés et actifs, liste les utilisateurs de Samba (<code>pdbedit -L</code>) et imprime les sessions actives (<code>smbstatus</code>)."
},
"uninstall": {
"heading": "Désinstaller le serveur Samba",
"body": "Nettoyage complet après confirmation : arrête et désactive <code>smbd</code> et <code>nmbd</code>, sauvegarde <code>smb.conf</code> dans <code>smb.conf.backup.YYYYMMDD_HHMMSS</code>, supprime les utilisateurs Samba avec <code>smbpasswd -x</code> et les paquets Samba avec <code>apt-get purge</code>. Les <strong>dossiers exportés eux-mêmes ne sont pas supprimés</strong>.",
"warnTitle": "Les dossiers survivent — sauvegarde des données séparément",
"warnBody": "<em>Supprimer un partage</em> et <em>Désinstaller le serveur Samba</em> retirent la configuration de partage. Les données des dossiers exportés sont conservées. Pour les supprimer aussi, utilisez explicitement <code>rm -rf</code> après la fin du script."
},
"troubleshoot": {
"heading": "Dépannage",
"privTitle": "Conteneur privilégié requis (le script s’arrête)",
"privBody": "Le CT sélectionné n'est pas privilégié et <code>smbd</code> ne peut pas y servir de fichiers. Si vous contournez le contrôle et configurez Samba à la main, <code>smbd</code> démarre et les ports s'ouvrent, mais la première connexion client panique avec <code>PANIC: sys_setgroups failed</code> dans <code>/var/log/samba/log.&lt;client&gt;</code> et le client voit <code>NT_STATUS_CONNECTION_DISCONNECTED</code>. La cause est l'espace de noms d'utilisateur non privilégié ayant <code>setgroups=deny</code>, qui bloque l’adoption de l’identité de l’utilisateur par Samba à chaque connexion. Ni le <code>features=keyctl=1</code> ni la suppression du <code>force user</code> / <code>force group</code> ne changent cela. Les seules options utilisables sont : convertir le CT en privilégié, ou déplacer Samba vers une VM.",
"aptTitle": "Échec de apt-get install",
"aptIntro": "Le script suppose une famille Debian CT. Sur Alpine / Arch / Rocky / Alma, installer Samba à la main:",
"aptItems": [
"Alpine: <code>apk add samba</code>",
"Arch: <code>pacman -S samba</code>",
"Rocky / Alma: <code>dnf install samba</code>"
],
"aptOutro": "Relancez ensuite le script ProxMenux ; l’installation est ignorée si les outils sont déjà présents.",
"noShareTitle": "Le client se connecte mais ne voit pas le partage",
"noShareBody": "Vérifiez que <code>browseable = yes</code> est défini dans le bloc de partage (par défaut pour les modes rw / ro; peut être manquant en mode personnalisé). Vérifiez également le pare-feu CT et le pare-feu hôte Proxmox permettent TCP 445 (SMB) et 139 (NetBIOS). Certains clients Windows nécessitent également une résolution de nom — essayez d'abord directement l'IP.",
"authTitle": "Défauts d'authentification (NT_STATUS_LOGON_FAILURE)",
"authBody": "Le mot de passe est incorrect (les mots de passe Samba sont <em>distincts</em> de ceux du système ; listez les utilisateurs Samba avec <code>pdbedit -L</code>) ou l’utilisateur ne figure pas dans <code>valid users</code> pour ce partage. Réinitialisez le mot de passe dans le CT avec <code>smbpasswd &lt;user&gt;</code>.",
"groupTitle": "Les fichiers écrits par le client apparaissent avec un mauvais groupe sur le serveur",
"groupBody": "Le script définit <code>force group = sharedfiles</code> dans le bloc de partage, de sorte que les nouveaux fichiers doivent être du groupe <code>sharedfiles</code>. S'ils ne le sont pas, le bit SGID du répertoire parent peut avoir été perdu (quelqu'un a exécuté <code>chmod</code> à la main). Réappliquer : <code>chmod 2775 /mnt/&lt;share&gt;</code>.",
"bothTitle": "Partage du même dossier sur NFS et Samba",
"bothBody": "Le ProxMenux utilise différents GID pour le <code>sharedfiles</code> dans chaque script (Samba: 999, NFS: 101000). Si vous servez le même dossier via les deux, choisissez un seul GID et alignez les deux. La correction la plus simple : après avoir exécuté les deux scripts, modifiez le GID plus petit :"
},
"related": {
"heading": "Autres",
"items": [
{
"href": "/docs/storage-share/lxc-samba-client",
"label": "Client Samba en LXC",
"tail": " — l’inverse : monter des partages Samba externes dans un CT."
},
{
"href": "/docs/storage-share/lxc-nfs-server",
"label": "Serveur NFS dans LXC",
"tail": "— page soeur, même motif avec NFS au lieu de CIFS."
},
{
"href": "/docs/storage-share/host-samba",
"label": "Samba / CIFS comme stockage Proxmox",
"tailRich": " — une fois que le CT expose un export, enregistrez ce partage Samba dans Proxmox pour le voir sous <em>Datacenter → Storage</em>."
}
]
}
}