Kannst du einen USB-Controller an eine VM durchreichen, ohne die Host-Ports zu verlieren?

Eva Wong ist die Technische Redakteurin und und leidenschaftliche Tüftlerin bei ZimaSpace. Eine lebenslange Geek mit einer Leidenschaft für Homelabs und Open-Source-Software, sie spezialisiert sich darauf, komplexe technische Konzepte in zugängliche, praktische Anleitungenzu übersetzen. Eva ist der Meinung, dass Self-Hosting Spaß machen und nicht einschüchternd sein sollte. Durch ihre Tutorials befähigt sie die Community, Hardware-Setups zu entmystifizieren, vom Bau ihres ersten NAS bis hin zur Beherrschung von Docker-Containern.

Ja, aber nur, wenn die gewünschten Anschlüsse zu einem Controller gehören, der vom Host isoliert werden kann. PCI-Passthrough weist den gesamten USB-Controller zu, nicht nur einen einzelnen Anschluss. Daher werden alle Ports, die mit diesem Controller verbunden sind, gemeinsam übertragen.

Die Beschriftungen am Gehäuse sind keine zuverlässige Zuordnung. Front-, rückseitige und interne Anschlüsse können sich einen Controller teilen, während ein einzelnes rückseitiges Panel Ports von zwei Controllern enthalten kann. Diese Unterscheidung bestimmt die sichere Konfiguration, die Validierungsmethode und den Wiederherstellungspunkt.

Controller, Ports und IOMMU-Gruppen zuordnen

Liste die PCI-USB-Controller und ihre IOMMU-Gruppen auf. Schließe dann ein unkritisches Gerät an jeden physischen Port an und beobachte, welcher Controller es übernimmt. Speichere die Zuordnung, bevor du die Treiber änderst.

Eine IOMMU-Gruppe ist auf den meisten Systemen die kleinste sichere Zuordnungseinheit. Wenn der Zielcontroller eine Gruppe mit Speicher, Netzwerk oder dem einzigen USB-Controller des Hosts teilt, besteht beim Passthrough das Risiko, mehr als beabsichtigt zu entfernen.

Die sauberste Lösung für eine nicht trennbare Anordnung ist eine dedizierte PCIe-USB-Karte. Wähle eine Karte, deren Controller keine unsichere Gruppe teilt und deren Leistungsbudget für die angeschlossenen Geräte ausreicht.

Anhand von Signalen für das Überleben des Hosts entscheiden

Halte SSH oder einen anderen nicht auf USB basierenden Verwaltungsweg aktiv. Vergewissere dich, dass Tastatur, Boot-Medium, USV-Kabel und Installationsgerät des Hosts nicht an dem Controller angeschlossen sind, der neu zugewiesen wird.

Binde nur die betreffende PCI-Funktion an VFIO und starte das System neu. Der Host sollte den verbleibenden Controller behalten, und die VM sollte alle Ports des übertragenen Geräts erkennen.

Verwende die folgende Tabelle, bevor du unersetzliche Hardware anschließt.

Beobachteter Zustand Bewertung Nächste Aktion
Dedizierter Controller und saubere Gruppe Durchreichen Der Host behält die anderen Controller
Controller teilt eine Gruppe mit einem kritischen Gerät Nicht durchreichen Separate USB-Karte hinzufügen
Port-Zuordnung unbekannt Zuerst zuordnen Noch keine Produktionsgeräte anschließen

Den Controller mit einem Wiederherstellungspfad durchreichen

Notiere den ursprünglichen Treiber und die Boot-Parameter und ändere jeweils nur einen Controller. Vermeide einen ACS-Override als erste Maßnahme, da dadurch Gruppen getrennt erscheinen können, ohne die zugrunde liegende Hardware-Isolierung zu verändern.

Füge das PCI-Gerät zur VM hinzu und aktiviere die erforderlichen Maschinen- und IOMMU-Optionen. Teste Hot-Plug, anhaltende Übertragungen, das Zurücksetzen der VM und den Neustart des Hosts.

Der ZimaCube-Hardwaretest von ZimaSpace zeigt, warum die Anordnung der Erweiterungen wichtig ist.

Der VFIO-Passthrough-Leitfaden der Community erklärt die IOMMU-Gruppierung und Geräteisolierung.

-15% OFF

Jeden physischen Port erneut testen

Teste nach dem Start jeden Host-Port und jeden der VM zugewiesenen Port mit Speichergeräten und einem unkritischen HID-Gerät. Überprüfe, dass der Host erreichbar bleibt, wenn die VM beendet wird oder abstürzt.

Wiederhole den Test nach einem vollständigen Ausschalten und Einschalten, da die Firmware Geräte neu anordnen oder die Initialisierung ändern kann. Halte eine Konsolen-Wiederherstellungsmethode bereit, die nicht vom durchgereichten Controller abhängt.

Fahre nur fort, wenn der Zielcontroller eine sichere Gruppe hat und der Host Verwaltungszugriff sowie kritische USB-Geräte behält. Brich ab, wenn Speicher, Netzwerk, USV oder sämtliche Eingabegeräte des Hosts zusammen mit der Zielfunktion verschwinden.

Support & Tipps

Mehr zum Lesen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.