ESXi 7.0 主机添加USB设备失败?一步一步教你解决
很多人用ESXi 7.0主机时会遇到USB设备(U盘、加密狗、USB网卡等)加不上、识别不到或添加后用不了的问题。本文避开复杂术语按“先查简单问题、再调配置、最后解疑难”的顺序拆解每一步操作适配所有ESXi 7.0子版本新手也能跟着做快速解决USB添加失败的各类常见问题。一、先做基础物理与设备自检(排除简单问题)1、确认 USB 设备本身正常把设备插到普通 Windows/Linux 电脑看能否正常识别、读写。换一根 USB 线、换一个 USB 端口(优先用主机后置原生 USB避免前置 / 延长线)。对需要供电的设备(移动硬盘、加密狗)用带独立电源的 USB Hub避免供电不足。2、确认主机 USB 控制器在 BIOS/UEFI 已启用重启服务器进入 BIOS/UEFI(常见按键Del、F2、F10、F11)。找到并开启USB Controller(USB 控制器)、EHCI(USB 2.0)、XHCI(USB 3.0/3.1)。IOMMU / VT-d / AMD-Vi(设备直通必须开启否则 USB/PCI 直通都无法用)。保存退出重启 ESXi。二、检查 ESXi 主机是否识别到 USB 设备(SSH 排查)先启用 ESXi Shell/SSHvSphere Client → 主机 → 服务 → 启动 TSM-SSH。用工具(Xshell、Putty)以 root 登录 ESXi。1. 查看主机识别到的 USB 设备# 列出所有 USB 设备(最常用) esxcli hardware usb list # 查看 USB 控制器(确认 XHCI/EHCI 存在) esxcli hardware pci list | grep -i usb # 查看 USB 直通设备状态 esxcli hardware usb passthrough device list若 esxcli hardware usb list 无目标设备换端口、换设备、换 Hub。检查 BIOS 是否开启 XHCI/EHCI。部分主板需开启 USB Legacy Support / XHCI Hand-off。2. 检查 USB 驱动 / 模块是否加载# 查看 USB 核心模块是否加载 esxcli system module list | grep -i usb应看到usbcore、ehci-hcd、xhci-hcd、usb-storage 等为 true(已加载)。若模块未加载手动启用esxcli system module set --moduleusb-storage --enabledtrue esxcli system module set --modulexhci-hcd --enabledtrue3. 检查 USB 仲裁服务(usbarbitrator)是否运行USB 直通依赖此服务管理设备分配# 查看服务状态 /etc/init.d/usbarbitrator status # 重启服务(常用修复) /etc/init.d/usbarbitrator restart若服务未运行/etc/init.d/usbarbitrator start # 设置开机自启 chkconfig usbarbitrator on4. 查看 USB 相关日志(定位深层问题)# 实时查看 USB 日志 tail -f /var/log/vmkernel.log | grep -i usb tail -f /var/log/usb.log常见错误Excluding device from enumeration because it is marked a hub设备被误判为 HubESXi 不支持直通 Hub需换设备或用高级参数绕过。inquiry failed设备响应异常、供电不足或兼容性问题。三、虚拟机(VM)配置正确设置(最常见配置错误)1. 虚拟机硬件版本要求硬件版本 ≥ vmx-14(ESXi 6.5)建议用 17/19(ESXi 7.0 推荐)。查看 / 升级vSphere Client → 虚拟机 → 编辑设置 → 虚拟机选项 → 虚拟机兼容性。2. 必须给 VM 添加 USB 控制器(默认不自动添加)关闭虚拟机电源(USB 直通不支持热插拔配置)。编辑设置 → 添加新设备 → USB 控制器。选择控制器类型USB 3.1优先用于 USB 3.0 设备性能更好。USB 2.0老设备、兼容性问题时用(如部分加密狗、HID)。保存。3. 添加 “主机 USB 设备” 直通编辑设置 → 添加新设备 → 主机 USB 设备。在下拉列表选择要直通的设备(必须是 ESXi 已识别的)。保存开机虚拟机。4. 虚拟机内验证Windows打开 设备管理器看是否出现新 USB 设备(无黄色感叹号)。Linux执行 lsusb、dmesg | grep usb 查看。四、USB 直通启用与权限问题(进阶)1. 启用 USB 设备直通(主机级)vSphere Client → 主机 → 配置 → 硬件 → USB 设备。找到目标设备 → 点击 切换直通模式 → 确认启用(状态变为 “已启用”)。必须重启 ESXi 主机直通才生效。2. 虚拟机高级参数(解决特殊设备无法直通)部分设备(加密狗、HID、读卡器、被误判为 Hub 的设备)需在 .vmx 加参数关闭虚拟机。编辑设置 → 虚拟机选项 → 高级 → 编辑配置 → 添加以下参数(按需)# 允许 HID 设备(键盘/鼠标/部分加密狗) usb.generic.allowHID TRUE # 允许智能卡/读卡器(CCID) usb.generic.allowCCID TRUE # 允许被误判为 Hub 的设备直通 usb.quirks.device0 0xVID:0xPID allow # 示例VID1234 PID5678 # usb.quirks.device0 0x1234:0x5678 allowVID/PID 可从 esxcli hardware usb list 获取VMware Support Portal。保存开机。3. 权限与资源限制确认登录用户有 虚拟机 → 配置 → 添加或移除设备 权限VMware。单台 VM 最多直通 20 个 USB 设备单台主机全局上限也是 20 个VMware。启用 USB 直通的 VM不支持 Fault Tolerance(FT)vMotion 需满足条件。五、特殊场景与兼容性问题(常见坑)1、USB Hub 不支持直通ESXi 不支持将 USB Hub 整体直通只能直通 Hub 上的单个设备;若设备被误判为 Hub用上面 usb.quirks 参数绕过。2、USB 3.0/3.1 兼容性ESXi 7.0U3 原生支持 XHCI 1.1;老版本对新 USB 3.2 Gen2 设备可能不兼容。若 USB 3.1 无法用降级为 USB 2.0 控制器 重试。3、加密狗 / 工业设备优先用 USB 2.0 控制器。必须添加 usb.generic.allowHID TRUE。部分加密狗需在虚拟机内安装厂商驱动。4、ESXi 版本与补丁升级到 ESXi 7.0 U3c/U3d 或更高修复大量 USB 直通 Bug。检查 VMware HCL确认主板 / USB 控制器在兼容列表内。六、完整排查流程(按顺序执行)1、物理检查设备正常、换线 / 换口 / 带电源 Hub。2、BIOS开启 USB 控制器、XHCI/EHCI、VT-d/IOMMU。3、ESXi 主机esxcli hardware usb list 确认识别。重启 usbarbitrator 服务。启用 USB 直通并重启主机。4、虚拟机硬件版本 ≥14。添加 USB 3.1/2.0 控制器。添加 “主机 USB 设备”。必要时加 .vmx 高级参数。5、虚拟机内安装驱动、查看设备管理器 /lsusb。6、日志/var/log/vmkernel.log、/var/log/usb.log 定位错误。七、仍无法解决?尝试终极方案1、重置 USB 配置# 停止服务 /etc/init.d/usbarbitrator stop # 清除 USB 状态 rm -rf /var/run/vmware/usbarb* # 重启服务 /etc/init.d/usbarbitrator start2、添加 PCI-E USB 扩展卡主板原生 USB 兼容性差时加一张 VMware HCL 认证的 PCI-E USB 3.0 卡直通整个 USB 控制器给 VM(更稳定)。3、升级 ESXi 到最新 U3 补丁很多 USB 问题在 7.0 U3 后续补丁中修复。