Can You Pass One USB Controller to a VM Without Losing Host Ports?

Eva Wong is the Technical Writer and resident tinkerer at ZimaSpace. A lifelong geek with a passion for homelabs and open-source software, she specializes in translating complex technical concepts into accessible, hands-on guides. Eva believes that self-hosting should be fun, not intimidating. Through her tutorials, she empowers the community to demystify hardware setups, from building their first NAS to mastering Docker containers.

Yes, but only when the ports you want belong to a controller that can be isolated from the host. PCI passthrough assigns the entire USB controller, not one connector, so every port wired to that controller moves with it.

The labels on the case are not a reliable map. Front, rear, and internal headers may share one controller, while a single rear panel can contain ports from two controllers. That distinction determines the safe configuration, validation method, and rollback point.

Map controllers, ports, and IOMMU groups

List PCI USB controllers and their IOMMU groups, then plug a harmless device into each physical port and watch which controller receives it. Save the map before changing drivers.

An IOMMU group is the minimum safe assignment boundary on most systems. If the target controller shares a group with storage, networking, or the only host USB controller, passthrough risks removing more than intended.

The cleanest fix for an inseparable layout is a dedicated PCIe USB card. Choose a card whose controller does not share an unsafe group and whose power budget fits attached devices.

Decide from host-survival signals

Keep SSH or another non-USB management path active. Confirm the host's keyboard, boot media, UPS cable, and installer input are not attached to the controller being reassigned.

Bind only the target PCI function to VFIO and reboot. The host should retain the remaining controller and the VM should enumerate all ports on the passed device.

Use the table below before attaching irreplaceable hardware.

Observed state Verdict Next action
Dedicated controller and clean group Pass through Host keeps other controllers
Controller shares critical device group Do not pass Add a separate USB card
Port ownership unknown Map first No production devices yet

Pass the controller with a rollback path

Record the original driver and boot parameters, then change one controller at a time. Avoid ACS override as a first response because it can make groups appear separate without changing the underlying hardware isolation.

Attach the PCI device to the VM and enable the required machine and IOMMU options. Test hot-plug, sustained transfers, VM reset, and host reboot.

ZimaSpace's ZimaCube hardware review shows why expansion layout matters.

The community VFIO passthrough guide explains IOMMU grouping and device isolation.

-15% OFF
Single board computer zimaboard2

Retest every physical port

After boot, test every host port and every VM-owned port with storage and a low-risk HID device. Verify the host remains reachable if the VM is stopped or crashes.

Repeat after a cold power cycle because firmware can reorder devices or change initialization. Keep a console recovery method that does not depend on the passed controller.

Proceed only when the target controller has a safe group and the host retains management and critical USB devices. Stop if storage, network, UPS, or all host input disappears with the target function.

Support & Tips

More to Read

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.