Kan du tilldela en USB-styrenhet till en virtuell maskin utan att förlora värdportarna?

Eva Wong är Teknisk skribent och den boende fixaren på ZimaSpace. En livslång nörd med en passion för hemma-labb och öppen källkod, hon specialiserar sig på att översätta komplexa tekniska koncept till tillgängliga, praktiska guider. Eva tror att självhosting ska vara roligt, inte skrämmande. Genom sina handledningar ger hon gemenskapen verktyg att avmystifiera hårdvaruinstallationer, från att bygga sin första NAS till att bemästra Docker-containrar.

Ja, men bara när portarna du vill använda tillhör en styrenhet som kan isoleras från värdsystemet. PCI-passthrough tilldelar hela USB-styrenheten, inte en enskild kontakt, så alla portar som är anslutna till den styrenheten flyttas med den.

Märkningen på chassit är inte en tillförlitlig karta. Främre, bakre och interna anslutningar kan dela en styrenhet, medan en enda bakre panel kan innehålla portar från två styrenheter. Den skillnaden avgör den säkra konfigurationen, valideringsmetoden och återställningspunkten.

Kartlägg styrenheter, portar och IOMMU-grupper

Lista PCI-USB-styrenheterna och deras IOMMU-grupper. Anslut sedan en ofarlig enhet till varje fysisk port och se vilken styrenhet som tar emot den. Spara kartläggningen innan du ändrar drivrutiner.

En IOMMU-grupp är den minsta säkra tilldelningsgränsen på de flesta system. Om målstyrenheten delar grupp med lagring, nätverk eller värdsystemets enda USB-styrenhet riskerar passthrough att ta bort mer än avsett.

Den renaste lösningen för en layout som inte går att separera är ett dedikerat PCIe-USB-kort. Välj ett kort vars styrenhet inte delar en osäker grupp och vars effektbudget räcker för de anslutna enheterna.

Fatta beslut utifrån signaler för värdsystemets överlevnad

Håll SSH eller en annan icke-USB-baserad administrationsväg aktiv. Bekräfta att värdsystemets tangentbord, startmedia, UPS-kabel och installationsinmatning inte är anslutna till styrenheten som ska tilldelas på nytt.

Bind endast den aktuella PCI-funktionen till VFIO och starta om. Värdsystemet ska behålla den återstående styrenheten och den virtuella maskinen ska identifiera alla portar på den vidarebefordrade enheten.

Använd tabellen nedan innan du ansluter oersättlig hårdvara.

Observerat tillstånd Bedömning Nästa åtgärd
Dedikerad styrenhet och ren grupp Vidarebefordra Värdsystemet behåller övriga styrenheter
Styrenheten delar grupp med en kritisk enhet Vidarebefordra inte Lägg till ett separat USB-kort
Portägarskap okänt Kartlägg först Inga produktionsenheter ännu

Vidarebefordra styrenheten med en återställningsväg

Dokumentera den ursprungliga drivrutinen och startparametrarna och ändra sedan en styrenhet i taget. Undvik ACS-överskrivning som första åtgärd, eftersom det kan få grupper att framstå som separata utan att ändra den underliggande hårdvaruisoleringen.

Anslut PCI-enheten till den virtuella maskinen och aktivera de maskin- och IOMMU-alternativ som krävs. Testa hot-plug, kontinuerliga överföringar, återställning av den virtuella maskinen och omstart av värdsystemet.

ZimaSpaces maskinvarugranskning av ZimaCube visar varför expansionslayouten är viktig.

Gemenskapens guide till VFIO-passthrough förklarar IOMMU-gruppering och enhetsisolering.

-15% OFF
Single board computer zimaboard2

Testa varje fysisk port igen

Efter uppstart testar du varje port på värdsystemet och varje port som ägs av den virtuella maskinen med lagring och en HID-enhet med låg risk. Kontrollera att värdsystemet fortfarande är nåbart om den virtuella maskinen stoppas eller kraschar.

Upprepa testet efter en kall strömcykel, eftersom den inbyggda programvaran kan ändra enheternas ordning eller initiering. Ha en konsolbaserad återställningsmetod som inte är beroende av den vidarebefordrade styrenheten.

Fortsätt endast när målstyrenheten har en säker grupp och värdsystemet behåller administration samt kritiska USB-enheter. Avbryt om lagring, nätverk, UPS eller all inmatning till värdsystemet försvinner tillsammans med mål funktionen.

Support och tips

Mer att läsa

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.