mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-01 10:22:08 +00:00
Merge remote-tracking branch 'origin/develop' into HEAD
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Proxmox-Sicherungen in persönlichem Cloud-Speicher | ProxMenux",
|
||||
"description": "Mit rclone einen persönlichen Cloud-Speicher wie Google Drive, Mega, Dropbox oder OneDrive als Verzeichnis auf dem Proxmox-VE-Host einhängen, als Sicherungsspeicher für vzdump registrieren und VMs sowie Container direkt in die Cloud sichern — ohne zusätzliches Sicherungsskript.",
|
||||
"ogTitle": "Proxmox-Sicherungen in persönlichem Cloud-Speicher",
|
||||
"ogDescription": "Mit rclone Cloud-Speicher auf dem Proxmox-VE-Host einhängen und als vzdump-Ziel für Sicherungen von VMs und Containern verwenden."
|
||||
},
|
||||
"header": {
|
||||
"title": "Proxmox-Sicherungen in persönlichem Cloud-Speicher",
|
||||
"description": "Mit rclone einen persönlichen Cloud-Speicher wie Google Drive, Mega, Dropbox oder OneDrive als Verzeichnis auf dem Proxmox-VE-Host einhängen, als Sicherungsspeicher für vzdump registrieren und VMs sowie Container direkt in die Cloud sichern — ohne zusätzliches Sicherungsskript.",
|
||||
"section": "Leitfäden"
|
||||
},
|
||||
"intro": {
|
||||
"pbsCalloutTitle": "Ziehen Sie zuerst Proxmox Backup Server in Betracht",
|
||||
"pbsCalloutBody": "Auf einem zweiten Rechner, der die x86-64-Anforderungen erfüllt, bietet <pbsLink>Proxmox Backup Server</pbsLink> inkrementelle, deduplizierte Sicherungen mit optionaler clientseitiger Verschlüsselung. Er ist für VM-Sicherungen ausgelegt. Diese Anleitung beschreibt stattdessen das Einhängen von Cloud-Speicher wie Google Drive, Mega, OneDrive oder Dropbox als Sicherungsziel.",
|
||||
"stepsTitle": "Was Sie einrichten",
|
||||
"steps": [
|
||||
"Ein Verzeichnis auf dem Proxmox-Host erstellen und als Speicher für vzdump-Sicherungen registrieren.",
|
||||
"Installieren und konfigurieren Sie rclone für Ihren Cloud-Anbieter.",
|
||||
"Montieren Sie den Cloud-Ordner in das Verzeichnis.",
|
||||
"Den Cloud-Speicher bei jedem Systemstart mit einer systemd-Einheit einhängen."
|
||||
],
|
||||
"vzdumpCalloutTitle": "Hinweis zu vzdump-Sicherungen in Proxmox",
|
||||
"vzdumpCalloutBody": "Proxmox-vzdump-Archive sind <strong>Vollsicherungen, keine inkrementellen Sicherungen</strong>. Ihre tatsächliche Größe hängt von den enthaltenen Daten und der Komprimierung ab, nicht allein von der Kapazität des virtuellen Datenträgers. Belegt ein Archiv 30 GB, benötigen fünf aufbewahrte Archive ungefähr 150 GB. Legen Sie eine Aufbewahrungsrichtlinie fest, damit der Cloud-Speicher nicht vollläuft."
|
||||
},
|
||||
"createDir": {
|
||||
"heading": "1. Verzeichnis auf dem Host erstellen und als Sicherungsspeicher registrieren",
|
||||
"body": "Verbinden Sie sich per SSH mit dem Host oder öffnen Sie die Proxmox-Shell. Erstellen Sie unter <code>/mnt/</code> ein Verzeichnis als Einhängepunkt. Wählen Sie einen Namen, der den Anbieter erkennen lässt:",
|
||||
"mkdirCode": "mkdir -p /mnt/gdrive",
|
||||
"afterMkdir": "Im Proxmox Web UI: <strong>Datacenter → Storage → Add → Directory</strong>.",
|
||||
"image1Alt": "Hinzufügen von neuem Speicher in Proxmox",
|
||||
"configIntro": "Konfigurieren Sie es so:",
|
||||
"configItems": [
|
||||
"<strong>ID: </strong> <code>gdrive</code> (oder was auch immer Sie für den Verzeichnisnamen verwendet haben)",
|
||||
"<strong>Verzeichnis:</strong> <code>/mnt/gdrive</code>",
|
||||
"<strong>Inhalt:</strong> Wählen Sie <strong>VZDump-Sicherungsdatei</strong>."
|
||||
],
|
||||
"image2Alt": "Konfiguration eines neuen Speichers in Proxmox",
|
||||
"afterConfig": "Klicken Sie auf <strong>Hinzufügen</strong>:",
|
||||
"image3Alt": "Neuer Speicher in Proxmox hinzugefügt",
|
||||
"afterAdd": "Das Verzeichnis ist nun als Proxmox-Speicher registriert. Es ist noch leer, da der Cloud-Speicher bisher nicht eingehängt wurde."
|
||||
},
|
||||
"installRclone": {
|
||||
"heading": "2. rclone installieren und konfigurieren",
|
||||
"body": "<rcloneLink>rclone</rcloneLink> verbindet sich mit Cloud-Speicheranbietern. Installieren Sie es aus den Debian-Paketquellen:",
|
||||
"installCode": "apt-get update\napt-get install -y rclone",
|
||||
"newerCalloutTitle": "Wenn Sie ein neueres rclone benötigen",
|
||||
"newerCalloutBody": "Wenn Sie eine neuere Version als die in Debian benötigen, verwenden Sie den offiziellen Installer:",
|
||||
"newerCode": "curl https://rclone.org/install.sh | bash",
|
||||
"tunnelHeading": "2.1 Browserbasierte Authentifizierung über SSH-Tunnel",
|
||||
"tunnelBody": "Bei Anbietern mit Browser-Anmeldung fehlt auf dem Proxmox-Host meist ein Browser. Folgen Sie der <remoteSetupLink>rclone-Anleitung zur Ferneinrichtung</remoteSetupLink>: Nutzen Sie den Browser Ihres Laptops und leiten Sie dessen lokale Rückrufverbindung per SSH an rclone auf dem Host weiter.",
|
||||
"tunnelFrom": "Auf Ihrem <strong>Laptop</strong>, wobei Sie <code>ip_proxmox</code> durch die Proxmox-IP ersetzen:",
|
||||
"tunnelCode": "ssh -L localhost:53682:localhost:53682 root@ip_proxmox",
|
||||
"tunnelAfter": "Diese SSH-Sitzung öffnet den lokalen Port 53682 auf Ihrem Laptop und leitet Verbindungen an denselben Port des Proxmox-Hosts weiter. Lassen Sie sie während der rclone-Konfiguration geöffnet.",
|
||||
"runHeading": "2.2 rclone config ausführen",
|
||||
"runBody": "Führen Sie in der gerade geöffneten SSH-Sitzung Folgendes aus:",
|
||||
"runCode": "rclone config",
|
||||
"runAfter": "Folgen Sie den Anweisungen zum Hinzufügen einer neuen Remote-Konfiguration. Die Antworten hängen vom Anbieter ab; beachten Sie die <providerDocsLink>rclone-Anbieterdokumentation</providerDocsLink> für Google Drive, Mega, Dropbox, OneDrive usw. Entscheidend ist die Frage zur Authentifizierung:",
|
||||
"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": "Antworten Sie mit <strong>Y</strong>. rclone zeigt eine lokale URL an. Öffnen Sie sie im <strong>Browser Ihres Laptops</strong>; der SSH-Tunnel leitet die Verbindung weiter. Erlauben Sie rclone den Zugriff beim Cloud-Anbieter, um die Konfiguration abzuschließen.",
|
||||
"nameRemote": "Wählen Sie als Namen der Remote-Konfiguration einen zum Verzeichnis passenden Namen, etwa <code>gdrive</code>."
|
||||
},
|
||||
"mount": {
|
||||
"heading": "3. Cloud-Ordner einhängen",
|
||||
"body": "Erstellen Sie in Ihrem Cloud-Speicher einen Ordner für die Sicherungen, zum Beispiel <code>PBC</code> für Proxmox Backup Cloud.",
|
||||
"mountIntro": "Hängen Sie ihn im Verzeichnis auf dem Host ein:",
|
||||
"mountCode": "rclone mount gdrive:/PBC /mnt/gdrive --allow-other --allow-non-empty --vfs-cache-mode writes",
|
||||
"mountItems": [
|
||||
"<code>gdrive:/PBC</code> - der Ordner in Ihrer Cloud.",
|
||||
"<code>/mnt/gdrive</code> - das Hostverzeichnis, das Sie als Datenspeicher registriert haben."
|
||||
],
|
||||
"mountFootnote": "<strong>Dieser Befehl läuft im Vordergrund.</strong> Lassen Sie ihn zum Testen in einem Terminal laufen und erstellen Sie eine Sicherung. Für das automatische Einhängen bei jedem Systemstart richten Sie anschließend eine systemd-Einheit ein."
|
||||
},
|
||||
"systemd": {
|
||||
"heading": "4. Automatisch bei jedem Systemstart einhängen (systemd)",
|
||||
"body": "Eine systemd-Einheit bietet mehr Kontrolle als <code>crontab @reboot</code>: Sie kann den Netzwerkstart abwarten, bei Fehlern neu starten und Protokolle über <code>journalctl</code> bereitstellen.",
|
||||
"createIntro": "Erstellen Sie die Unit-Datei:",
|
||||
"createCode": "nano /etc/systemd/system/rclone-gdrive.service",
|
||||
"pasteIntro": "Einfügen:",
|
||||
"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": "Passen Sie <code>gdrive:/PBC</code> und <code>/mnt/gdrive</code> an, falls Sie andere Namen verwenden. Speichern Sie, verlassen Sie den Editor mit <code>Ctrl+X</code> und aktivieren und starten Sie den Dienst:",
|
||||
"enableCode": "systemctl daemon-reload\nsystemctl enable --now rclone-gdrive.service",
|
||||
"verifyIntro": "Überprüfung:",
|
||||
"verifyCode": "systemctl status rclone-gdrive.service\nmount | grep /mnt/gdrive",
|
||||
"verifyAfter": "Die Unit fordert nach 10 Sekunden einen Neustart an, wenn der rclone-Prozess mit einem Fehler endet. Das repariert keine abgelaufenen Zugangsdaten und garantiert keine Behebung aller Netzwerk- oder Anbieterfehler. Prüfen Sie <code>/var/log/rclone-gdrive.log</code> und <code>journalctl -u rclone-gdrive.service -f</code>.",
|
||||
"vfsCalloutTitle": "Warum --vfs-cache-mode writes?",
|
||||
"vfsCalloutBody": "Mit Schreibcache landen Schreibzugriffe wie <code>fwrite</code> zunächst im lokalen Datenträgercache. rclone lädt eine Datei nach dem Schließen und Ablauf der Schreibverzögerung hoch. Halten Sie genügend lokalen Platz für laufende Sicherungen frei und prüfen Sie den abgeschlossenen Upload, bevor Sie die Cloud-Kopie als verfügbar ansehen."
|
||||
},
|
||||
"configureBackup": {
|
||||
"heading": "5. Cloud-Speicher als Sicherungsziel einrichten",
|
||||
"body": "Wählen Sie in Proxmox bei einer geplanten oder manuell gestarteten Sicherung den registrierten Speicher als <strong>Ziel</strong>:",
|
||||
"image5Alt": "Backup-Ziel in Proxmox auswählen",
|
||||
"after": "Warten Sie nach Abschluss von vzdump auf das Ende des rclone-Uploads im Hintergrund und prüfen Sie das Archiv in der Oberfläche des Cloud-Anbieters:",
|
||||
"image6Alt": "Backup-Datei im Cloud Storage"
|
||||
},
|
||||
"retention": {
|
||||
"heading": "6. Aufbewahrung — Cloud-Speicherplatz im Blick behalten",
|
||||
"body": "Proxmox-vzdump-Archive sind <strong>Vollsicherungen, keine inkrementellen Sicherungen</strong>. Ihre tatsächliche Größe hängt von den enthaltenen Daten und der Komprimierung ab, nicht allein von der Kapazität des virtuellen Datenträgers. Belegt ein Archiv 30 GB, benötigen fünf aufbewahrte Archive ungefähr 150 GB. Legen Sie eine Aufbewahrungsrichtlinie fest, damit der Cloud-Speicher nicht vollläuft.",
|
||||
"uiPath": "In der Proxmox-Oberfläche: <strong>Rechenzentrum → Sicherung → [Ihr Auftrag] → Aufbewahrung</strong>:",
|
||||
"image7Alt": "Aufbewahrungseinstellungen für Sicherungen in Proxmox",
|
||||
"starterIntro": "Mögliche Ausgangswerte für eine Heim- oder Testumgebung:",
|
||||
"starterItems": [
|
||||
"Die letzten 5 täglichen Sicherungen aufbewahren",
|
||||
"Die letzten 4 wöchentlichen Sicherungen aufbewahren",
|
||||
"Die letzten 6 monatlichen Sicherungen aufbewahren"
|
||||
],
|
||||
"adjust": "Passen Sie die Werte an Ihr Cloud-Kontingent und die Änderungshäufigkeit der VMs an."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Fehlerbehebung",
|
||||
"items": [
|
||||
"<strong><code>Mount point /mnt/gdrive is itself on a fuse.rclone filesystem</code>:</strong> Das Verzeichnis ist bereits eingehängt, möglicherweise durch eine andere rclone-Instanz. Prüfen Sie, dass keine Sicherung läuft, bevor Sie den alten Mount mit <code>fusermount -uz /mnt/gdrive</code> entfernen. Starten Sie danach die systemd-Einheit neu.",
|
||||
"<strong>Die Sicherung ist sehr langsam:</strong> Prüfen Sie <code>--vfs-cache-mode writes</code> in der Zeile <code>ExecStart</code>, die Leistung des lokalen Caches, die Upload-Bandbreite und Anbieterlimits. Der Upload kann nach Abschluss von vzdump weiterlaufen.",
|
||||
"<strong>Die Sicherung meldet No space left on device:</strong> Prüfen Sie lokalen Cache-Platz und Cloud-Kontingent. Der Cache liegt meist unter <code>~/.cache/rclone/</code>. Wählen Sie bei Platzmangel etwa <code>--cache-dir /var/cache/rclone</code> auf einem Dateisystem mit genügend Platz. Ein anderer Pfad auf demselben vollen Dateisystem hilft nicht.",
|
||||
"<strong>Das rclone-Anmeldetoken ist abgelaufen:</strong> Verbinden Sie sich erneut per SSH mit dem Tunnel (<code>ssh -L localhost:53682:localhost:53682 root@ip_proxmox</code>) und führen Sie <code>rclone config reconnect gdrive:</code> aus, um die Anmeldung zu erneuern.",
|
||||
"<strong>Sicherungen sind in der Cloud vorhanden, lassen sich aber nicht korrekt wiederherstellen:</strong> Nutzen Sie Cloud-Speicher nicht als <strong>einziges</strong> Sicherungsziel. Ergänzen Sie ihn durch lokales PBS oder vzdump auf einem anderen Datenträger."
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Proxmox-VE-Anleitungen — Coral TPU, NVIDIA, Kodi in LXC, Samba, Cloud-Backups | ProxMenux",
|
||||
"description": "Ausführliche Proxmox-VE-Anleitungen: Kodi in einem LXC-Container mit GPU-Beschleunigung, NVIDIA-Treiber auf PVE 9, USB-Laufwerke per Samba im Container und vzdump-Sicherungen in Google Drive, Mega, Dropbox oder OneDrive. Dazu ausgewählte Community-Ressourcen, Glossar und Befehlsreferenz.",
|
||||
"ogTitle": "Proxmox-VE-Anleitungen — Coral TPU, NVIDIA, Kodi in LXC, Samba und Cloud-Backups",
|
||||
"ogDescription": "Ausführliche Proxmox-VE-Anleitungen zu GPU-Durchreichung, Kodi als LXC-Mediacenter, per Samba freigegebenen USB-Laufwerken und Cloud-Backups mit rclone sowie ausgewählte Community-Ressourcen.",
|
||||
"twitterTitle": "Proxmox-VE-Anleitungen | ProxMenux",
|
||||
"twitterDescription": "Ausführliche Proxmox-VE-Anleitungen zu GPUs, Kodi in LXC, Samba, Cloud-Backups und weiteren Themen.",
|
||||
"ogImageAlt": "ProxMenux-Anleitungen — ausführliche Tutorials für Proxmox VE"
|
||||
},
|
||||
"header": {
|
||||
"title": "ProxMenux-Anleitungen",
|
||||
"tagline": "Ausführliche Anleitungen, Kurzreferenzen und ausgewählte Community-Ressourcen, um Proxmox VE optimal zu nutzen."
|
||||
},
|
||||
"inDepth": {
|
||||
"heading": "Ausführliche Anleitungen",
|
||||
"intro": "Ausführliche Anleitungen für konkrete Proxmox-Aufgaben. Jede beschreibt die manuellen Schritte eines automatisierten ProxMenux-Ablaufs, damit Sie jeden Schritt nachvollziehen können.",
|
||||
"items": [
|
||||
{
|
||||
"slug": "kodi-lxc",
|
||||
"title": "Kodi in LXC mit GPU-Beschleunigung installieren und an Monitor oder Fernseher anschließen",
|
||||
"description": "Kodi in einem privilegierten LXC-Container unter Proxmox VE ausführen, die iGPU und USB-Eingabegeräte des Hosts zugänglich machen und den Server als Mediacenter direkt an einen Fernseher anschließen."
|
||||
},
|
||||
{
|
||||
"slug": "backup-cloud",
|
||||
"title": "Proxmox-Sicherungen in persönlichem Cloud-Speicher",
|
||||
"description": "Mit rclone einen persönlichen Cloud-Speicher wie Google Drive, Mega, Dropbox oder OneDrive als Verzeichnis auf dem Proxmox-VE-Host einhängen, als Sicherungsspeicher für vzdump registrieren und VMs sowie Container direkt in die Cloud sichern — ohne zusätzliches Sicherungsskript."
|
||||
},
|
||||
{
|
||||
"slug": "lxc-samba",
|
||||
"title": "USB-Festplatte oder -Stick in LXC einbinden und per Samba im Netzwerk freigeben",
|
||||
"description": "Eine USB-Festplatte oder einen USB-Stick in einem privilegierten LXC-Container unter Proxmox VE zugänglich machen, Samba installieren und die Inhalte im Netzwerk freigeben."
|
||||
},
|
||||
{
|
||||
"slug": "nvidia-manual",
|
||||
"title": "NVIDIA Grafikkartentreiber auf Proxmox VE 9 installieren (manuelles Verfahren)",
|
||||
"description": "NVIDIA-Treiber auf einem Proxmox-VE-9-Host manuell installieren und konfigurieren sowie die GPU einem oder mehreren LXC-Containern zugänglich machen. Behandelt Treiberinstallation, Persistenzdienst, optionalen NVENC-Patch und die Konfiguration je Container."
|
||||
}
|
||||
]
|
||||
},
|
||||
"references": {
|
||||
"heading": "ProxMenux-Referenzen",
|
||||
"intro": "Schnellreferenzmaterial aus der ProxMenux-Dokumentation selbst.",
|
||||
"cards": {
|
||||
"glossary": {
|
||||
"title": "Glossar",
|
||||
"description": "Mehr als 60 Definitionen technischer Begriffe aus ProxMenux: Proxmox, Virtualisierung, Speicher, Netzwerk und Linux. Schnell nachschlagen mit Kategorien und Querverweisen."
|
||||
},
|
||||
"helpInfo": {
|
||||
"title": "Hilfe und Info - Befehlskatalog",
|
||||
"description": "Ausgewählte Linux- und Proxmox-Befehle, nach Themen geordnet und mit Kopierfunktion. Entspricht der Befehlsreferenz im ProxMenux-Menü."
|
||||
},
|
||||
"linuxResources": {
|
||||
"title": "Linux Ressourcen",
|
||||
"description": "Externe Ressourcen zum Lernen der Linux-Kommandozeile, zu Sicherheitspraktiken, Überwachungswerkzeugen und ZFS — als Ergänzung zum ProxMenux-Befehlskatalog."
|
||||
},
|
||||
"externalRepos": {
|
||||
"title": "Externe Repositories",
|
||||
"description": "Skript-Repositories von Drittanbietern, die als alternative Menüoptionen in ProxMenux eingebunden sind, etwa community-scripts/ProxmoxVE."
|
||||
}
|
||||
}
|
||||
},
|
||||
"official": {
|
||||
"heading": "Offizielle Proxmox Ressourcen",
|
||||
"intro": "Dokumentation direkt von Proxmox Server Solutions — die maßgebliche Referenz für die Plattform.",
|
||||
"cards": {
|
||||
"pveDocs": {
|
||||
"title": "Proxmox VE Dokumentation",
|
||||
"description": "Das offizielle Administrationshandbuch mit umfassenden Informationen zu Installation, Netzwerk, Speicher, Clustern, Hochverfügbarkeit und API."
|
||||
},
|
||||
"pbsDocs": {
|
||||
"title": "Proxmox-Backup-Server-Dokumentation",
|
||||
"description": "Dokumentation für PBS — inkrementelle, deduplizierte, verschlüsselte Backups für Proxmox VE."
|
||||
},
|
||||
"videoTraining": {
|
||||
"title": "Offizielles Videotraining",
|
||||
"description": "Offizielle Videoanleitungen und Schulungen von Proxmox."
|
||||
},
|
||||
"forum": {
|
||||
"title": "Proxmox Forum",
|
||||
"description": "Offizielles Community-Forum für Fragen, Fehlerbehebung und Erfahrungsaustausch. Wird von den Projektbetreuern mitverfolgt."
|
||||
}
|
||||
}
|
||||
},
|
||||
"community": {
|
||||
"heading": "Gemeinschaftsprojekte & Ressourcen",
|
||||
"intro": "Open-Source-Projekte und ausgewählte Listen aus der Proxmox-Community. Unabhängig von Proxmox Server Solutions und ProxMenux; hier aufgeführt, weil sie sich als nützlich erwiesen haben.",
|
||||
"cards": {
|
||||
"helperScripts": {
|
||||
"title": "Proxmox VE Helper-Scripts",
|
||||
"description": "Von der Community gepflegter Katalog von Skripten zur einfachen Bereitstellung von LXC-Containern und VMs sowie für PVE-Anpassungen, etwa für Home Assistant, Plex oder Frigate. Führt die Idee von ttecks Helper-Scripts fort."
|
||||
},
|
||||
"awesome": {
|
||||
"title": "awesome-proxmox-ve (ausgewählte Ressourcen)",
|
||||
"description": "Umfangreiche, von der Community zusammengestellte Sammlung von Proxmox-VE-Ressourcen: Werkzeuge, Bibliotheken, Integrationen, Blogs und Videos. Ein guter Ausgangspunkt, um mehr zu entdecken."
|
||||
}
|
||||
},
|
||||
"suggestRich": "Kennen Sie eine gute Ressource, die hier fehlt? Erstellen Sie ein Issue oder einen PR auf <link>GitHub</link>. Diese Liste soll eine gezielte Auswahl bleiben und nicht alles auflisten."
|
||||
},
|
||||
"discussion": {
|
||||
"heading": "Gemeinschaftsdiskussion",
|
||||
"intro": "Wo Leute über Proxmox und ProxMenux sprechen.",
|
||||
"cards": {
|
||||
"proxmenuxDiscussions": {
|
||||
"title": "ProxMenux Discussions",
|
||||
"description": "GitHub Discussions für ProxMenux: Funktionsideen, Fragen und Antworten sowie Einblicke in eigene Installationen. Der passende Ort für Themen zu Menü, Monitor und Dokumentation."
|
||||
},
|
||||
"proxmoxForum": {
|
||||
"title": "Proxmox Forum",
|
||||
"description": "Offizielles Proxmox-Forum (auch oben verlinkt). Der richtige Ort für eingehende Fehlersuche und konfigurationsspezifische Probleme."
|
||||
},
|
||||
"reddit": {
|
||||
"title": "r/Proxmox auf Reddit",
|
||||
"description": "Aktives Subreddit für Diskussionen, Tipps und technische Hilfe. Niedrigere Einstiegshürde als im Forum und oft schnellere Antworten auf allgemeine Fragen."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Kodi in LXC mit GPU-Beschleunigung installieren | ProxMenux-Anleitungen",
|
||||
"description": "Kodi in einem privilegierten LXC-Container unter Proxmox VE ausführen, die iGPU und USB-Eingabegeräte des Hosts zugänglich machen und den Server als Mediacenter direkt an einen Fernseher anschließen.",
|
||||
"ogTitle": "Kodi in LXC mit GPU-Beschleunigung installieren",
|
||||
"ogDescription": "Kodi in einem privilegierten LXC-Container unter Proxmox VE mit Zugriff auf iGPU und USB-Eingabegeräte des Hosts ausführen und den Server zum Mediacenter machen."
|
||||
},
|
||||
"header": {
|
||||
"title": "Kodi in LXC mit GPU-Beschleunigung installieren und an Monitor oder Fernseher anschließen",
|
||||
"description": "Kodi in einem privilegierten LXC-Container unter Proxmox VE ausführen, die iGPU und USB-Eingabegeräte des Hosts zugänglich machen und den Server als Mediacenter direkt an einen Fernseher anschließen.",
|
||||
"section": "Leitfäden"
|
||||
},
|
||||
"intro": {
|
||||
"calloutTitle": "Hinweis",
|
||||
"calloutBody": "Diese Anleitung verwendet ein externes Community-Skript zur Einrichtung des Kodi-LXC-Containers. Den Zugriff auf die iGPU des Hosts können Sie auch mit ProxMenux einrichten: <strong>GPUs und Coral-TPU → GPU zu LXC hinzufügen</strong> konfiguriert <code>/dev/dri</code> und installiert die Treiber im Container. Das folgende Skript richtet zusätzlich Kodi und den Autostart auf <code>tty7</code> ein. Verwenden Sie es für ein fertig eingerichtetes LXC-Mediacenter; den <gpuLink>ProxMenux-Ablauf</gpuLink> nutzen Sie, wenn Sie nur GPU-Zugriff für einen selbst eingerichteten Container benötigen.",
|
||||
"credit": "Das ursprüngliche Kodi-LXC-Skript stammt von <authorLink>mrrudy</authorLink>.",
|
||||
"stepsTitle": "Was Sie einrichten",
|
||||
"steps": [
|
||||
"Mit dem Skript einen privilegierten LXC-Container mit Kodi erstellen.",
|
||||
"USB-Tastatur, Maus oder Controller im Container zugänglich machen.",
|
||||
"(Optional) Kodi aus den im Container eingerichteten Paketquellen aktualisieren."
|
||||
]
|
||||
},
|
||||
"createCt": {
|
||||
"heading": "1. Erstellen Sie den Kodi LXC",
|
||||
"body": "Wählen Sie für diese Anleitung <strong>Privileged</strong> in den erweiterten Skripteinstellungen. Standardmäßig erstellt das Skript unprivilegierte Container, die passende Geräteberechtigungen und ID-Zuordnungen benötigen. Es konfiguriert GPU-Zugriff, Kodi und den Autostart auf <code>tty7</code>:",
|
||||
"code": "bash -c \"$(wget -qLO - https://raw.githubusercontent.com/mrrudy/proxmoxHelper/main/ct/kodi-v1.sh)\"",
|
||||
"after": "Die Installation dauert etwas. Sobald Kodi auf <code>tty7</code> startet, schließen Sie Monitor oder Fernseher an den HDMI-/DisplayPort-Ausgang des Hosts an. Dort sollte die Kodi-Oberfläche erscheinen."
|
||||
},
|
||||
"addInput": {
|
||||
"heading": "2. Tastatur, Maus oder USB-Controller hinzufügen",
|
||||
"body": "Eingabegeräte finden Sie auf dem Host unter <code>/dev/input/</code>. Ermitteln Sie deren Major-Nummer:",
|
||||
"listCode": "ls -l /dev/input",
|
||||
"imageAlt": "Liste der Eingabegeräte",
|
||||
"afterList": "Verwenden Sie bei Zeichengeräten die Major-Nummer vor dem Komma, im Beispiel <code>13</code>. Bearbeiten Sie auf dem Host die Konfiguration des Kodi-LXC-Containers. Ersetzen Sie <code>'<'CTID'>'</code> durch seine ID, etwa <code>102</code>:",
|
||||
"editCode": "nano /etc/pve/lxc/CTID.conf",
|
||||
"addLines": "Fügen Sie Folgendes hinzu und passen Sie <code>13</code> an die Nummer auf <strong>Ihrem</strong> Host an:",
|
||||
"configCode": "lxc.cgroup2.devices.allow: c 13:* rwm\nlxc.mount.entry: /dev/input dev/input none bind,optional,create=dir",
|
||||
"imageConfigAlt": "LXC Konfiguration",
|
||||
"save": "Speichern Sie die Datei, beenden Sie den Editor mit <code>Ctrl+X</code> und starten Sie <strong>nur den Container</strong> neu. Ein Neustart des Proxmox-Hosts ist nicht nötig:",
|
||||
"restartCode": "pct reboot CTID",
|
||||
"plug": "Schließen Sie Tastatur, Maus oder Controller an. Kodi sollte nun darauf reagieren."
|
||||
},
|
||||
"updateKodi": {
|
||||
"heading": "3. (Optional) Kodi aus den eingerichteten Paketquellen aktualisieren",
|
||||
"calloutTitle": "Wichtig",
|
||||
"calloutBody": "Das team-xbmc-PPA ist <strong>nur für Ubuntu</strong> vorgesehen und wird laut Kodi derzeit nicht gepflegt. Ein fehlendes <code>add-apt-repository</code> identifiziert nicht die Distribution. Prüfen Sie <code>cat /etc/os-release</code> auf <code>NAME=\"Ubuntu\"</code>; fügen Sie Debian keine Ubuntu-PPAs hinzu. Die folgenden Befehle aktualisieren Pakete aus den eingerichteten Paketquellen des Containers.",
|
||||
"body": "Im Container (<code>pct enter '<'CTID'>'</code>):",
|
||||
"code": "apt update\napt install --only-upgrade kodi kodi-bin",
|
||||
"after": "Starten Sie den Container nach dem Update neu. Kodi verwendet die Version aus den eingerichteten Paketquellen; diese kann von der neuesten Projektversion abweichen."
|
||||
},
|
||||
"screenshots": {
|
||||
"heading": "Bildschirmfotos",
|
||||
"image1Alt": "Kodi-Schnittstelle 1",
|
||||
"image2Alt": "Kodi-Schnittstelle 2"
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Fehlerbehebung",
|
||||
"items": [
|
||||
"<strong>Der Kodi-LXC-Container startet, aber der Fernseher bleibt leer:</strong> Möglicherweise fehlt der Zugriff auf die iGPU. Prüfen Sie im Container <code>ls /dev/dri</code>; dort sollten <code>card0</code> und <code>renderD128</code> erscheinen. Falls das Verzeichnis leer ist, prüfen Sie die GPU-Durchreichung oder verwenden Sie in ProxMenux <strong>GPU zu LXC hinzufügen</strong>.",
|
||||
"<strong>Tastatur oder Maus nach Neustart nicht erkannt:</strong> Prüfen Sie, ob <code>/dev/input</code> eingehängt ist und Kodi Leserechte auf die Geräte hat. Führen Sie <code>ls -l /dev/input</code> auf Host und Container aus und prüfen Sie die Regel <code>lxc.cgroup2.devices.allow</code>.",
|
||||
"<strong>Hardwarebeschleunigte Wiedergabe nutzt CPU statt GPU:</strong> Installieren oder aktualisieren Sie die VA-API-Treiber im Container: <code>intel-media-va-driver</code> für neuere Intel-iGPUs, <code>i965-va-driver</code> für ältere und <code>mesa-va-drivers</code> für AMD.",
|
||||
"<strong><code>add-apt-repository: command not found</code>:</strong> Der Befehl ist nicht installiert; das beweist nicht, dass der Container Debian verwendet. Prüfen Sie Distribution und verfügbare Pakete. Verwenden Sie unter Debian die Debian-Pakete für Kodi und kein Ubuntu-PPA."
|
||||
]
|
||||
},
|
||||
"further": {
|
||||
"heading": "Weiterführende Informationen",
|
||||
"konpatRich": "<konpatLink>Konpats Blogbeitrag</konpatLink> mit weiterem Hintergrund zur Intel-iGPU-Durchreichung an LXC."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "USB-Laufwerk in LXC einbinden und per Samba freigeben | ProxMenux",
|
||||
"description": "Eine USB-Festplatte oder einen USB-Stick in einem privilegierten LXC-Container unter Proxmox VE zugänglich machen, Samba installieren und die Inhalte im Netzwerk freigeben.",
|
||||
"ogTitle": "USB-Laufwerk in LXC einbinden und per Samba freigeben",
|
||||
"ogDescription": "USB-Laufwerk einem privilegierten LXC-Container unter Proxmox VE zugänglich machen, Samba installieren und den Inhalt im LAN freigeben."
|
||||
},
|
||||
"header": {
|
||||
"title": "USB-Festplatte oder -Stick in LXC einbinden und per Samba im Netzwerk freigeben",
|
||||
"description": "Eine USB-Festplatte oder einen USB-Stick in einem privilegierten LXC-Container unter Proxmox VE zugänglich machen, Samba installieren und die Inhalte im Netzwerk freigeben.",
|
||||
"section": "Leitfäden"
|
||||
},
|
||||
"recommended": {
|
||||
"calloutTitle": "Empfohlen",
|
||||
"calloutIntro": "ProxMenux bietet beide Teile dieses Ablaufs als geführte Menüs an:",
|
||||
"items": [
|
||||
"<strong>Datenträgerverwaltung → Physischen Datenträger formatieren/löschen</strong> für die Formatierung.",
|
||||
"<strong>Speicher und Freigaben → LXC-Netzwerkfreigaben → Samba-Server in LXC</strong> für die Installation im privilegierten Container und die Samba-Konfiguration."
|
||||
],
|
||||
"calloutOutro": "Die geführten Abläufe berücksichtigen die Berechtigungen unprivilegierter Container und bieten Freigabeprofile für Lesen/Schreiben, Nur-Lesen oder eigene Einstellungen sowie die Gruppe sharedfiles. Diese Anleitung beschreibt die manuellen Schritte, damit Sie sie nachvollziehen oder selbst konfigurieren können."
|
||||
},
|
||||
"intro": {
|
||||
"body": "Ein zusätzliches USB-Laufwerk kann für einen Proxmox-Host hilfreich sein, besonders bei Mini-PCs mit wenig internem Erweiterungsplatz. Diese Anleitung erklärt:",
|
||||
"stepsTitle": "Was Sie einrichten",
|
||||
"steps": [
|
||||
"Ein USB-Laufwerk einem privilegierten LXC-Container zugänglich machen.",
|
||||
"Installieren von Samba im Container.",
|
||||
"Teilen der Festplatteninhalte über das LAN."
|
||||
],
|
||||
"useCasesTitle": "Anwendungsfälle",
|
||||
"useCases": [
|
||||
"Torrent-Dateien speichern und im Netzwerk bereitstellen.",
|
||||
"Speicher für einen Medienserver wie Plex, Jellyfin oder Emby bereitstellen.",
|
||||
"Dokumente speichern, die Paperless automatisch einliest.",
|
||||
"Generischer NAS-Speicher für das Heimnetzwerk."
|
||||
],
|
||||
"privilegedCalloutTitle": "Privilegierter Container für diese Anleitung",
|
||||
"privilegedCalloutBody": "Diese Anleitung verwendet einen privilegierten LXC-Container mit einem Blockgerät als <code>mp0</code>. Bei unprivilegierten Containern können Sie stattdessen das Dateisystem auf dem Host einhängen und sein Verzeichnis per Bind-Mount mit passenden ID-Zuordnungen und Berechtigungen durchreichen. Siehe <strong>Speicher und Freigaben → LXC-Einhängepunkte</strong> in ProxMenux."
|
||||
},
|
||||
"attach": {
|
||||
"heading": "1. USB-Laufwerk in LXC einbinden",
|
||||
"identifyHeading": "1.1 Identifizieren Sie das Gerät",
|
||||
"identifyBody": "Vergleichen Sie die Datenträgerliste <strong>vor</strong> und <strong>nach</strong> dem Anschließen des USB-Laufwerks. Das neue Gerät ist das gesuchte Laufwerk.",
|
||||
"beforeLabel": "Vorher:",
|
||||
"afterLabel": "Nachher:",
|
||||
"imageBeforeAlt": "Festplattenliste vor dem Hinzufügen von USB-Laufwerk",
|
||||
"imageAfterAlt": "Festplattenliste nach dem Hinzufügen von USB-Laufwerk",
|
||||
"lsblkBody": "Mit <code>lsblk -o NAME,SIZE,MODEL,SERIAL</code> listen Sie Blockgeräte mit Modell und Seriennummer auf.",
|
||||
"stableCalloutTitle": "Wichtig — Verwenden Sie eine stabile Kennung",
|
||||
"stableCalloutBody": "Der Gerätename <code>/dev/sdb1</code> kann sich nach einem Neustart ändern, besonders bei mehreren USB-Laufwerken. Ermitteln Sie die dauerhafte Kennung:",
|
||||
"stableCalloutCode": "ls -l /dev/disk/by-id/",
|
||||
"stableCalloutAfter": "Verwenden Sie in der LXC-Konfiguration den Eintrag <code>/dev/disk/by-id/usb-...</code> der gewünschten Partition statt <code>/dev/sdb1</code>. Wählen Sie die Partition, nicht den ganzen Datenträger. Sie bleibt so bei geänderter Geräteerkennung identifizierbar.",
|
||||
"formatHeading": "1.2 Formatieren Sie die Festplatte",
|
||||
"formatBody": "ext4 eignet sich für Linux-Freigaben: Es unterscheidet Groß-/Kleinschreibung und unterstützt POSIX-ACLs sowie große Dateien. Das Formatieren zerstört den Inhalt des vorhandenen Dateisystems. Prüfen Sie die Partition und führen Sie den Befehl auf dem <strong>Proxmox-Host</strong> aus:",
|
||||
"formatCode": "mkfs.ext4 /dev/sdb1",
|
||||
"formatAfter": "Ersetzen Sie <code>/dev/sdb1</code> durch die tatsächliche Partition oder deren dauerhaften Pfad <code>/dev/disk/by-id/usb-...-part1</code>.",
|
||||
"mkdirHeading": "1.3 Einhängepunkt im LXC-Container erstellen",
|
||||
"mkdirBody": "Erstellen Sie im LXC das Verzeichnis, in dem die Festplatte angezeigt wird (jeder Name funktioniert):",
|
||||
"mkdirCode": "mkdir /mnt/lxc_USB",
|
||||
"wireHeading": "1.4 Gerät in LXC einbinden",
|
||||
"wireBody": "Bearbeiten Sie auf dem <strong>Proxmox-Host</strong> die Containerkonfiguration. Ersetzen Sie <code>'<'CTID'>'</code> durch die Container-ID:",
|
||||
"wireEditCode": "nano /etc/pve/lxc/CTID.conf",
|
||||
"wireAddLine": "Fügen Sie diese Zeile hinzu:",
|
||||
"wireConfigCode": "mp0: /dev/disk/by-id/usb-VENDOR_MODEL_SERIAL-part1,mp=/mnt/lxc_USB,backup=0",
|
||||
"wireShortForm": "Alternativ können Sie den kürzeren Eintrag <code>mp0: /dev/sdb1,mp=/mnt/lxc_USB,backup=0</code> verwenden, wenn Sie das Risiko einer Änderung des Gerätepfads akzeptieren.",
|
||||
"wireBackupNote": "Das Beispiel setzt <code>backup=0</code>. Inhalte von Geräte- und Bind-Mounts werden nicht in Container-Sicherungen mit <code>vzdump</code> aufgenommen. Sichern Sie die Daten des externen Laufwerks separat.",
|
||||
"restartHeading": "1.5 Starten Sie den LXC neu und setzen Sie Berechtigungen",
|
||||
"restartBody": "Starten Sie den CT neu, um den Mount Point anzuwenden:",
|
||||
"restartCode": "pct reboot CTID",
|
||||
"permsBody": "Erstellen Sie im LXC-Container zuerst das Freigabekonto, bevor Sie ihm das Verzeichnis zuweisen, und setzen Sie dann die Berechtigungen:",
|
||||
"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": "Notiz",
|
||||
"permsNote": "Ersetzen Sie <code>proxmenux</code> durch Ihren Kontonamen. Der Modus <code>770</code> erlaubt Eigentümer und Gruppe den Zugriff und sperrt andere aus. Er ist restriktiver als <code>chmod -R 777</code>. Das Konto wird hier erstellt und in Schritt 2.2 bei Samba registriert."
|
||||
},
|
||||
"samba": {
|
||||
"heading": "2. Installieren Sie Samba",
|
||||
"installHeading": "2.1 Installieren Sie das Paket im LXC",
|
||||
"installCode": "apt-get update\napt-get install -y samba",
|
||||
"confirmBody": "Bestätigen Sie, dass der Dienst läuft:",
|
||||
"confirmCode": "systemctl status smbd.service",
|
||||
"userHeading": "2.2 Freigabekonto prüfen",
|
||||
"userBody": "Das Systemkonto <code>proxmenux</code> wurde in Schritt 1.5 ohne Anmeldeshell erstellt. Prüfen Sie es vor dem Setzen des Samba-Passworts und verwenden Sie durchgehend Ihren gewählten Namen:",
|
||||
"userCode": "id proxmenux",
|
||||
"passwordBody": "Setzen Sie das Samba-Passwort. Es ist vom Systempasswort getrennt, da Samba einen eigenen Anmeldedatenspeicher führt:",
|
||||
"passwordCode": "smbpasswd -a proxmenux",
|
||||
"aclHeading": "2.3 Eigentümer und ACLs festlegen",
|
||||
"aclBody": "Wenn <code>chown</code> aus Schritt 1.5 genügt, sind die Dateirechte eingerichtet. Für mehrere Benutzer mit unterschiedlichen Rechten auf denselben Pfad können Sie ACLs verwenden:",
|
||||
"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. Samba-Freigabe konfigurieren",
|
||||
"editHeading": "3.1 Bearbeiten smb.conf",
|
||||
"editCode": "nano /etc/samba/smb.conf",
|
||||
"appendBody": "Fügen Sie am Dateiende eine Freigabedefinition hinzu:",
|
||||
"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": "Notiz",
|
||||
"validUsersNote": "Die <code>valid users = proxmenux</code>-Linie beschränkt den Zugriff auf diesen einzelnen Samba-Benutzer. Verwenden Sie für den gruppenbasierten Zugriff <code>valid users = @samba_users</code>, nachdem Sie den/die Benutzer zu einer Gruppe namens <code>samba_users</code> hinzugefügt haben.",
|
||||
"reloadHeading": "3.2 Samba neu laden",
|
||||
"reloadCode": "systemctl restart smbd"
|
||||
},
|
||||
"verify": {
|
||||
"heading": "4. Zugang prüfen",
|
||||
"body": "Suchen Sie von jedem LAN-Client zu <code>\\\\'<'CT_IP'>'</code> (Windows) oder <code>smb://'<'CT_IP'>'</code> (macOS / Linux-Dateimanager). Authentifizierung mit dem Samba-Benutzer (<code>proxmenux</code>) und dem Passwort, das Sie mit <code>smbpasswd</code> festgelegt haben.",
|
||||
"image1Alt": "Samba-Serverzugriff von einem Client",
|
||||
"image2Alt": "Samba-Authentifizierungsaufforderung",
|
||||
"usageBody": "Sie können die Freigabe im Container und über das Netzwerk verwenden:",
|
||||
"image3Alt": "USB-Laufwerk über die Freigabe nutzen"
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Fehlerbehebung",
|
||||
"items": [
|
||||
"<strong><code>pct reboot</code> meldet „device not found“:</strong> Prüfen Sie, ob der Gerätepfad in <code>mp0</code> auf dem Host existiert. Kontrollieren Sie <code>ls -l /dev/disk/by-id/</code> und korrigieren Sie den Pfad.",
|
||||
"<strong>Der Container startet, aber <code>/mnt/lxc_USB</code> ist leer:</strong> Der Datenträger ist möglicherweise nicht eingehängt oder sein Dateisystem ist leer. Prüfen Sie auf dem Host mit <code>pct exec '<'CTID'>' -- mount | grep lxc_USB</code>. Fehlt der Mount, prüfen Sie Konfiguration, Gerätepfad und Startfehler.",
|
||||
"<strong>Die Samba-Anmeldung klappt, aber Schreiben meldet „Permission denied“:</strong> Prüfen Sie Linux-Dateirechte und Schreibeinstellungen der Freigabe. Kontrollieren Sie <code>chown</code> und <code>setfacl</code> in den Abschnitten 1.5 und 2.3.",
|
||||
"<strong>Die Freigabe wird nicht gefunden, aber <code>smb://'<'ip'>'/lxc_usb</code> funktioniert:</strong> Die ältere NetBIOS-Erkennung nutzt <code>nmbd</code>. Modernes Windows nutzt WS-Discovery. Installieren Sie unter Debian 12 <code>apt-get install -y wsdd</code>; unter Debian 13, wo <code>wsdd</code> nicht im stabilen Archiv ist, <code>apt-get install -y wsdd2</code>. Prüfen Sie Dienst und Firewall. Nur <code>nmbd</code> zu aktivieren stellt kein WS-Discovery bereit.",
|
||||
"<strong>Weiteren Benutzer zur Freigabe hinzufügen:</strong> Erstellen Sie das Konto mit <code>adduser</code>, registrieren Sie es mit <code>smbpasswd -a</code> und ergänzen Sie die kommaseparierte Liste <code>valid users =</code>. Vergeben Sie auch die nötigen Dateirechte oder ACLs."
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,165 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "NVIDIA Treiber auf Proxmox VE 9 installieren (manuelles Verfahren) | ProxMenux Guides",
|
||||
"description": "NVIDIA-Treiber auf einem Proxmox-VE-9-Host manuell installieren und konfigurieren sowie die GPU einem oder mehreren LXC-Containern zugänglich machen. Behandelt Treiberinstallation, Persistenzdienst, optionalen NVENC-Patch und die Konfiguration je Container.",
|
||||
"ogTitle": "NVIDIA-Treiber auf Proxmox VE 9 installieren (manuelles Verfahren)",
|
||||
"ogDescription": "NVIDIA-Treiber auf PVE 9 manuell einrichten: Hosttreiber, Persistenzdienst, optionaler NVENC-Patch und GPU-Zugriff für einzelne LXC-Container."
|
||||
},
|
||||
"header": {
|
||||
"title": "NVIDIA Grafikkartentreiber auf Proxmox VE 9 installieren (manuelles Verfahren)",
|
||||
"description": "NVIDIA-Treiber auf einem Proxmox-VE-9-Host manuell installieren und konfigurieren sowie die GPU einem oder mehreren LXC-Containern zugänglich machen. Behandelt Treiberinstallation, Persistenzdienst, optionalen NVENC-Patch und die Konfiguration je Container.",
|
||||
"section": "Leitfäden"
|
||||
},
|
||||
"intro": {
|
||||
"calloutTitle": "Notiz",
|
||||
"calloutBody": "Diese Anleitung beschreibt die manuellen Schritte als Referenz. Für die meisten Nutzer empfiehlt sich der ProxMenux-Assistent: <strong>NVIDIA-Treiber installieren (Host)</strong> unter <em>GPUs und Coral-TPU</em> sowie <strong>GPU zu LXC hinzufügen</strong> oder <strong>GPU zu VM hinzufügen</strong> für die jeweilige Gastkonfiguration. Der Assistent erledigt diese Schritte mit zusätzlichen Prüfungen für Kernel-Header, IOMMU und VFIO-Konflikte. Die manuelle Anleitung hilft, einzelne Befehle zu verstehen oder abweichende Konfigurationen einzurichten.",
|
||||
"targetNote": "Gezielt auf <strong>Proxmox VE 9</strong> (Debian Trixie). PVE 7 (Bullseye) und PVE 8 (Bookworm) sind nicht mehr abgedeckt.",
|
||||
"stepsTitle": "Was Sie einrichten",
|
||||
"steps": [
|
||||
"Proxmox-VE-9-Host vorbereiten: nouveau sperren, Paketquellen und Voraussetzungen prüfen.",
|
||||
"Installieren Sie den NVIDIA Treiber auf dem Host.",
|
||||
"Installieren Sie den NVIDIA Persistenzdienst.",
|
||||
"Optional: Mit dem keylase-Patch das Limit gleichzeitiger NVENC-Sitzungen bei Consumer-GPUs aufheben.",
|
||||
"Die GPU einem oder mehreren LXC-Containern zugänglich machen und jeweils die passende Treiberversion installieren."
|
||||
]
|
||||
},
|
||||
"prepareHost": {
|
||||
"heading": "1. Bereiten Sie den Host vor (PVE 9)",
|
||||
"blacklistHeading": "1.1 nouveau sperren",
|
||||
"blacklistBody": "Überprüfen Sie, ob der Open-Source-<code>nouveau</code>-Treiber bereits auf der schwarzen Liste steht:",
|
||||
"blacklistCheckCode": "cat /etc/modprobe.d/blacklist.conf",
|
||||
"blacklistAdd": "Wenn <code>blacklist nouveau</code> nicht angezeigt wird, fügen Sie es hinzu und starten Sie neu:",
|
||||
"blacklistAddCode": "echo \"blacklist nouveau\" >> /etc/modprobe.d/blacklist.conf\nupdate-initramfs -u -k all\nreboot",
|
||||
"blacklistImageAlt": "Blacklist-Prüfung",
|
||||
"reposHeading": "1.2 Paketquellen prüfen (PVE 9 / Trixie)",
|
||||
"reposBody": "Post-Install-Werkzeuge haben die Paketquellen möglicherweise schon eingerichtet. Prüfen Sie zuerst die vorhandenen Quellen und überspringen Sie bereits erledigte Änderungen. Vermeiden Sie doppelte Einträge.",
|
||||
"reposOtherwise": "Andernfalls für eine unveränderte PVE-9-Installation ohne Enterprise-Abonnement:",
|
||||
"reposEditCode": "nano /etc/apt/sources.list.d/proxmox.sources",
|
||||
"reposPveBody": "Stellen Sie sicher, dass es die No-Abonnement-Quelle für Trixie enthält:",
|
||||
"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": "Und die Debian-Quellen bei <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 Aktualisieren Sie das System und installieren Sie die Voraussetzungen",
|
||||
"updateCode": "apt update && apt dist-upgrade -y",
|
||||
"buildToolsBody": "Installieren Sie die Build-Tools und Kernel-Header, die zum Kompilieren des Kernel-Moduls NVIDIA erforderlich sind:",
|
||||
"buildToolsCode": "apt-get install -y git\napt-get install -qqy pve-headers-$(uname -r) gcc make"
|
||||
},
|
||||
"installDriver": {
|
||||
"heading": "2. Installieren Sie den NVIDIA-Treiber auf dem Host",
|
||||
"pickHeading": "2.1 Wählen Sie eine Treiberversion",
|
||||
"pickBody": "Wählen Sie einen Treiberzweig, der GPU und laufenden Kernel unterstützt. Der neueste Zweig unterstützt ältere GPUs möglicherweise nicht. Prüfen Sie die Produktliste der gewählten NVIDIA-Version:",
|
||||
"pickUrlCode": "https://download.nvidia.com/XFree86/Linux-x86_64/latest.txt",
|
||||
"nvencCallout": "Wenn Sie den NVENC-Patch anwenden möchten (Schritt 4), überprüfen Sie zuerst, ob der Patch die von Ihnen gewählte Treiberversion unterstützt: <patchLink>github.com/keylase/nvidia-patch</patchLink>",
|
||||
"nvencCalloutTitle": "Hinweis",
|
||||
"pickReplace": "Ersetzen Sie <code>latest.txt</code> in der URL durch die Versionsnummer, um den Installer mit der Endung <code>.run</code> zu finden. Die vollständige Treiberliste steht unter:",
|
||||
"pickListCode": "https://download.nvidia.com/XFree86/Linux-x86_64/",
|
||||
"pickImageAlt": "NVIDIA Treiber herunterladen",
|
||||
"pickVersionNote": "Ersetzen Sie <code>'<'VERSION'>'</code> durch die aktuelle Version (z. B. <code>580.95.05</code>).",
|
||||
"downloadHeading": "2.2 Download und Ausführen des Installationsprogramms",
|
||||
"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": "Starten Sie den Installer. Die folgende Option kann <code>nouveau</code> bei Bedarf deaktivieren; vor Abschluss kann ein Neustart nötig sein:",
|
||||
"firstPassCode": "./NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none --disable-nouveau\nreboot",
|
||||
"secondPassBody": "Nachdem der Host zurückgekommen ist, führen Sie das Installationsprogramm erneut aus, um das Kernelmodul zu kompilieren und zu installieren:",
|
||||
"secondPassCode": "/opt/nvidia/NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none",
|
||||
"modulesHeading": "2.3 NVIDIA-Module beim Booten laden",
|
||||
"modulesBody": "Bearbeiten Sie die Konfiguration zum Laden der Module:",
|
||||
"modulesEditCode": "nano /etc/modules-load.d/modules.conf",
|
||||
"modulesAddBody": "Fügen Sie die NVIDIA-Module für Host und LXC hinzu. VFIO-Module sind für VM-Durchreichung vorgesehen und werden hier nicht benötigt:",
|
||||
"modulesAddCode": "nvidia\nnvidia_uvm",
|
||||
"modulesSaveBody": "Speichern Sie die Datei, beenden Sie den Editor mit <code>Ctrl+X</code> und erstellen Sie initramfs neu:",
|
||||
"modulesSaveCode": "update-initramfs -u -k all",
|
||||
"udevHeading": "2.4 Udev-Regeln erstellen",
|
||||
"udevBody": "Damit beim Laden der Module die Geräteknoten <code>/dev/nvidia*</code> erstellt werden:",
|
||||
"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": "Speichern (<code>Ctrl+X</code>)."
|
||||
},
|
||||
"persistence": {
|
||||
"heading": "3. NVIDIA-Persistenzdienst",
|
||||
"body": "Der Persistenzdienst hält die GPU initialisiert, wenn keine andere Anwendung sie nutzt. Das reduziert wiederholte Initialisierungslatenz und erhält den Initialisierungszustand zwischen Clients:",
|
||||
"installCode": "cd /opt/nvidia\ngit clone https://github.com/NVIDIA/nvidia-persistenced.git\ncd nvidia-persistenced/init\n./install.sh\nreboot",
|
||||
"verifyBody": "Prüfen Sie nach dem Neustart, ob der Treiber geladen ist und der Dienst läuft:",
|
||||
"verifySmiCode": "nvidia-smi",
|
||||
"smiImageAlt": "Ausgabe von NVIDIA SMI",
|
||||
"verifyServiceCode": "systemctl status nvidia-persistenced",
|
||||
"serviceImageAlt": "Status des NVIDIA-Persistenzdienstes"
|
||||
},
|
||||
"nvenc": {
|
||||
"heading": "4. Optional: Limit gleichzeitiger NVENC-Sitzungen aufheben",
|
||||
"body": "NVENC-Sitzungslimits hängen von GPU-Modell und Treiberversion ab. Prüfen Sie die NVIDIA-Matrix statt eines pauschalen Limits je Generation. Der keylase-Patch entfernt das Softwarelimit bei unterstützten Treiberversionen und kann Kodierungsaufgaben wie Plex- oder Jellyfin-Transkodierung helfen.",
|
||||
"code": "cd /opt/nvidia\ngit clone https://github.com/keylase/nvidia-patch.git\ncd nvidia-patch\n./patch.sh",
|
||||
"imageAlt": "NVIDIA Patch-Anwendung",
|
||||
"after": "Wenden Sie den Patch nach jedem Treiberupdate erneut an. Das keylase-Repository enthält bei Bedarf auch <code>patch-fbc.sh</code> für FBC, die Erfassung des Bildpuffers."
|
||||
},
|
||||
"lxcSetup": {
|
||||
"heading": "5. GPU-Zugriff für einen LXC-Container einrichten",
|
||||
"identifyHeading": "5.1 Gerätenummern angeben",
|
||||
"identifyBody": "Auf dem Host:",
|
||||
"identifyCode": "ls -l /dev/nv*",
|
||||
"identifyImageAlt": "NVIDIA Geräteliste",
|
||||
"identifyNote": "Notieren Sie die Major-Gerätenummern. Sie können sich je nach System unterscheiden. Typische Werte:",
|
||||
"tableHeaders": {
|
||||
"device": "Gerät",
|
||||
"major": "Typische Major-Nummer"
|
||||
},
|
||||
"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 (variiert)"
|
||||
},
|
||||
{
|
||||
"device": "<code>/dev/dri/*</code>",
|
||||
"major": "226"
|
||||
},
|
||||
{
|
||||
"device": "<code>/dev/nvidia-modeset</code>",
|
||||
"major": "195 (mit nvidia geteilt)"
|
||||
}
|
||||
],
|
||||
"editHeading": "5.2 Bearbeiten der LXC-Konfiguration",
|
||||
"editBody": "Stoppen Sie den Container, falls er läuft. Öffnen Sie seine Konfiguration und ersetzen Sie <code>'<'CTID'>'</code> durch die Container-ID:",
|
||||
"editCode": "nano /etc/pve/lxc/CTID.conf",
|
||||
"editConfigBody": "Kommentieren Sie nur tatsächlich widersprüchliche Zeilen zu <code>lxc.cgroup2.devices.allow</code> oder <code>/dev/dri</code> aus. Ergänzen Sie die NVIDIA-Gerätekonfiguration und passen Sie die Major-Nummern an die NVIDIA-Geräte an, die <code>ls -l /dev/nv*</code> auf <strong>Ihrem</strong> Host zeigt:",
|
||||
"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": "LXC Konfiguration",
|
||||
"editSave": "Speichern (<code>Ctrl+X</code>) und starten Sie den Container.",
|
||||
"installCtHeading": "5.3 Installieren Sie den Treiber im Container",
|
||||
"installCtCalloutTitle": "Wichtig",
|
||||
"installCtCalloutBody": "Dieser Teil wird <strong>im Container</strong> ausgeführt, nicht auf dem Host.",
|
||||
"installCtBody": "Das Kernelmodul ist bereits auf dem Host geladen. Der Container benötigt nur die Bibliotheken im Benutzerbereich mit derselben Treiberversion:",
|
||||
"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": "Prüfen Sie die Abfragen und installieren Sie hier nur Bibliotheken im Benutzerbereich. Kompilieren oder installieren Sie kein Kernelmodul im LXC-Container.",
|
||||
"installCtImageAlt": "NVIDIA Treiberinstallation",
|
||||
"verifyCtHeading": "5.4 Verifizieren im Container",
|
||||
"verifyCtSmiCode": "nvidia-smi",
|
||||
"verifyCtSmiImageAlt": "NVIDIA SMI in LXC",
|
||||
"verifyCtLsCode": "ls -l /dev/nv*",
|
||||
"verifyCtLsImageAlt": "NVIDIA Geräte in LXC",
|
||||
"verifyCtAfter": "Die GPU sollte aufgelistet sein und ihre Geräteknoten sollten im Containerdateisystem erscheinen.",
|
||||
"workloadHeading": "5.5 GPU-Nutzung mit einer echten Arbeitslast prüfen",
|
||||
"workloadBody": "Aktivieren Sie NVIDIA-Hardwarebeschleunigung in Plex oder Jellyfin, starten Sie eine Videotranskodierung und prüfen Sie im Dashboard oder Protokoll die tatsächliche GPU-Nutzung. Die Treiberinstallation allein aktiviert sie nicht in der Anwendung.",
|
||||
"workloadImage1Alt": "Plex mit NVIDIA GPU",
|
||||
"workloadImage2Alt": "Plex mit NVIDIA GPU - aktive Sitzung",
|
||||
"repeatNote": "Wiederholen Sie <strong>Abschnitt 5</strong> für jeden weiteren Container mit GPU-Zugriff. Aktualisieren Sie bei Hosttreiber-Updates auch die Bibliotheken im Benutzerbereich aller Container auf die passende Version."
|
||||
},
|
||||
"docker": {
|
||||
"heading": "6. (Optional) NVIDIA Docker in einem LXC",
|
||||
"body": "Wenn Docker bereits im LXC-Container läuft, installieren Sie dort <code>nvidia-container-toolkit</code> für den GPU-Zugriff seiner Docker-Container. Zuerst muss die GPU im LXC funktionieren. Die folgenden Befehle gelten für Docker als Root-Dienst:",
|
||||
"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": "Die Befehle richten das NVIDIA-Repository ein, installieren das Toolkit, konfigurieren die Docker-Laufzeit und starten Docker neu. Geräteberechtigungen und cgroup-Beschränkungen des LXC gelten weiterhin. Prüfen Sie die GPU mit einer Testlast."
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Fehlerbehebung",
|
||||
"items": [
|
||||
"<strong><code>nvidia-smi</code> funktioniert auf dem Host, meldet im Container aber „No devices found“:</strong> Prüfen Sie Gerätemounts, Berechtigungen und passende Treiberbibliotheken. Bei abweichenden Versionen installieren Sie die Hostversion <code>'<'VERSION'>'</code> im Container mit <code>--no-kernel-module</code>.",
|
||||
"<strong>Die Treiberkompilierung schlägt fehl:</strong> Prüfen Sie das Bauprotokoll. „No precompiled kernel interface was found“ kann nur bedeuten, dass lokal kompiliert werden muss. Installieren Sie zu <code>uname -r</code> passende Header mit <code>apt-get install pve-headers-$(uname -r)</code> oder dem entsprechenden proxmox-headers-Paket.",
|
||||
"<strong>NVENC-Sitzungen bleiben begrenzt:</strong> Prüfen Sie die Unterstützung des aktiven Treibers durch den Patch. Ein Treiberupdate kann ihn überschreiben. Wenden Sie bei unterstützter Version <code>./patch.sh</code> aus <code>/opt/nvidia/nvidia-patch</code> erneut an und prüfen Sie die Ausgabe.",
|
||||
"<strong>Die GPU reagiert nach Leerlauf nicht mehr:</strong> Prüfen Sie <code>systemctl status nvidia-persistenced</code> und aktivieren Sie den Dienst bei Bedarf. Prüfen Sie auch Kernel- und Treiberprotokolle; ein gestoppter Persistenzdienst ist nicht die einzig mögliche Ursache.",
|
||||
"<strong>Der Container startet, aber <code>ls /dev/nv*</code> zeigt keine NVIDIA-Geräte:</strong> Prüfen Sie Bind-Mounts und Gerätepfade auf dem Host. Ermitteln Sie mit <code>ls -l /dev/nv*</code> die NVIDIA-Major-Nummern und prüfen Sie Regeln für <code>lxc.cgroup2.devices.allow</code> sowie Dateirechte."
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user