Linux虚拟机无法使用u盘的一种可能-- 重新下载open-vm-tools + open-vm-tools-desktop解决

一、问题描述

插入u盘后虚拟机lsblk、fdisk -l均无法检测到 U 盘设备,但是底行的状态栏显示u盘是连接成功的。反复尝试多次,重新启动等无用。

二、排查过程

1.U盘在本地可以正常使用,可排除 U 盘硬件故障。

2.查看dmesg日志,发现系统仅识别了新增的 USB 控制器,但未检测到 U 盘的插入记录。

xy@ubuntu:~$ dmesg | tail -30 # 查看最近30条系统日志,寻找U盘相关信息

2074.006268\] pci 0000:03:00.0: reg 0x10: \[mem 0x00000000-0x0001ffff 64bit

2074.051081 pci 0000:03:00.0: PME# supported from D0 D3hot D3cold

2074.059209 pci 0000:03:00.0: disabling ASPM on pre-1.1 PCIe device. You can enable it with 'pcie_aspm=force'

2074.059629\] pci 0000:03:00.0: BAR 0: assigned \[mem 0xfd400000-0xfd41ffff 64bit

2074.059878\] pcieport 0000:00:15.0: PCI bridge to \[bus 03

2074.059908\] pcieport 0000:00:15.0: bridge window \[io 0x4000-0x4fff

2074.059988\] pcieport 0000:00:15.0: bridge window \[mem 0xfd400000-0xfd4fffff

2074.060043\] pcieport 0000:00:15.0: bridge window \[mem 0xe7a00000-0xe7afffff 64bit pref

2074.060375 pci 0000:03:00.0: enabling device (0000 -> 0002)

2074.141963 xhci_hcd 0000:03:00.0: xHCI Host Controller

2074.142143 xhci_hcd 0000:03:00.0: new USB bus registered, assigned bus number 3

2074.143548 xhci_hcd 0000:03:00.0: hcc params 0x0388f081 hci version 0x120 quirks 0x0000000200000010

2074.161958 xhci_hcd 0000:03:00.0: xHCI Host Controller

2074.161968 xhci_hcd 0000:03:00.0: new USB bus registered, assigned bus number 4

2074.162026 xhci_hcd 0000:03:00.0: Host supports USB 3.2 Enhanced SuperSpeed

2074.162342 usb usb3: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.15

2074.162362 usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1

2074.162380 usb usb3: Product: xHCI Host Controller

2074.162398 usb usb3: Manufacturer: Linux 5.15.0-139-generic xhci-hcd

2074.162400 usb usb3: SerialNumber: 0000:03:00.0

2074.165087 hub 3-0:1.0: USB hub found

2074.165611 hub 3-0:1.0: 4 ports detected

2074.168424 usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.

2074.168448 usb usb4: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.15

2074.168451 usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1

2074.168453 usb usb4: Product: xHCI Host Controller

2074.168454 usb usb4: Manufacturer: Linux 5.15.0-139-generic xhci-hcd

2074.168455 usb usb4: SerialNumber: 0000:03:00.0

2074.169542 hub 4-0:1.0: USB hub found

2074.169646 hub 4-0:1.0: 4 ports detected

xy@ubuntu:~$

3.按照网上各种本机对虚拟机的各种设置也排查过发现没有任何问题。

例如: https://blog.csdn.net/qq_51861517/article/details/131238680

4.那就只能是虚拟机内部的问题了,而有一件事情让我惴惴不安:早期手动安装 VMware Tools 后,为适配虚拟机运行需求修改了内存大小,后续发现 VMware Tools 功能失效、虚拟机设置图标也不见了等等问题(现在想因该是年少轻狂没有关虚拟机修改内存破坏了部分资源),一一尝试修改恢复,删除 VMware Tools 后,本以为更换为open-vm-tools + open-vm-tools-desktop后相安无事,没想到恶果至今影响到我。后面下载的open-vm-tools等等应该是资源没有问题的,但是如果 VMware Tools没有删除干净会导致冲突,于是重新删除VMware Tools和open-vm-tools及其配置等等,重新下载open-vm-tools,重启虚拟机,可成功使用u盘。

三、解决方法

关键操作前一定要做虚拟机快照备份,故障排查先从软件依赖、硬件配置入手,小步验证而非盲目全盘重装,如果你跟我问题一样,请按需选择:

bash 复制代码
# 卸载所有 open-vm-tools 相关包(包括桌面版、依赖组件)
sudo apt purge -y open-vm-tools open-vm-tools-desktop open-vm-tools-dkms
# 删除残留的配置文件和缓存
sudo apt autoremove -y sudo apt autoclean


# 搜索系统中是否存在 vmware-uninstall-tools.pl,官方文档卸载的最干净
sudo find / -name "vmware-uninstall-tools.pl" 2>/dev/null
# 若脚本路径是 /usr/bin/vmware-uninstall-tools.pl,取决于你当时下载的地方
 sudo /usr/bin/vmware-uninstall-tools.pl


# 如果不纯在需要清理手动安装的 VMware Tools 核心文件
sudo rm -rf /opt/vmware-tools
sudo rm -rf /usr/share/vmware-tools
# 清理启动脚本
sudo rm -f /etc/init.d/vmware-tools
sudo rm -f /etc/systemd/system/vmware-tools.service


# 重新加载系统服务配置
sudo systemctl daemon-reload
#  手动删除残留的内核模块,避免与新工具冲突
sudo rm -rf /lib/modules/$(uname -r)/kernel/drivers/vmware
sudo rm -rf /lib/modules/$(uname -r)/misc/vm* # 清理 vmci、vmxnet3 等模块
#  重建内核模块依赖缓存
sudo depmod -a
# 检查是否还有 open-vm-tools 相关包
dpkg -l | grep -i vmware-tools
# 检查是否还有残留的内核模块
lsmod | grep -i vmware


#更新软件资源
sudo apt update
#安装
sudo apt install -y open-vm-tools open-vm-tools-desktop open-vm-tools
# 检查服务是否正常运行
sudo systemctl status open-vm-tools # 输出应显示 "active (running)",说明服务启动成功
# 检查内核模块是否加载,确保 USB 透传等功能可用
lsmod | grep -i vm # 应看到 vmci、vsock、vmw_balloon 等模块,说明内核适配成功

四、总结收获

这次踩坑的核心教训是:

虚拟机核心硬件像内存、CPU 等调整必须先关机,开机热修改会导致资源冲突破坏工具适配;

卸载东西时要彻底清理主程序、配置文件和内核模块,避免残留冲突;

选工具优先系统官方维护的(如 open-vm-tools,系统官方维护,兼容性更强,自动适配内核 / 硬件变化),搭配对应扩展组件(open-vm-tools-desktop)才能满足 USB 透传等核心需求;

同时注意拍快照的好习惯,关键操作前一定要做虚拟机快照备份,故障排查先从软件依赖、硬件配置入手,小步验证而非盲目全盘重装,规范操作和清晰的排查逻辑才是避免麻烦的关键。

相关推荐
HLC++2 小时前
Linux的进程间通信
android·linux·服务器
华清远见IT开放实验室4 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
groundhappy6 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python
通信小小昕7 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
张小姐的猫8 小时前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
栩栩云生8 小时前
AI 写代码犯的错,早被写进了错题集
linux·安全·ai编程
imc.119 小时前
linux基础IO
linux·运维·服务器
BelongPanda11 小时前
Linux Nginx 纯手动 Let‘s Encrypt 泛域名证书配置教程
linux·nginx
酷可达拉斯12 小时前
Linux操作系统-shell编程(0)
linux·运维·服务器·python·云计算
2301_7779983412 小时前
Linux中断机制:操作系统如何高效运行
linux·运维·服务器