第一步:在宿主机上识别 U 盘
|
1 |
lsusb |

|
1 |
输出中会显示类似 Bus 001 Device 005: ID 0781:5581 SanDisk Corp. 的信息。你需要记下 ID 后面的 厂商ID:产品ID(如 0781:5581),这是配置 XML 的关键信息。 |
第二步:编辑虚拟机 XML 配置
使用以下命令编辑 XML(建议先关闭虚拟机,或使用 --live 参数热插拔):
virsh edit <你的虚拟机名称>
|
1 2 3 4 5 6 7 8 9 10 11 12 |
在 <devices> 段落内,添加以下 <hostdev> 配置。请将 0x0781 和 0x5581 替换为你实际 U 盘的 ID(注意前面要加 0x): <hostdev mode='subsystem' type='usb' managed='yes'> <source> <vendor id='0x0781'/> <product id='0x5581'/> </source> </hostdev> #参数说明 managed='yes':让 libvirt 自动管理设备的挂载与卸载,是最省心的选项。 vendor id / product id:对应 lsusb 中 ID 后的两个十六进制值,各加 0x 前缀。 |
如果 U 盘是 USB 3.0 的,为了获得最佳性能,建议在 XML 中也添加一个 USB 3.0 控制器(如果尚未存在):
|
1 2 3 |
<controller type='usb' index='0' model='qemu-xhci' ports='15'> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </controller> |
qemu-xhci 对应 USB 3.0 (xHCI) 控制器,Windows 10 内置了对它的原生驱动支持。
第三步:启动并验证
|
1 |
保存 XML 后,启动虚拟机。进入 Windows 10 系统后,打开 “设备管理器”,你应该能在 “通用串行总线控制器” 或 “磁盘驱动器” 下看到新识别的 U 盘设备。 |
附加:热插拔(虚拟机运行时挂载/卸载)
如果不想每次都编辑 XML 并重启虚拟机,可以使用热插拔。创建一个单独的 XML 文件(如 usb.xml),内容就是上面那个 <hostdev> 片段,然后执行:
挂载 :
|
1 |
virsh attach-device <虚拟机名称> --file usb.xml --live |
卸载 :
|
1 |
virsh detach-device <虚拟机名称> --file usb.xml --live |
--live 表示对正在运行的虚拟机生效。
- 本文固定链接: https://www.yoyoask.com/?p=14621
- 转载请注明: shooter 于 SHOOTER 发表