You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Virtual Machine通过网络USB Hub实现对接物理USB口的仿真U盘

虚拟机仿真U盘对接物理USB端口配置方案

前置准备

  • 虚拟机平台优先选择 KVM 或 VMware Workstation/Pro,兼容性优于 VirtualBox,需提前开启宿主机 CPU 硬件虚拟化扩展(Intel VT-x / AMD-V)
  • 虚拟机操作系统推荐使用 Debian 11+ / Ubuntu 20.04+ 服务器版,占用资源低、内核对USB Gadget支持完善
  • 虚拟机存储预留空间至少为单批次导出文件总容量的3倍,避免磁盘写满导致导出失败

步骤1:对接IP USB Hub物理端口

我们需要先把IP USB Hub上连接现场设备的物理USB端口映射到虚拟机中:

  • 安装USB/IP客户端工具:
    Debian/Ubuntu 执行 apt update && apt install usbip -y
    CentOS/RHEL 执行 yum install usbip -y
  • 加载虚拟主机控制器内核模块:
    执行 modprobe vhci-hcd,并将 vhci-hcd 写入 /etc/modules-load.d/usbip.conf 实现开机自动加载
  • 绑定物理USB端口到虚拟机:
    先执行 usbip list -r [IP USB Hub的局域网IP] 查看Hub上所有可用端口的总线ID,再执行 usbip attach -r [IP USB Hub的局域网IP] -b [对应端口总线ID] 完成绑定
  • 验证绑定结果:执行 lsusb 能看到对应USB端口设备即代表对接成功

步骤2:配置仿真U盘(USB大容量存储仿真)

  • 首先创建仿真U盘的存储镜像文件,以创建32G容量为例,执行:
    qemu-img create -f raw /opt/usbdisk.img 32G
    如需更高读写性能可添加preallocation参数:qemu-img create -f raw -o preallocation=full /opt/usbdisk.img 32G
  • 格式化镜像为现场设备支持的文件系统,32G及以下用FAT32:mkfs.vfat /opt/usbdisk.img,大于32G用exFAT:mkfs.exfat /opt/usbdisk.img
  • 加载USB大容量存储Gadget内核模块,暴露镜像为可移动U盘:
    modprobe g_mass_storage file=/opt/usbdisk.img stall=0 removable=1
    参数说明:stall=0 避免传输超时,removable=1 让设备识别为可移动磁盘,和普通U盘表现完全一致
  • 配置开机自动加载:将 g_mass_storage file=/opt/usbdisk.img stall=0 removable=1 写入 /etc/modules-load.d/usbgadget.conf 即可,若系统开启了安全启动需先关闭才能加载该模块

步骤3:功能验证与自动化扩展

  • 现在在现场设备端触发导出功能,即可识别到该仿真U盘,写入的数据会直接同步到虚拟机的镜像文件中
  • 如需直接读取导出的文件,可将镜像挂载到本地目录:mount -o loop /opt/usbdisk.img /mnt/usbdisk,即可直接访问内部文件
  • 可自行编写脚本监控目录文件变更,新文件生成后自动拷贝到指定安全存储位置,实现全流程自动化

常见兼容性优化

  • 若现场设备对U盘的厂商ID/产品ID有校验,可在加载g_mass_storage模块时添加idVendor=0xXXXX idProduct=0xXXXX参数,替换为原有普通U盘的PID/VID,完全模拟旧U盘避免识别失败
  • IP USB Hub与虚拟机需部署在同一个二层VLAN内,避免跨网传输延迟过高导致现场设备识别U盘超时
  • 每3个月执行一次fsck检查镜像文件系统,避免文件系统损坏导致导出失败

内容的提问来源于stack exchange,提问作者meehog527

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 21:39:04