Du willst die volle Grafikleistung deiner GPU in einer virtuellen Maschine nutzen – etwa für einen Gaming-Server, Transcoding in Plex/Jellyfin oder KI-Workloads? Mit GPU Passthrough unter Proxmox VE reichst du eine physische Grafikkarte direkt an eine VM durch. Diese Anleitung führt dich Schritt für Schritt durch IOMMU, VFIO und die VM-Konfiguration. Hinweis vorab: Passthrough ist ein fortgeschrittenes Thema und stark von deiner Hardware abhängig.
Was bringt GPU Passthrough?
Beim Passthrough erhält eine VM exklusiven, nahezu nativen Zugriff auf die Grafikkarte – ohne den Overhead einer emulierten GPU. Typische Einsatzzwecke:
- Media-Server: Hardware-Transcoding in Jellyfin, Plex oder Emby.
- KI & Rendering: CUDA-/GPU-Beschleunigung in einer isolierten VM.
- Gaming-VMs & virtuelle Desktops: volle 3D-Leistung im Gastsystem.
Der Preis dafür: Die durchgereichte GPU steht dem Proxmox-Host und anderen VMs nicht mehr zur Verfügung.
Voraussetzungen
- CPU & Mainboard mit IOMMU-Unterstützung: Intel VT-d bzw. AMD-Vi. Beides muss vom Board unterstützt und im BIOS aktivierbar sein.
- Eine geeignete GPU: idealerweise eine zweite Grafikkarte, damit der Host eine eigene Ausgabe behält.
- UEFI-Boot & aktuelles Proxmox VE 8 oder 9.
- Die VM sollte im UEFI-Modus (OVMF) laufen – das ist für modernes Passthrough am zuverlässigsten.
Schritt 1: IOMMU im BIOS/UEFI aktivieren
Starte ins BIOS/UEFI deines Servers und aktiviere die Virtualisierungs- und IOMMU-Funktionen. Die Bezeichnungen variieren je nach Hersteller:
- Intel: „VT-d“ bzw. „Intel Virtualization Technology for Directed I/O“ aktivieren.
- AMD: „IOMMU“ bzw. „AMD-Vi“ auf Enabled setzen und „SVM Mode“ aktivieren.
Speichere die Einstellungen und boote zurück in Proxmox.
Schritt 2: IOMMU in Proxmox aktivieren
Nun aktivierst du IOMMU im Kernel-Bootparameter. Wie das geht, hängt vom Bootloader ab. Prüfe zuerst, welchen dein System nutzt:
# Zeigt an, welcher Bootloader aktiv ist
proxmox-boot-tool statusVariante A: GRUB (klassische Installation)
Bearbeite die Datei /etc/default/grub und ergänze die IOMMU-Parameter in der Zeile GRUB_CMDLINE_LINUX_DEFAULT. Für Intel:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"Für AMD nutzt du stattdessen:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"Danach GRUB aktualisieren:
update-grubVariante B: systemd-boot (ZFS-/UEFI-Installation)
Nutzt dein System systemd-boot, trägst du die Parameter in /etc/kernel/cmdline ein (in einer Zeile hinter root=...) und aktualisierst anschließend:
# Parameter hinzufügen, z. B. intel_iommu=on iommu=pt
nano /etc/kernel/cmdline
# Bootkonfiguration neu schreiben
proxmox-boot-tool refreshSchritt 3: VFIO-Module laden
Trage die VFIO-Kernelmodule ein, damit sie beim Booten geladen werden. Öffne /etc/modules und ergänze:
vfio
vfio_iommu_type1
vfio_pciBei sehr alten Kernels war zusätzlich vfio_virqfd nötig – seit Kernel 6.2 ist dieses Modul in vfio integriert und muss nicht mehr separat geladen werden.
Schritt 4: Neustart und IOMMU prüfen
Starte den Host neu und kontrolliere, ob IOMMU aktiv ist:
# Sollte Zeilen mit "DMAR: IOMMU enabled" (Intel) bzw. AMD-Vi ausgeben
dmesg | grep -e DMAR -e IOMMU
# GPU und ihre Vendor:Device-IDs anzeigen
lspci -nn | grep -Ei "VGA|3D|Audio"Notiere dir die IDs deiner GPU. Sie erscheinen in eckigen Klammern, z. B. [10de:2482] für die Grafikeinheit und [10de:228b] für die zugehörige HDMI-Audio-Funktion.
Schritt 5: Treiber blacklisten und GPU an vfio-pci binden
Damit der Proxmox-Host die GPU nicht selbst in Beschlag nimmt, blacklistest du deren Treiber. Lege /etc/modprobe.d/blacklist.conf an:
blacklist nouveau
blacklist nvidia
blacklist nvidiafb
blacklist radeon
blacklist amdgpuBind die GPU stattdessen fest an vfio-pci. Trage in /etc/modprobe.d/vfio.conf die zuvor ermittelten IDs ein (Grafik- und Audio-Funktion):
options vfio-pci ids=10de:2482,10de:228bAktualisiere die Initramfs, damit die Änderungen beim nächsten Boot greifen, und starte neu:
update-initramfs -u -k all
rebootNach dem Neustart prüfst du, ob die GPU nun den Treiber vfio-pci verwendet:
lspci -nnk -d 10de:2482
# In der Ausgabe sollte stehen: Kernel driver in use: vfio-pciSchritt 6: GPU an die VM durchreichen
Jetzt konfigurierst du die Ziel-VM. Achte auf diese Einstellungen:
- BIOS: in den VM-Optionen auf OVMF (UEFI) stellen (nicht SeaBIOS).
- Machine: auf q35 setzen.
- Display: zunächst auf Standard oder VirtIO-GPU belassen, bis der GPU-Treiber im Gast installiert ist.
Füge dann unter Hardware → Hinzufügen → PCI-Gerät deine GPU hinzu. Aktiviere „All Functions“ (damit die HDMI-Audio-Funktion mitkommt) und „PCI-Express“. Alternativ per Kommandozeile in der VM-Konfiguration unter /etc/pve/qemu-server/<VMID>.conf:
hostpci0: 0000:01:00,pcie=1,x-vga=1Starte anschließend die VM und installiere im Gastsystem den passenden Grafiktreiber (NVIDIA bzw. AMD). Danach steht dir die volle GPU-Leistung zur Verfügung.
Häufige Probleme
- NVIDIA „Code 43“ im Gast: Bei manchen Consumer-Karten meldet der Treiber einen Fehler, wenn er eine Virtualisierung erkennt. Abhilfe schafft das Verstecken des Hypervisors über
argsin der VM-Config (z. B.cpu host,hidden=1). - Ungünstige IOMMU-Gruppen: Landen mehrere unabhängige Geräte in einer Gruppe, lassen sie sich nur gemeinsam durchreichen. Prüfe die Gruppen mit einem kurzen Skript über
/sys/kernel/iommu_groups/. - Host verliert die Bildausgabe: Reichst du die einzige (Boot-)GPU durch, hat der Host kein Bild mehr. Nutze möglichst eine zweite GPU oder verwalte Proxmox danach nur noch per Weboberfläche und SSH.
Fazit
GPU Passthrough unter Proxmox ist mit den richtigen Schritten gut beherrschbar: IOMMU im BIOS und Kernel aktivieren, VFIO-Module laden, den GPU-Treiber blacklisten, die Karte an vfio-pci binden und schließlich per hostpci an die VM durchreichen. Da vieles von Mainboard, CPU und GPU abhängt, lohnt sich etwas Geduld beim Feintuning. Brauchst du hingegen nur einen schlanken Linux-Dienst ohne GPU, ist ein LXC-Container die ressourcenschonendere Wahl. Weitere Proxmox-Tipps findest du unter Proxmox Kernel ändern und Proxmox Strom sparen.

