Merge remote-tracking branch 'origin/develop' into HEAD

This commit is contained in:
MacRimi
2026-10-18 16:05:23 +02:00
50 changed files with 3960 additions and 293 deletions
+119
View File
@@ -0,0 +1,119 @@
{
"meta": {
"title": "Sauvegarder Proxmox dans un stockage cloud personnel | ProxMenux",
"description": "Monter un stockage cloud personnel, comme Google Drive, Mega, Dropbox ou OneDrive, avec rclone sur l’hôte Proxmox VE, le déclarer comme stockage de sauvegarde pour vzdump et y sauvegarder directement les VM et conteneurs, sans script de sauvegarde supplémentaire.",
"ogTitle": "Sauvegarder Proxmox dans un stockage cloud personnel",
"ogDescription": "Monter un stockage cloud avec rclone sur l’hôte Proxmox VE et l’utiliser comme destination vzdump pour les VM et conteneurs."
},
"header": {
"title": "Sauvegarder Proxmox dans un stockage cloud personnel",
"description": "Monter un stockage cloud personnel, comme Google Drive, Mega, Dropbox ou OneDrive, avec rclone sur l’hôte Proxmox VE, le déclarer comme stockage de sauvegarde pour vzdump et y sauvegarder directement les VM et conteneurs, sans script de sauvegarde supplémentaire.",
"section": "Guides"
},
"intro": {
"pbsCalloutTitle": "Envisagez d’abord Proxmox Backup Server",
"pbsCalloutBody": "Sur une seconde machine répondant aux exigences x86-64, <pbsLink>Proxmox Backup Server</pbsLink> propose des sauvegardes incrémentales et dédupliquées, avec chiffrement facultatif côté client. Il est conçu pour les VM. Ce guide explique plutôt comment monter un stockage cloud personnel, comme Google Drive, Mega, OneDrive ou Dropbox, comme destination de sauvegarde.",
"stepsTitle": "Ce que vous allez faire",
"steps": [
"Créer un répertoire sur l’hôte Proxmox et le déclarer comme stockage de sauvegarde vzdump.",
"Installez et configurez rclone pour votre fournisseur de cloud.",
"Montez le dossier cloud sur le répertoire.",
"Rétablir le montage après chaque redémarrage avec une unité systemd."
],
"vzdumpCalloutTitle": "À propos des sauvegardes vzdump de Proxmox",
"vzdumpCalloutBody": "Les archives vzdump de Proxmox sont des <strong>sauvegardes complètes, pas incrémentielles</strong>. Leur taille dépend des données incluses et de la compression, pas seulement de la capacité du disque virtuel. Si une archive occupe 30 GB, en conserver cinq nécessite environ 150 GB. Définissez une politique de rétention pour éviter de remplir le cloud."
},
"createDir": {
"heading": "1. Créer le répertoire sur l’hôte et le déclarer comme stockage de sauvegarde",
"body": "Connectez-vous à l’hôte par SSH ou ouvrez le shell Proxmox, puis créez un point de montage dans <code>/mnt/</code>. Choisissez un nom qui identifie le fournisseur :",
"mkdirCode": "mkdir -p /mnt/gdrive",
"afterMkdir": "Dans l'interface web Proxmox: <strong>Datacenter → Stockage → Ajouter → Directory</strong>.",
"image1Alt": "Ajouter un nouveau stockage dans Proxmox",
"configIntro": "Configurez-le comme ceci :",
"configItems": [
"<strong>ID:</strong> <code>gdrive</code> (ou tout ce que vous avez utilisé pour le nom du répertoire)",
"<strong>Répertoire:</strong> <code>/mnt/gdrive</code>",
"<strong>Contenu :</strong> sélectionnez <strong>Fichier de sauvegarde VZDump</strong>."
],
"image2Alt": "Configuration du nouveau stockage dans Proxmox",
"afterConfig": "Cliquez sur <strong>Ajouter</strong> :",
"image3Alt": "Nouveau stockage ajouté dans Proxmox",
"afterAdd": "Le répertoire est déclaré comme stockage Proxmox, mais il reste vide : le cloud n’y est pas encore monté."
},
"installRclone": {
"heading": "2. Installer et configurer rclone",
"body": "<rcloneLink>rclone</rcloneLink> communique avec les services de stockage cloud. Installez-le depuis les dépôts Debian :",
"installCode": "apt-get update\napt-get install -y rclone",
"newerCalloutTitle": "Si vous avez besoin d'un nouveau rclone",
"newerCalloutBody": "Si vous avez besoin d’une version plus récente que celle proposée par Debian, utilisez l’installateur officiel :",
"newerCode": "curl https://rclone.org/install.sh | bash",
"tunnelHeading": "2.1 Authentification par navigateur via le tunnel SSH",
"tunnelBody": "Pour les fournisseurs utilisant une connexion web, l’hôte Proxmox n’a généralement pas de navigateur. Suivez la <remoteSetupLink>procédure de configuration distante de rclone</remoteSetupLink> : utilisez le navigateur du portable et transférez sa connexion de retour localhost par SSH vers rclone sur l’hôte.",
"tunnelFrom": "Sur votre <strong>ordinateur portable</strong>, en remplaçant <code>ip_proxmox</code> par l’adresse IP de Proxmox :",
"tunnelCode": "ssh -L localhost:53682:localhost:53682 root@ip_proxmox",
"tunnelAfter": "Cette session SSH ouvre le port localhost 53682 sur le portable et transfère les connexions vers le même port de l’hôte Proxmox. Gardez-la ouverte pendant la configuration de rclone.",
"runHeading": "2.2 Exécuter rclone config",
"runBody": "Dans la session SSH que vous venez d’ouvrir, exécutez :",
"runCode": "rclone config",
"runAfter": "Suivez les instructions pour ajouter une nouvelle configuration distante, ou « remote ». Les réponses dépendent du fournisseur ; consultez la <providerDocsLink>documentation des fournisseurs rclone</providerDocsLink> pour Google Drive, Mega, Dropbox, OneDrive, etc. L’étape clé est la question d’authentification :",
"authPrompt": "Use web browser to automatically authenticate rclone with remote?\n * Say Y if the machine running rclone has a web browser you can use\n * Say N if running rclone on a (remote) machine without web browser access\nIf not sure try Y. If Y failed, try N.\ny) Yes\nn) No\ny/n> y",
"authAfter": "Répondez <strong>Y</strong>. rclone affiche une URL locale. Ouvrez-la dans le <strong>navigateur du portable</strong> ; le tunnel SSH transfère la connexion. Autorisez rclone auprès du fournisseur cloud pour terminer la configuration.",
"nameRemote": "Pour le nom de la configuration distante, choisissez un nom correspondant au répertoire, par exemple <code>gdrive</code>."
},
"mount": {
"heading": "3. Monter le dossier cloud",
"body": "Créez un dossier dans votre cloud pour les sauvegardes, par exemple <code>PBC</code>, pour Proxmox Backup Cloud.",
"mountIntro": "Montez-le dans le répertoire de l’hôte :",
"mountCode": "rclone mount gdrive:/PBC /mnt/gdrive --allow-other --allow-non-empty --vfs-cache-mode writes",
"mountItems": [
"<code>gdrive:/PBC</code> — le dossier dans votre cloud.",
"<code>/mnt/gdrive</code> — le répertoire hôte que vous avez enregistré comme datastore."
],
"mountFootnote": "<strong>Cette commande reste au premier plan.</strong> Laissez-la tourner dans un terminal pour tester une sauvegarde. Pour rétablir le montage à chaque démarrage, créez une unité systemd dans la section suivante."
},
"systemd": {
"heading": "4. Montage automatique à chaque démarrage avec systemd",
"body": "Une unité systemd offre plus de contrôle que <code>crontab @reboot</code> : elle peut attendre le démarrage du réseau, redémarrer en cas d’échec et fournir des journaux via <code>journalctl</code>.",
"createIntro": "Créez le fichier de l’unité :",
"createCode": "nano /etc/systemd/system/rclone-gdrive.service",
"pasteIntro": "Collez :",
"unitCode": "[Unit]\nDescription=rclone mount for Proxmox cloud backups\nWants=network-online.target\nAfter=network-online.target\n\n[Service]\nType=notify\nExecStart=/usr/bin/rclone mount \\\n gdrive:/PBC /mnt/gdrive \\\n --allow-other \\\n --allow-non-empty \\\n --vfs-cache-mode writes \\\n --log-level INFO \\\n --log-file /var/log/rclone-gdrive.log\nExecStop=/bin/fusermount -uz /mnt/gdrive\nRestart=on-failure\nRestartSec=10\n\n[Install]\nWantedBy=multi-user.target",
"adjust": "Adaptez <code>gdrive:/PBC</code> et <code>/mnt/gdrive</code> si vous avez choisi d’autres noms. Enregistrez, quittez l’éditeur avec <code>Ctrl+X</code>, puis activez et démarrez le service :",
"enableCode": "systemctl daemon-reload\nsystemctl enable --now rclone-gdrive.service",
"verifyIntro": "Vérifier :",
"verifyCode": "systemctl status rclone-gdrive.service\nmount | grep /mnt/gdrive",
"verifyAfter": "L’unité demande un redémarrage après 10 secondes si le processus rclone se termine en échec. Cela ne répare pas les identifiants expirés et ne garantit pas la résolution de tout problème réseau ou fournisseur. Consultez <code>/var/log/rclone-gdrive.log</code> et <code>journalctl -u rclone-gdrive.service -f</code>.",
"vfsCalloutTitle": "Pourquoi utiliser --vfs-cache-mode writes ?",
"vfsCalloutBody": "Avec le cache d’écriture, les opérations comme <code>fwrite</code> écrivent dans un cache disque local. rclone envoie le fichier après sa fermeture et le délai d’écriture différée. Prévoyez assez d’espace local pour les sauvegardes en cours et vérifiez la fin de l’envoi avant de considérer la copie distante comme disponible."
},
"configureBackup": {
"heading": "5. Configurer le cloud comme destination de sauvegarde",
"body": "Dans Proxmox, pour une sauvegarde planifiée ou manuelle, choisissez le stockage déclaré comme <strong>destination</strong> :",
"image5Alt": "Sélection de la destination de sauvegarde dans Proxmox",
"after": "Une fois vzdump terminé, attendez la fin de l’envoi rclone en arrière-plan et vérifiez l’archive dans l’interface du fournisseur cloud :",
"image6Alt": "Fichier de sauvegarde dans le stockage en nuage"
},
"retention": {
"heading": "6. Rétention : maîtriser le quota cloud",
"body": "Les archives vzdump de Proxmox sont des <strong>sauvegardes complètes, pas incrémentielles</strong>. Leur taille dépend des données incluses et de la compression, pas seulement de la capacité du disque virtuel. Si une archive occupe 30 GB, en conserver cinq nécessite environ 150 GB. Définissez une politique de rétention pour éviter de remplir le cloud.",
"uiPath": "Dans l’interface Proxmox : <strong>Centre de données → Sauvegarde → [votre tâche] → Rétention</strong> :",
"image7Alt": "Paramètres de rétention de sauvegarde dans Proxmox",
"starterIntro": "Valeurs de départ possibles pour une installation personnelle ou de test :",
"starterItems": [
"Conserver les 5 dernières sauvegardes quotidiennes",
"Conserver les 4 dernières sauvegardes hebdomadaires",
"Conserver les 6 dernières sauvegardes mensuelles"
],
"adjust": "Adaptez les valeurs au quota cloud et à la fréquence des modifications des VM."
},
"troubleshoot": {
"heading": "Dépannage",
"items": [
"<strong><code>Mount point /mnt/gdrive is itself on a fuse.rclone filesystem</code> :</strong> le répertoire est déjà monté, éventuellement par une autre instance rclone. Vérifiez qu’aucune sauvegarde n’est en cours avant de supprimer l’ancien montage avec <code>fusermount -uz /mnt/gdrive</code>, puis redémarrez l’unité systemd.",
"<strong>La sauvegarde est très lente :</strong> vérifiez <code>--vfs-cache-mode writes</code> sur la ligne <code>ExecStart</code>, les performances du cache local, le débit montant et les limites du fournisseur. L’envoi peut continuer après la fin de vzdump.",
"<strong>La sauvegarde échoue avec No space left on device :</strong> vérifiez l’espace du cache local et le quota cloud. Le cache utilise généralement <code>~/.cache/rclone/</code>. S’il est plein, choisissez par exemple <code>--cache-dir /var/cache/rclone</code> sur un système de fichiers disposant d’espace. Changer de chemin sur le même système plein ne suffit pas.",
"<strong>Le jeton d’authentification rclone a expiré :</strong> reconnectez-vous par SSH avec le tunnel (<code>ssh -L localhost:53682:localhost:53682 root@ip_proxmox</code>) et exécutez <code>rclone config reconnect gdrive:</code> pour renouveler l’autorisation.",
"<strong>Les sauvegardes sont présentes dans le cloud, mais leur restauration échoue :</strong> n’utilisez pas le cloud comme <strong>seule</strong> destination. Ajoutez des sauvegardes PBS ou vzdump locales sur un autre disque."
]
}
}
+118
View File
@@ -0,0 +1,118 @@
{
"meta": {
"title": "Guides Proxmox VE — Coral TPU, NVIDIA, Kodi dans LXC, Samba et sauvegarde cloud | ProxMenux",
"description": "Tutoriels détaillés pour Proxmox VE : Kodi dans LXC avec accélération GPU, pilotes NVIDIA sur PVE 9, disque USB partagé par Samba dans un conteneur et sauvegardes vzdump vers Google Drive, Mega, Dropbox ou OneDrive. Avec une sélection de ressources communautaires, un glossaire et une référence des commandes.",
"ogTitle": "Guides Proxmox VE — Coral TPU, NVIDIA, Kodi dans LXC, Samba et sauvegarde cloud",
"ogDescription": "Tutoriels détaillés pour Proxmox VE : passthrough GPU, centre multimédia Kodi dans LXC, disque USB partagé par Samba, sauvegarde cloud avec rclone et ressources communautaires sélectionnées.",
"twitterTitle": "Guides Proxmox VE | ProxMenux",
"twitterDescription": "Tutoriels détaillés pour Proxmox VE : GPU, Kodi dans LXC, Samba, sauvegarde cloud et autres sujets.",
"ogImageAlt": "Guides ProxMenux — tutoriels détaillés pour Proxmox VE"
},
"header": {
"title": "Guides ProxMenux",
"tagline": "Tutoriels approfondis, références rapides et ressources communautaires sélectionnées pour tirer le meilleur parti de Proxmox VE."
},
"inDepth": {
"heading": "Guides détaillés",
"intro": "Tutoriels détaillés pour des tâches précises dans Proxmox. Chacun présente les étapes manuelles d’un processus automatisé par ProxMenux, pour comprendre ce qui se passe à chaque étape.",
"items": [
{
"slug": "kodi-lxc",
"title": "Installer Kodi dans LXC avec accélération GPU et le relier à un écran ou téléviseur",
"description": "Exécuter Kodi dans un conteneur LXC privilégié sur Proxmox VE, lui donner accès à l’iGPU et aux périphériques d’entrée USB de l’hôte, et transformer le serveur en centre multimédia directement relié au téléviseur."
},
{
"slug": "backup-cloud",
"title": "Sauvegarder Proxmox dans un stockage cloud personnel",
"description": "Monter un stockage cloud personnel, comme Google Drive, Mega, Dropbox ou OneDrive, avec rclone sur l’hôte Proxmox VE, le déclarer comme stockage de sauvegarde pour vzdump et y sauvegarder directement les VM et conteneurs, sans script de sauvegarde supplémentaire."
},
{
"slug": "lxc-samba",
"title": "Ajouter un disque ou une clé USB à LXC et le partager sur le réseau avec Samba",
"description": "Rendre un disque dur ou une clé USB accessible dans un conteneur LXC privilégié sur Proxmox VE, y installer Samba et partager son contenu sur le réseau."
},
{
"slug": "nvidia-manual",
"title": "Installation des pilotes de cartes graphiques NVIDIA sur Proxmox VE 9 (procédure manuelle)",
"description": "Installer et configurer manuellement les pilotes NVIDIA sur un hôte Proxmox VE 9, puis donner accès au GPU à un ou plusieurs conteneurs LXC. Couvre les pilotes, le service de persistance, le correctif NVENC facultatif et la configuration de chaque conteneur."
}
]
},
"references": {
"heading": "Références ProxMenux",
"intro": "Matériel de référence rapide de la documentation ProxMenux elle-même.",
"cards": {
"glossary": {
"title": "Glossaire",
"description": "Plus de 60 définitions des termes techniques de ProxMenux : Proxmox, virtualisation, stockage, réseau et Linux. Consultation rapide avec étiquettes de catégorie et liens croisés."
},
"helpInfo": {
"title": "Aide et information — Catalogue des commandes",
"description": "Une sélection de commandes Linux et Proxmox classées par thème, avec copie dans le presse-papiers. Reprend la référence disponible dans le menu ProxMenux."
},
"linuxResources": {
"title": "Ressources Linux",
"description": "Ressources externes pour apprendre la ligne de commande Linux, les bonnes pratiques de sécurité, les outils de surveillance et ZFS, en complément du catalogue de commandes ProxMenux."
},
"externalRepos": {
"title": "Dépôts externes",
"description": "Dépôts de scripts tiers intégrés dans ProxMenux comme options de menu alternatives (community-scripts/ProxmoxVE, etc.)."
}
}
},
"official": {
"heading": "Ressources officielles Proxmox",
"intro": "Documentation publiée par Proxmox Server Solutions, la référence officielle de la plateforme.",
"cards": {
"pveDocs": {
"title": "Documentation Proxmox VE",
"description": "Le guide officiel d’administration : une référence complète sur l’installation, le réseau, le stockage, les clusters, la haute disponibilité et l’API."
},
"pbsDocs": {
"title": "Documentation Proxmox Backup Server",
"description": "Documentation PBS : sauvegardes incrémentales, dédupliquées et chiffrées pour Proxmox VE."
},
"videoTraining": {
"title": "Formation vidéo officielle",
"description": "Tutoriels vidéo et formations officiels de Proxmox."
},
"forum": {
"title": "Proxmox Forum",
"description": "Forum communautaire officiel pour les questions, le dépannage et le partage d’expériences, suivi par les responsables du projet."
}
}
},
"community": {
"heading": "Projets et ressources communautaires",
"intro": "Projets open source et listes sélectionnées dans la communauté Proxmox. Ils ne sont affiliés ni à Proxmox Server Solutions ni à ProxMenux ; ils figurent ici pour leur utilité.",
"cards": {
"helperScripts": {
"title": "Proxmox VE Helper-Scripts",
"description": "Catalogue maintenu par la communauté de scripts pour déployer simplement des conteneurs LXC, des VM et des réglages PVE, par exemple pour Home Assistant, Plex ou Frigate. Il reprend l’esprit des scripts de tteck."
},
"awesome": {
"title": "awesome-proxmox-ve (liste de ressources sélectionnées)",
"description": "Vaste sélection communautaire de ressources Proxmox VE : outils, bibliothèques, intégrations, blogs et vidéos. Un bon point de départ pour en découvrir davantage."
}
},
"suggestRich": "Vous connaissez une ressource de qualité à ajouter ? Ouvrez une issue ou une PR sur <link>GitHub</link>. Cette liste doit rester une sélection pertinente plutôt qu’un inventaire exhaustif."
},
"discussion": {
"heading": "Débat communautaire",
"intro": "Où les gens parlent de Proxmox et ProxMenux.",
"cards": {
"proxmenuxDiscussions": {
"title": "ProxMenux Discussions",
"description": "Discussions GitHub dédiées à ProxMenux : idées de fonctions, questions-réponses et partage de configurations. L’endroit adapté aux sujets liés au menu, à Monitor et à la documentation."
},
"proxmoxForum": {
"title": "Proxmox Forum",
"description": "Forum Proxmox officiel (également lié ci-dessus). Le bon endroit pour le dépannage en profondeur et les problèmes spécifiques à la configuration."
},
"reddit": {
"title": "r/Proxmox sur Reddit",
"description": "Subreddit actif pour les discussions, conseils et questions techniques. Plus accessible que le forum, avec des réponses souvent plus rapides aux questions informelles."
}
}
}
}
+70
View File
@@ -0,0 +1,70 @@
{
"meta": {
"title": "Installer Kodi dans LXC avec accélération GPU | Guides ProxMenux",
"description": "Exécuter Kodi dans un conteneur LXC privilégié sur Proxmox VE, lui donner accès à l’iGPU et aux périphériques d’entrée USB de l’hôte, et transformer le serveur en centre multimédia directement relié au téléviseur.",
"ogTitle": "Installer Kodi dans LXC avec accélération GPU",
"ogDescription": "Exécuter Kodi dans un conteneur LXC privilégié sur Proxmox VE, avec accès à l’iGPU et aux périphériques d’entrée USB de l’hôte, pour transformer le serveur en centre multimédia."
},
"header": {
"title": "Installer Kodi dans LXC avec accélération GPU et le relier à un écran ou téléviseur",
"description": "Exécuter Kodi dans un conteneur LXC privilégié sur Proxmox VE, lui donner accès à l’iGPU et aux périphériques d’entrée USB de l’hôte, et transformer le serveur en centre multimédia directement relié au téléviseur.",
"section": "Guides"
},
"intro": {
"calloutTitle": "Attention",
"calloutBody": "Ce guide utilise un script communautaire externe pour préparer le conteneur Kodi. ProxMenux peut également lui donner accès à l’iGPU de l’hôte : <strong>GPU et Coral-TPU → Ajouter un GPU à LXC</strong> configure <code>/dev/dri</code> et installe les pilotes dans le conteneur. Le script ci-dessous installe aussi Kodi et son démarrage automatique sur <code>tty7</code>. Utilisez-le pour un centre multimédia LXC prêt à l’emploi ; choisissez la <gpuLink>procédure ProxMenux</gpuLink> si vous souhaitez seulement donner accès au GPU à un conteneur déjà configuré.",
"credit": "Le script Kodi LXC original a été créé par <authorLink>mrrudy</authorLink>.",
"stepsTitle": "Ce que vous allez faire",
"steps": [
"Créer un conteneur LXC privilégié avec Kodi à l’aide du script.",
"Donner au conteneur accès au clavier, à la souris ou à la manette USB.",
"Facultatif : mettre à jour Kodi depuis les dépôts configurés dans le conteneur."
]
},
"createCt": {
"heading": "1. Créer le Kodi LXC",
"body": "Pour cette procédure, sélectionnez <strong>Privileged</strong> dans les réglages avancés du script. Par défaut, il crée des conteneurs non privilégiés, qui nécessitent des droits sur les périphériques et une correspondance des identifiants adaptés. Il configure l’accès au GPU, Kodi et son démarrage sur <code>tty7</code> :",
"code": "bash -c \"$(wget -qLO - https://raw.githubusercontent.com/mrrudy/proxmoxHelper/main/ct/kodi-v1.sh)\"",
"after": "L’installation prend un peu de temps. Lorsque Kodi démarre sur <code>tty7</code>, reliez l’écran ou le téléviseur à la sortie HDMI/DisplayPort de l’hôte. L’interface de Kodi devrait s’afficher."
},
"addInput": {
"heading": "2. Ajouter un clavier, une souris ou une manette USB",
"body": "Les périphériques d’entrée se trouvent dans <code>/dev/input/</code> sur l’hôte. Repérez leur numéro majeur :",
"listCode": "ls -l /dev/input",
"imageAlt": "Liste des périphériques d'entrée",
"afterList": "Pour les périphériques de caractères, prenez le numéro majeur avant la virgule, ici <code>13</code>. Sur l’hôte, modifiez la configuration du conteneur Kodi, en remplaçant <code>'<'CTID'>'</code> par son identifiant, par exemple <code>102</code> :",
"editCode": "nano /etc/pve/lxc/CTID.conf",
"addLines": "Ajoutez les lignes suivantes en adaptant <code>13</code> au numéro relevé sur <strong>votre</strong> hôte :",
"configCode": "lxc.cgroup2.devices.allow: c 13:* rwm\nlxc.mount.entry: /dev/input dev/input none bind,optional,create=dir",
"imageConfigAlt": "Configuration LXC",
"save": "Enregistrez le fichier, quittez l’éditeur avec <code>Ctrl+X</code> et redémarrez <strong>uniquement le conteneur</strong>. Inutile de redémarrer l’hôte Proxmox :",
"restartCode": "pct reboot CTID",
"plug": "Branchez le clavier, la souris ou la manette USB. Kodi devrait réagir."
},
"updateKodi": {
"heading": "3. Facultatif : mettre à jour Kodi depuis les dépôts configurés",
"calloutTitle": "Important",
"calloutBody": "Le PPA team-xbmc est <strong>réservé à Ubuntu</strong> et Kodi indique qu’il n’est plus maintenu. L’absence de <code>add-apt-repository</code> ne permet pas d’identifier la distribution. Vérifiez <code>cat /etc/os-release</code> et recherchez <code>NAME=\"Ubuntu\"</code> ; n’ajoutez pas de PPA Ubuntu à Debian. Les commandes ci-dessous mettent à jour les paquets depuis les dépôts configurés dans le conteneur.",
"body": "Dans le conteneur (<code>pct enter '<'CTID'>'</code>) :",
"code": "apt update\napt install --only-upgrade kodi kodi-bin",
"after": "Redémarrez le conteneur après la mise à jour. Kodi utilisera la version disponible dans ses dépôts configurés, qui peut différer de la dernière version du projet."
},
"screenshots": {
"heading": "Captures d'écran",
"image1Alt": "Interface Kodi 1",
"image2Alt": "Interface Kodi 2"
},
"troubleshoot": {
"heading": "Dépannage",
"items": [
"<strong>Le conteneur Kodi démarre, mais rien ne s’affiche sur le téléviseur :</strong> il n’a peut-être pas accès à l’iGPU. Vérifiez <code>ls /dev/dri</code> dans le conteneur : <code>card0</code> et <code>renderD128</code> devraient apparaître. Si le répertoire est vide, vérifiez le passthrough GPU ou utilisez <strong>Ajouter un GPU à LXC</strong> dans ProxMenux.",
"<strong>Clavier ou souris non détecté après redémarrage :</strong> vérifiez que <code>/dev/input</code> est monté et que Kodi peut lire les périphériques. Exécutez <code>ls -l /dev/input</code> sur l’hôte et dans le conteneur, puis vérifiez la règle <code>lxc.cgroup2.devices.allow</code>.",
"<strong>La lecture avec accélération matérielle utilise le CPU au lieu du GPU :</strong> installez ou mettez à jour les pilotes VA-API dans le conteneur : <code>intel-media-va-driver</code> pour les iGPU Intel récents, <code>i965-va-driver</code> pour les anciens et <code>mesa-va-drivers</code> pour AMD.",
"<strong><code>add-apt-repository: command not found</code> :</strong> la commande n’est pas installée ; cela ne prouve pas que le conteneur utilise Debian. Vérifiez la distribution et les paquets disponibles. Sur Debian, utilisez ses paquets Kodi sans ajouter le PPA Ubuntu."
]
},
"further": {
"heading": "Pour en savoir plus",
"konpatRich": "<konpatLink>Article de Konpat</konpatLink> pour en savoir plus sur l’accès à l’iGPU Intel depuis LXC."
}
}
+119
View File
@@ -0,0 +1,119 @@
{
"meta": {
"title": "Ajouter un disque USB à LXC et le partager avec Samba | ProxMenux",
"description": "Rendre un disque dur ou une clé USB accessible dans un conteneur LXC privilégié sur Proxmox VE, y installer Samba et partager son contenu sur le réseau.",
"ogTitle": "Ajouter un disque USB à LXC et le partager avec Samba",
"ogDescription": "Donner accès à un disque USB dans un conteneur LXC privilégié sur Proxmox VE, y installer Samba et partager son contenu sur le réseau local."
},
"header": {
"title": "Ajouter un disque ou une clé USB à LXC et le partager sur le réseau avec Samba",
"description": "Rendre un disque dur ou une clé USB accessible dans un conteneur LXC privilégié sur Proxmox VE, y installer Samba et partager son contenu sur le réseau.",
"section": "Guides"
},
"recommended": {
"calloutTitle": "Recommandé",
"calloutIntro": "ProxMenux propose les deux parties de cette procédure sous forme de menus guidés :",
"items": [
"<strong>Gestion des disques → Formater/effacer un disque physique</strong> pour le formatage.",
"<strong>Stockage et partage → Partage réseau LXC → Serveur Samba dans LXC</strong> pour l’installation dans le conteneur privilégié et la configuration de Samba."
],
"calloutOutro": "Les procédures guidées gèrent les particularités des droits des conteneurs non privilégiés, les profils de partage en lecture-écriture, lecture seule ou personnalisés, ainsi que le groupe sharedfiles. Ce guide présente les étapes manuelles pour les comprendre ou les configurer vous-même."
},
"intro": {
"body": "Un disque dur ou une clé USB peut être utile sur un hôte Proxmox, surtout sur un mini-PC offrant peu de possibilités d’extension interne. Ce guide explique :",
"stepsTitle": "Ce que vous allez faire",
"steps": [
"Fixation du disque USB à un LXC privilégié.",
"Installation de Samba à l'intérieur du conteneur.",
"Partage du contenu du disque sur le réseau local."
],
"useCasesTitle": "Cas d'utilisation",
"useCases": [
"Héberger des fichiers torrent et les partager sur le réseau.",
"Fournir du stockage à un serveur multimédia comme Plex, Jellyfin ou Emby.",
"Stocker des documents que Paperless traite automatiquement.",
"Stockage générique de type NAS pour le réseau domestique."
],
"privilegedCalloutTitle": "Conteneur privilégié pour cette procédure",
"privilegedCalloutBody": "Cette procédure utilise un conteneur LXC privilégié avec un périphérique de bloc comme <code>mp0</code>. Pour un conteneur non privilégié, vous pouvez monter le système de fichiers sur l’hôte puis partager son répertoire par montage bind, avec les droits et correspondances d’identifiants adaptés. Voir <strong>Stockage et partage → Points de montage LXC</strong> dans ProxMenux."
},
"attach": {
"heading": "1. Rendre le disque USB accessible dans LXC",
"identifyHeading": "1.1 Identifier l'appareil",
"identifyBody": "Comparez la liste des disques <strong>avant</strong> et <strong>après</strong> le branchement USB. Le nouveau périphérique est le disque recherché.",
"beforeLabel": "Avant:",
"afterLabel": "Après:",
"imageBeforeAlt": "Liste de disques avant d'ajouter un lecteur USB",
"imageAfterAlt": "Liste de disques après l'ajout du lecteur USB",
"lsblkBody": "Utilisez aussi <code>lsblk -o NAME,SIZE,MODEL,SERIAL</code> pour afficher les périphériques de bloc avec leur modèle et numéro de série.",
"stableCalloutTitle": "Important — utilisez un identifiant stable",
"stableCalloutBody": "Le nom <code>/dev/sdb1</code> peut changer après un redémarrage, surtout avec plusieurs disques USB. Recherchez l’identifiant persistant :",
"stableCalloutCode": "ls -l /dev/disk/by-id/",
"stableCalloutAfter": "Utilisez l’entrée <code>/dev/disk/by-id/usb-...</code> de la partition choisie dans la configuration LXC, au lieu de <code>/dev/sdb1</code>. Choisissez la partition, pas le disque entier : elle restera identifiable si l’ordre des périphériques change.",
"formatHeading": "1.2 Formater le disque",
"formatBody": "ext4 convient aux partages sous Linux : distinction des majuscules, ACL POSIX et fichiers volumineux. Le formatage détruit le contenu du système de fichiers existant. Vérifiez la partition puis exécutez la commande sur <strong>l’hôte Proxmox</strong> :",
"formatCode": "mkfs.ext4 /dev/sdb1",
"formatAfter": "Remplacez <code>/dev/sdb1</code> par la partition réelle ou son chemin persistant <code>/dev/disk/by-id/usb-...-part1</code>.",
"mkdirHeading": "1.3 Créer le point de montage dans le conteneur LXC",
"mkdirBody": "À l'intérieur du LXC, créez le répertoire où le disque apparaîtra (tout nom fonctionne):",
"mkdirCode": "mkdir /mnt/lxc_USB",
"wireHeading": "1.4 Déclarer le périphérique dans LXC",
"wireBody": "Sur <strong>l’hôte Proxmox</strong>, modifiez la configuration du conteneur. Remplacez <code>'<'CTID'>'</code> par son identifiant :",
"wireEditCode": "nano /etc/pve/lxc/CTID.conf",
"wireAddLine": "Ajouter cette ligne:",
"wireConfigCode": "mp0: /dev/disk/by-id/usb-VENDOR_MODEL_SERIAL-part1,mp=/mnt/lxc_USB,backup=0",
"wireShortForm": "Vous pouvez aussi utiliser l’entrée courte <code>mp0: /dev/sdb1,mp=/mnt/lxc_USB,backup=0</code> si vous acceptez le risque de changement du nom du périphérique.",
"wireBackupNote": "Cet exemple utilise <code>backup=0</code>. Le contenu des montages de périphériques et des montages bind n’est pas inclus dans les sauvegardes <code>vzdump</code> du conteneur. Prévoyez une sauvegarde distincte des données du disque externe.",
"restartHeading": "1.5 Redémarrez le LXC et définissez les permissions",
"restartBody": "Redémarrer le CT pour appliquer le point de montage:",
"restartCode": "pct reboot CTID",
"permsBody": "Dans le conteneur LXC, créez le compte de partage avant de lui attribuer le répertoire, puis définissez les droits :",
"permsCode": "adduser --system --group --no-create-home --shell /usr/sbin/nologin proxmenux\nmkdir -p /mnt/lxc_USB\nchown -R proxmenux:proxmenux /mnt/lxc_USB\nchmod 770 /mnt/lxc_USB",
"permsNoteTitle": "Remarque",
"permsNote": "Remplacez <code>proxmenux</code> par le nom choisi. Le mode <code>770</code> autorise le propriétaire et le groupe, sans accès pour les autres ; il est plus restrictif que <code>chmod -R 777</code>. Le compte est créé ici puis enregistré dans Samba à l’étape 2.2."
},
"samba": {
"heading": "2. Installer Samba",
"installHeading": "2.1 Installez le paquet à l'intérieur du LXC",
"installCode": "apt-get update\napt-get install -y samba",
"confirmBody": "Confirmez que le service fonctionne :",
"confirmCode": "systemctl status smbd.service",
"userHeading": "2.2 Vérifier le compte de partage",
"userBody": "Le compte système <code>proxmenux</code> a été créé sans shell de connexion à l’étape 1.5. Vérifiez-le avant de définir son mot de passe Samba et utilisez le nom choisi à chaque étape :",
"userCode": "id proxmenux",
"passwordBody": "Définissez le mot de passe Samba. Il est distinct du mot de passe système, car Samba possède son propre stockage d’identifiants :",
"passwordCode": "smbpasswd -a proxmenux",
"aclHeading": "2.3 Définir le propriétaire et les ACL",
"aclBody": "Si le <code>chown</code> de l’étape 1.5 suffit, les droits sont prêts. Pour plusieurs utilisateurs ayant des droits différents sur le même chemin, utilisez des ACL :",
"aclCode": "apt-get install -y acl\nsetfacl -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB\nsetfacl -d -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB # default ACL — applies to new files"
},
"configure": {
"heading": "3. Configurer le partage Samba",
"editHeading": "3.1 Modifier smb.conf",
"editCode": "nano /etc/samba/smb.conf",
"appendBody": "Ajoutez une définition de partage à la fin du fichier :",
"shareCode": "[lxc_usb]\n comment = Shared USB storage\n path = /mnt/lxc_USB\n read only = no\n writable = yes\n browseable = yes\n guest ok = no\n valid users = proxmenux\n create mask = 0660\n directory mask = 0770",
"validUsersNoteTitle": "Remarque",
"validUsersNote": "La ligne <code>valid users = proxmenux</code> limite l'accès à ce seul utilisateur Samba. Pour l'accès par groupe, utilisez <code>valid users = @samba_users</code> après avoir ajouté les utilisateurs à un groupe nommé <code>samba_users</code>.",
"reloadHeading": "3.2 Recharger Samba",
"reloadCode": "systemctl restart smbd"
},
"verify": {
"heading": "4. Vérifier l'accès",
"body": "Depuis n'importe quel client LAN, naviguez vers <code>\\\\'<'CT_IP'>'</code> (Windows) ou <code>smb://'<'CT_IP'>'</code> (gestionnaires de fichiers macOS / Linux). Authentifier avec l'utilisateur Samba (<code>proxmenux</code>) et le mot de passe que vous définissez avec <code>smbpasswd</code>.",
"image1Alt": "Accès au serveur Samba depuis un client",
"image2Alt": "Demande d'authentification Samba",
"usageBody": "Vous pouvez utiliser le partage dans le conteneur et sur le réseau :",
"image3Alt": "Utilisation du disque USB via le partage"
},
"troubleshoot": {
"heading": "Dépannage",
"items": [
"<strong><code>pct reboot</code> échoue avec « device not found » :</strong> vérifiez que le chemin dans <code>mp0</code> existe sur l’hôte. Consultez <code>ls -l /dev/disk/by-id/</code> et corrigez le chemin.",
"<strong>Le conteneur démarre, mais <code>/mnt/lxc_USB</code> est vide :</strong> le disque peut ne pas être monté, ou son système de fichiers peut être vide. Vérifiez depuis l’hôte avec <code>pct exec '<'CTID'>' -- mount | grep lxc_USB</code>. Si le montage est absent, contrôlez sa configuration, le chemin du périphérique et les erreurs de démarrage.",
"<strong>L’authentification Samba réussit, mais l’écriture échoue avec « Permission denied » :</strong> vérifiez les droits Linux du répertoire et les réglages d’écriture du partage. Consultez <code>chown</code> et <code>setfacl</code> dans les sections 1.5 et 2.3.",
"<strong>Le partage reste invisible, mais <code>smb://'<'ip'>'/lxc_usb</code> fonctionne :</strong> l’ancienne découverte NetBIOS utilise <code>nmbd</code>. Windows moderne utilise WS-Discovery ; sur Debian 12, installez <code>apt-get install -y wsdd</code> ; sur Debian 13, où <code>wsdd</code> n’est pas dans l’archive stable, utilisez <code>apt-get install -y wsdd2</code>. Vérifiez le service et le pare-feu. Activer uniquement <code>nmbd</code> ne fournit pas WS-Discovery.",
"<strong>Pour ajouter un autre utilisateur au partage :</strong> créez le compte avec <code>adduser</code>, enregistrez-le avec <code>smbpasswd -a</code> et ajoutez-le à la liste <code>valid users =</code>, séparée par des virgules. Accordez aussi les droits ou ACL nécessaires sur le système de fichiers."
]
}
}
+165
View File
@@ -0,0 +1,165 @@
{
"meta": {
"title": "Installer les pilotes NVIDIA sur Proxmox VE 9 — procédure manuelle | Guides ProxMenux",
"description": "Installer et configurer manuellement les pilotes NVIDIA sur un hôte Proxmox VE 9, puis donner accès au GPU à un ou plusieurs conteneurs LXC. Couvre les pilotes, le service de persistance, le correctif NVENC facultatif et la configuration de chaque conteneur.",
"ogTitle": "Installation des pilotes NVIDIA sur Proxmox VE 9 (procédure manuelle)",
"ogDescription": "Installer manuellement NVIDIA sur PVE 9 : pilote hôte, service de persistance, correctif NVENC facultatif et accès au GPU pour chaque conteneur LXC."
},
"header": {
"title": "Installation des pilotes de cartes graphiques NVIDIA sur Proxmox VE 9 (procédure manuelle)",
"description": "Installer et configurer manuellement les pilotes NVIDIA sur un hôte Proxmox VE 9, puis donner accès au GPU à un ou plusieurs conteneurs LXC. Couvre les pilotes, le service de persistance, le correctif NVENC facultatif et la configuration de chaque conteneur.",
"section": "Guides"
},
"intro": {
"calloutTitle": "Remarque",
"calloutBody": "Cette procédure manuelle est conservée comme référence. Pour la plupart des utilisateurs, préférez l’assistant ProxMenux : <strong>Installer les pilotes NVIDIA sur l’hôte</strong> dans <em>GPU et Coral-TPU</em>, puis <strong>Ajouter un GPU à LXC</strong> ou <strong>Ajouter un GPU à une VM</strong> pour configurer l’invité. L’assistant effectue ces étapes avec des vérifications supplémentaires des en-têtes du noyau, d’IOMMU et des conflits VFIO. Cette page aide à comprendre chaque commande ou à adapter la configuration.",
"targetNote": "Cible à <strong>Proxmox VE 9</strong> (Debian Trixie). PVE 7 (Bullseye) et PVE 8 (Bookworm) ne sont plus couverts.",
"stepsTitle": "Ce que vous allez faire",
"steps": [
"Préparer l’hôte Proxmox VE 9 : bloquer nouveau, vérifier les dépôts et les prérequis.",
"Installez le pilote NVIDIA sur l'hôte.",
"Installez le service de persistance NVIDIA.",
"Facultatif : appliquer le correctif keylase pour lever la limite de sessions NVENC simultanées sur les GPU grand public.",
"Donner accès au GPU à un ou plusieurs conteneurs LXC et installer la version du pilote correspondante dans chacun."
]
},
"prepareHost": {
"heading": "1. Préparer l'hôte (PVE 9)",
"blacklistHeading": "1.1 Bloquer nouveau",
"blacklistBody": "Vérifiez si le pilote open source <code>nouveau</code> est déjà sur la liste noire:",
"blacklistCheckCode": "cat /etc/modprobe.d/blacklist.conf",
"blacklistAdd": "Si <code>blacklist nouveau</code> n'apparaît pas, ajoutez-le et redémarrez :",
"blacklistAddCode": "echo \"blacklist nouveau\" >> /etc/modprobe.d/blacklist.conf\nupdate-initramfs -u -k all\nreboot",
"blacklistImageAlt": "Vérification de la liste noire",
"reposHeading": "1.2 Vérifier les dépôts (PVE 9 / Trixie)",
"reposBody": "Les outils de post-installation ont peut-être déjà configuré les dépôts. Vérifiez d’abord les sources existantes et ignorez les modifications déjà effectuées ; ne créez pas de doublons.",
"reposOtherwise": "Sinon, sur une installation PVE 9 d’origine sans abonnement Enterprise :",
"reposEditCode": "nano /etc/apt/sources.list.d/proxmox.sources",
"reposPveBody": "Assurez-vous qu'il contient la source sans abonnement pour Trixie:",
"reposPveCode": "Types: deb\nURIs: http://download.proxmox.com/debian/pve\nSuites: trixie\nComponents: pve-no-subscription\nSigned-By: /usr/share/keyrings/proxmox-archive-keyring.gpg",
"reposDebianBody": "Et les sources Debian à <code>/etc/apt/sources.list.d/debian.sources</code> :",
"reposDebianCode": "Types: deb\nURIs: http://deb.debian.org/debian/\nSuites: trixie trixie-updates\nComponents: main contrib non-free non-free-firmware\nSigned-By: /usr/share/keyrings/debian-archive-keyring.gpg\n\nTypes: deb\nURIs: http://security.debian.org/debian-security/\nSuites: trixie-security\nComponents: main contrib non-free non-free-firmware\nSigned-By: /usr/share/keyrings/debian-archive-keyring.gpg",
"updateHeading": "1.3 Mettre à jour le système et installer les conditions préalables",
"updateCode": "apt update && apt dist-upgrade -y",
"buildToolsBody": "Installez les outils de compilation et les en-têtes du noyau nécessaires pour compiler le module du noyau NVIDIA:",
"buildToolsCode": "apt-get install -y git\napt-get install -qqy pve-headers-$(uname -r) gcc make"
},
"installDriver": {
"heading": "2. Installez le pilote NVIDIA sur l'hôte",
"pickHeading": "2.1 Choisir une version du pilote",
"pickBody": "Choisissez une branche de pilote compatible avec le GPU et le noyau utilisé. La plus récente peut exclure les anciens GPU ; vérifiez les produits pris en charge pour la version NVIDIA choisie :",
"pickUrlCode": "https://download.nvidia.com/XFree86/Linux-x86_64/latest.txt",
"nvencCallout": "Si vous prévoyez d'appliquer le correctif NVENC (étape 4), vérifiez que le correctif prend en charge la version du pilote choisie en premier: <patchLink>github.com/keylase/nvidia-patch</patchLink>",
"nvencCalloutTitle": "Attention",
"pickReplace": "Remplacez <code>latest.txt</code> dans l’URL par le numéro de version pour trouver l’installateur se terminant par <code>.run</code>. Liste complète des pilotes :",
"pickListCode": "https://download.nvidia.com/XFree86/Linux-x86_64/",
"pickImageAlt": "Téléchargement du pilote NVIDIA",
"pickVersionNote": "Dans le reste de ce guide, remplacer <code>'<'VERSION'>'</code> par la version actuelle (par exemple <code>580.95.05</code>).",
"downloadHeading": "2.2 Téléchargez et exécutez l'installateur",
"downloadCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run",
"firstPassBody": "Lancez l’installateur. L’option suivante peut désactiver <code>nouveau</code> si nécessaire ; un redémarrage peut être requis avant de terminer :",
"firstPassCode": "./NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none --disable-nouveau\nreboot",
"secondPassBody": "Après le retour de l'hôte, exécutez à nouveau l'installateur pour compiler et installer le module noyau:",
"secondPassCode": "/opt/nvidia/NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none",
"modulesHeading": "2.3 Charger les modules NVIDIA au démarrage",
"modulesBody": "Modifiez la configuration de chargement des modules :",
"modulesEditCode": "nano /etc/modules-load.d/modules.conf",
"modulesAddBody": "Ajoutez les modules NVIDIA pour l’hôte et LXC. Les modules VFIO servent au passthrough vers les VM et ne sont pas nécessaires ici :",
"modulesAddCode": "nvidia\nnvidia_uvm",
"modulesSaveBody": "Enregistrer (<code>Ctrl+X</code>) et reconstruire initramfs:",
"modulesSaveCode": "update-initramfs -u -k all",
"udevHeading": "2.4 Créer des règles udev",
"udevBody": "Pour créer les nœuds de périphérique <code>/dev/nvidia*</code> au chargement des modules :",
"udevEditCode": "nano /etc/udev/rules.d/70-nvidia.rules",
"udevRulesCode": "# /etc/udev/rules.d/70-nvidia.rules\nKERNEL==\"nvidia\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-smi -L'\"\nKERNEL==\"nvidia_uvm\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-modprobe -c0 -u'\"",
"udevSaveBody": "Enregistrer (<code>Ctrl+X</code>)."
},
"persistence": {
"heading": "3. Service de persistance NVIDIA",
"body": "Le service de persistance garde le GPU initialisé lorsqu’aucune autre application ne l’utilise. Il réduit la latence de réinitialisation et conserve cet état entre les clients :",
"installCode": "cd /opt/nvidia\ngit clone https://github.com/NVIDIA/nvidia-persistenced.git\ncd nvidia-persistenced/init\n./install.sh\nreboot",
"verifyBody": "Après redémarrage, vérifiez que le pilote est chargé et le service actif :",
"verifySmiCode": "nvidia-smi",
"smiImageAlt": "Sortie NVIDIA SMI",
"verifyServiceCode": "systemctl status nvidia-persistenced",
"serviceImageAlt": "État du service de persistance NVIDIA"
},
"nvenc": {
"heading": "4. Facultatif : lever la limite de sessions NVENC simultanées",
"body": "La limite de sessions NVENC dépend du GPU et du pilote. Consultez la matrice NVIDIA plutôt que de supposer un nombre par génération. Le correctif keylase supprime la limite logicielle pour les pilotes pris en charge et peut aider le transcodage Plex ou Jellyfin.",
"code": "cd /opt/nvidia\ngit clone https://github.com/keylase/nvidia-patch.git\ncd nvidia-patch\n./patch.sh",
"imageAlt": "Application du patch NVIDIA",
"after": "Réappliquez le correctif après chaque mise à jour du pilote. Le dépôt keylase contient aussi <code>patch-fbc.sh</code> pour FBC, la capture du tampon d’image."
},
"lxcSetup": {
"heading": "5. Configurer l’accès au GPU dans un conteneur LXC",
"identifyHeading": "5.1 Identifier les numéros d'appareil",
"identifyBody": "Sur l'hôte:",
"identifyCode": "ls -l /dev/nv*",
"identifyImageAlt": "Liste des appareils NVIDIA",
"identifyNote": "Notez les numéros majeurs des périphériques ; ils peuvent varier selon le système. Valeurs typiques :",
"tableHeaders": {
"device": "Appareil",
"major": "Numéro majeur typique"
},
"tableRows": [
{
"device": "<code>/dev/nvidia0</code>, <code>/dev/nvidiactl</code>",
"major": "195"
},
{
"device": "<code>/dev/nvidia-uvm</code>, <code>/dev/nvidia-uvm-tools</code>",
"major": "509 (variable)"
},
{
"device": "<code>/dev/dri/*</code>",
"major": "226"
},
{
"device": "<code>/dev/nvidia-modeset</code>",
"major": "195 (partagé avec nvidia)"
}
],
"editHeading": "5.2 Modifier la configuration de LXC",
"editBody": "Arrêtez le conteneur s’il est actif. Ouvrez sa configuration en remplaçant <code>'<'CTID'>'</code> par son identifiant :",
"editCode": "nano /etc/pve/lxc/CTID.conf",
"editConfigBody": "Commentez uniquement les lignes <code>lxc.cgroup2.devices.allow</code> ou <code>/dev/dri</code> réellement conflictuelles. Ajoutez la configuration NVIDIA et adaptez les numéros majeurs aux périphériques NVIDIA affichés par <code>ls -l /dev/nv*</code> sur <strong>votre</strong> hôte :",
"editConfigCode": "lxc.cgroup2.devices.allow: c 195:* rwm\nlxc.cgroup2.devices.allow: c 509:* rwm\nlxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file\nlxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file",
"editConfigImageAlt": "Configuration LXC",
"editSave": "Enregistrer (<code>Ctrl+X</code>) et démarrer le conteneur.",
"installCtHeading": "5.3 Installez le pilote dans le conteneur",
"installCtCalloutTitle": "Important",
"installCtCalloutBody": "Cette partie s’exécute <strong>dans le conteneur</strong>, pas sur l’hôte.",
"installCtBody": "Le module du noyau est déjà chargé sur l’hôte. Le conteneur a seulement besoin des bibliothèques de l’espace utilisateur correspondant à la même version du pilote :",
"installCtCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run\n./NVIDIA-Linux-x86_64-VERSION.run --no-kernel-module",
"installCtAfter": "Lisez les demandes et limitez cette installation aux bibliothèques de l’espace utilisateur. Ne compilez ni n’installez de module du noyau dans LXC.",
"installCtImageAlt": "Installation du pilote NVIDIA",
"verifyCtHeading": "5.4 Vérifier dans le conteneur",
"verifyCtSmiCode": "nvidia-smi",
"verifyCtSmiImageAlt": "NVIDIA SMI dans LXC",
"verifyCtLsCode": "ls -l /dev/nv*",
"verifyCtLsImageAlt": "Dispositifs NVIDIA dans LXC",
"verifyCtAfter": "Le GPU devrait être listé et ses nœuds de périphérique présents dans le système de fichiers du conteneur.",
"workloadHeading": "5.5 Vérifier l’utilisation du GPU avec une charge réelle",
"workloadBody": "Activez l’accélération NVIDIA dans Plex ou Jellyfin, lancez un transcodage et vérifiez l’utilisation réelle du GPU dans le tableau de bord ou les journaux. Installer le pilote ne l’active pas automatiquement dans l’application.",
"workloadImage1Alt": "Plex utilisant NVIDIA GPU",
"workloadImage2Alt": "Plex utilisant NVIDIA GPU - session active",
"repeatNote": "Répétez la <strong>section 5</strong> pour chaque conteneur ayant besoin du GPU. Lors d’une mise à jour du pilote hôte, maintenez les bibliothèques de chaque conteneur à la version correspondante."
},
"docker": {
"heading": "6. (facultatif) NVIDIA Docker à l'intérieur d'un LXC",
"body": "Si Docker fonctionne déjà dans LXC, installez-y <code>nvidia-container-toolkit</code> pour donner accès au GPU à ses conteneurs Docker. L’accès au GPU depuis LXC doit déjà fonctionner. Ces commandes concernent Docker exécuté avec les droits root :",
"code": "apt-get update\napt-get install -y ca-certificates curl gnupg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor --yes -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' > /etc/apt/sources.list.d/nvidia-container-toolkit.list\napt-get update\napt-get install -y nvidia-container-toolkit\nnvidia-ctk runtime configure --runtime=docker\nsystemctl restart docker",
"after": "Ces commandes configurent le dépôt NVIDIA, installent le toolkit, configurent le runtime Docker et redémarrent Docker. Les droits sur les périphériques et restrictions cgroup de LXC restent applicables ; vérifiez le GPU avec une charge de test."
},
"troubleshoot": {
"heading": "Dépannage",
"items": [
"<strong><code>nvidia-smi</code> fonctionne sur l’hôte, mais affiche « No devices found » dans le conteneur :</strong> vérifiez les montages, droits et versions des bibliothèques. Si elles diffèrent, installez la même <code>'<'VERSION'>'</code> que l’hôte avec <code>--no-kernel-module</code>.",
"<strong>La compilation du pilote échoue :</strong> consultez le journal. « No precompiled kernel interface was found » peut simplement annoncer une compilation locale. Installez les en-têtes correspondant à <code>uname -r</code> avec <code>apt-get install pve-headers-$(uname -r)</code>, ou le paquet proxmox-headers équivalent.",
"<strong>Les sessions NVENC restent limitées :</strong> vérifiez que le correctif prend en charge le pilote actif. Une mise à jour peut l’écraser. Pour une version compatible, réappliquez <code>./patch.sh</code> depuis <code>/opt/nvidia/nvidia-patch</code> et consultez sa sortie.",
"<strong>Le GPU ne répond plus après une période d’inactivité :</strong> vérifiez <code>systemctl status nvidia-persistenced</code> et activez le service si nécessaire. Consultez aussi les journaux du noyau et du pilote : ce n’est pas la seule cause possible.",
"<strong>Le conteneur démarre, mais <code>ls /dev/nv*</code> n’affiche aucun périphérique NVIDIA :</strong> vérifiez les montages bind et chemins sur l’hôte. Utilisez <code>ls -l /dev/nv*</code> pour vérifier les numéros majeurs NVIDIA, puis les règles <code>lxc.cgroup2.devices.allow</code> et les droits."
]
}
}