13.5. 管理虚拟 USB 设备

使用虚拟机(VM)时,您可以访问并控制 USB 设备,如附加到主机系统的如闪存驱动器或 Web 相机。在这种情况下,主机系统会将设备的控制权传递给虚拟机。这也被称为 USB-passthrough。

以下部分提供有关使用命令行的信息:

13.5.1. 将 USB 设备附加到虚拟机

要将 USB 设备附加到虚拟机,您可以在虚拟机 XML 配置文件中包含 USB 设备信息。

先决条件

  • 确定您要传递给虚拟机的设备已附加到主机。

流程

  1. 找到您要附加到虚拟机的 USB 总线和设备值。

    例如:以下命令显示附加到该主机的 USB 设备列表。在这个示例中,使用的设备作为设备 005 总线附加到总线 001 中。

    # lsusb
    [...]
    Bus 001 Device 003: ID 2567:0a2b Intel Corp.
    Bus 001 Device 005: ID 0407:6252 Kingston River 2.0
    [...]
  2. 使用 virt-xml 工具及 --add-device 参数。

    例如,以下命令将 USB 闪存驱动器附加到 example-VM-1 虚拟机。

    # virt-xml example-VM-1 --add-device --hostdev 001.005
    Domain 'example-VM-1' defined successfully.
注意

要将 USB 设备连接到正在运行的虚拟机,请将 --update 参数添加到上一命令中。

验证

  • 运行虚拟机并测试该设备是否存在并正常工作。
  • 使用 virsh dumpxml 命令查看设备的 XML 定义是否已添加到虚拟机 XML 配置文件中的 <devices> 部分。

    # virsh dumpxml example-VM-1
    [...]
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x0407'/>
        <product id='0x6252'/>
        <address bus='1' device='5'/>
      </source>
      <alias name='hostdev0'/>
      <address type='usb' bus='0' port='3'/>
    </hostdev>
    [...]

其它资源

13.5.2. 从虚拟机中删除 USB 设备

要从虚拟机中删除 USB 设备,您可以从虚拟机 XML 配置中删除 USB 设备信息。

流程

  1. 找到您要从虚拟机中删除的 USB 的 bus 和 device 值。

    例如:以下命令显示附加到该主机的 USB 设备列表。在这个示例中,使用的设备作为设备 005 总线附加到总线 001 中。

    # lsusb
    [...]
    Bus 001 Device 003: ID 2567:0a2b Intel Corp.
    Bus 001 Device 005: ID 0407:6252 Kingston River 2.0
    [...]
  2. 使用 virt-xml 工具及 --remove-device 参数。

    例如,以下命令从 example-VM-1 虚拟机中删除附加到主机作为总线 001 上设备 005 的 USB 闪存驱动器。

    # virt-xml example-VM-1 --remove-device --hostdev 001.005
    Domain 'example-VM-1' defined successfully.
注意

要从正在运行的虚拟机中删除 USB 设备,请将 --update 参数添加到上一命令中。

验证

  • 运行虚拟机并检查该设备是否已从设备列表中删除。

其它资源