Pouvez-vous attribuer un contrôleur USB à une machine virtuelle sans perdre les ports de l’hôte ?

Eva Wong est la rédactrice technique et bricoleuse résidente chez ZimaSpace. Geek depuis toujours, passionnée par les homelabs et les logiciels open source, elle se spécialise dans la traduction de concepts techniques complexes en guides accessibles et pratiques. Eva croit que l’auto-hébergement doit être amusant, pas intimidant. À travers ses tutoriels, elle donne à la communauté les moyens de démystifier les configurations matérielles, depuis la construction de leur premier NAS jusqu’à la maîtrise des conteneurs Docker.

Oui, mais uniquement lorsque les ports souhaités appartiennent à un contrôleur qui peut être isolé de l'hôte. Le passthrough PCI attribue l'intégralité du contrôleur USB, et non un seul connecteur : tous les ports reliés à ce contrôleur sont donc transférés avec lui.

Les indications présentes sur le boîtier ne constituent pas une cartographie fiable. Les ports avant, arrière et les connecteurs internes peuvent partager un même contrôleur, tandis qu'un seul panneau arrière peut regrouper des ports issus de deux contrôleurs. Cette distinction détermine la configuration sûre, la méthode de validation et le point de retour.

Cartographier les contrôleurs, les ports et les groupes IOMMU

Répertoriez les contrôleurs USB PCI et leurs groupes IOMMU, puis branchez un périphérique sans risque sur chaque port physique afin de déterminer quel contrôleur le prend en charge. Enregistrez cette cartographie avant de modifier les pilotes.

Sur la plupart des systèmes, un groupe IOMMU constitue la limite minimale d'attribution sûre. Si le contrôleur cible partage un groupe avec le stockage, le réseau ou le seul contrôleur USB de l'hôte, le passthrough risque de retirer plus de ressources que prévu.

La solution la plus propre lorsque la disposition est impossible à séparer consiste à utiliser une carte USB PCIe dédiée. Choisissez une carte dont le contrôleur ne partage pas un groupe à risque et dont le budget électrique est adapté aux périphériques connectés.

Décider à partir des indicateurs de survie de l'hôte

Maintenez SSH ou un autre moyen de gestion indépendant de l'USB actif. Vérifiez que le clavier de l'hôte, le support de démarrage, le câble de l'onduleur et le périphérique d'installation ne sont pas connectés au contrôleur réattribué.

Associez uniquement la fonction PCI cible à VFIO, puis redémarrez. L'hôte doit conserver le contrôleur restant et la VM doit détecter tous les ports du périphérique transféré.

Consultez le tableau ci-dessous avant de connecter du matériel irremplaçable.

État observé Verdict Action suivante
Contrôleur dédié et groupe propre Transférer L'hôte conserve les autres contrôleurs
Le contrôleur partage un groupe avec un périphérique critique Ne pas transférer Ajouter une carte USB distincte
Propriété du port inconnue Cartographier d'abord Aucun périphérique de production pour l'instant

Transférer le contrôleur avec une procédure de retour

Notez le pilote et les paramètres de démarrage d'origine, puis ne modifiez qu'un contrôleur à la fois. Évitez de recourir à ACS override en première intention, car cette option peut donner l'impression que les groupes sont séparés sans modifier l'isolation matérielle sous-jacente.

Ajoutez le périphérique PCI à la VM et activez les options requises pour la machine et l'IOMMU. Testez le branchement à chaud, les transferts soutenus, la réinitialisation de la VM et le redémarrage de l'hôte.

La revue matérielle de ZimaCube publiée par ZimaSpace montre pourquoi la disposition des extensions est importante.

Le guide communautaire du passthrough VFIO explique le regroupement IOMMU et l'isolation des périphériques.

-15% OFF

Tester à nouveau chaque port physique

Après le démarrage, testez chaque port de l'hôte et chaque port attribué à la VM avec un périphérique de stockage et un périphérique HID à faible risque. Vérifiez que l'hôte reste accessible si la VM est arrêtée ou tombe en panne.

Répétez les tests après une mise hors tension complète, car le firmware peut réorganiser les périphériques ou modifier leur initialisation. Conservez une méthode de récupération par console qui ne dépend pas du contrôleur transféré.

Poursuivez uniquement lorsque le contrôleur cible dispose d'un groupe sûr et que l'hôte conserve ses moyens de gestion ainsi que ses périphériques USB critiques. Arrêtez-vous si le stockage, le réseau, l'onduleur ou toutes les entrées de l'hôte disparaissent avec la fonction cible.

Assistance et conseils

Plus à lire

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.