在 CentOS 的 VirtualBox 中配置 USB 设备
一 前提准备
- 安装与主机 VirtualBox 版本一致 的 Oracle VM VirtualBox Extension Pack(提供 USB 2.0/3.0 xHCI 支持)。在主机上执行安装:sudo VBoxManage extpack install [扩展包名称].vboxextpack。安装后重启 VirtualBox。
- 将当前登录用户加入 vboxusers 组以访问 USB:sudo usermod -aG vboxusers 用户名,随后需重新登录或重启使组权限生效。
- 在虚拟机设置中启用 USB 控制器:选择 USB 2.0(EHCI) 或 USB 3.0(xHCI)(设备支持哪一代就选哪一代)。
以上步骤是使用 USB 的必要前提,未安装扩展包或不具备 vboxusers 权限时,通常无法看到或挂载 USB 设备。
二 在虚拟机中连接 USB 存储设备
- 插入 U 盘到主机,保持虚拟机运行或处于关机状态均可;在虚拟机窗口底部的 USB 图标或“设备 → USB”菜单中勾选该设备,使其从主机切换到虚拟机。若已创建 USB 设备过滤器,设备插入时会自动连接。
- 在 CentOS 客户机内确认连接:
- 查看设备:lsblk(常见为 /dev/sdb 或 /dev/sdc;分区为 /dev/sdb1 等)
- 挂载使用:
- 创建挂载点:sudo mkdir -p /mnt/usb
- 挂载分区:sudo mount /dev/sdb1 /mnt/usb
- 卸载:sudo umount /mnt/usb
- 如需确认驱动与连接日志:lsusb、dmesg | tail。
以上流程适用于大多数 USB 存储设备;关键在于先在 VirtualBox 中完成设备捕获,再在客户机内完成识别与挂载。
三 常见问题与排查
- 在 VirtualBox 的设备列表中看不到 USB 设备:
- 确认已安装 Extension Pack,并在虚拟机设置里启用了 USB 2.0/3.0 控制器;
- 确认当前用户属于 vboxusers 组并已重新登录;
- 插入设备后再打开设备列表,或为该设备创建 USB 过滤器;
- 优先使用主机 USB 3.0 接口,避免集线器导致的枚举问题。
- 客户机内看不到 /dev/sdX:
- 在客户机执行 dmesg | tail、lsblk 检查是否识别;
- 确认设备已被虚拟机捕获而非仍连接在主机;
- 若是较老的 CentOS 6 环境,优先确保设备过滤器配置正确,再检查分区与挂载点。
- 权限或驱动问题:
- 存储类设备通常无需额外驱动;特殊设备(如某些工业/加密设备)需按厂商文档安装驱动;
- 避免使用过时的 usbfs 全局权限方式,优先通过 vboxusers 组与设备过滤器规范访问。
以上为最常见的故障点与处理方向,可逐项核对以快速定位问题。
四 进阶命令与自动化
- 查看主机可见的 USB 设备(用于确认 VendorID/ProductID 与设备名称):VBoxManage list usbhost。
- 为指定设备创建过滤器(示例):VBoxManage usbfilter add 0 --target “虚拟机名称” --name “MyUSB” --vendorid “1234” --productid “5678”。
- 将用户加入 vboxusers 并重新登录后,通常无需 root 即可在图形界面完成 USB 捕获与释放。
这些命令有助于在无图形界面或批量部署时快速配置与验证 USB 访问。