ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

VMware Tools在Ubuntu虚拟机中的安装与问题排查指南

VMware Tools在Ubuntu虚拟机中的安装与问题排查指南 1. 为什么装完Ubuntu虚拟机一定要先处理VMware Tools先问一句最实在的你刚装完Ubuntu虚拟机的时候是不是觉得鼠标怎么都出不了窗口边界分辨率怎么调都嫌别扭想把Windows里的文件拖进Ubuntu直接被系统“礼貌拒绝”如果是那你缺的正是VMware Tools。VMware Tools是VMware虚拟机里最基础也是最重要的增强工具包。它不是一个可有可无的“官方插件”而是负责打通宿主机Windows和虚拟机Ubuntu之间交互的核心组件。装完之后你最直观的感受会有三点鼠标可以在两个系统之间自由进出不再需要按CtrlAlt释放——这是“鼠标无缝切换”Ubuntu桌面的分辨率会跟随VMware窗口自动适配不再固定成1024x768的“上古画质”——这是“显示自动调整”以及Windows和Ubuntu之间可以直接拖拽复制文件、共享剪贴板——这就是“文件拖入”的核心能力。这篇文章不是给你看一眼“下一步下一步”那种截图式教程就完事的。我会结合实际安装过程中踩过的坑、修过的错把底层逻辑讲清楚。比如为什么有些人安了Tools之后拖拽还是失效为什么提示“继续运行脚本未能在虚拟机中成功运行”为什么新版本VMware Workstation里ubuntu安装tools会提示不再内置支持这些在网上问得极多的问题我都会拆开讲。适合谁看刚装完Ubuntu虚拟机的新手还有那些被文件拖拽功能折磨得想砸电脑的强迫症用户。只要你是用VMware Workstation跑Ubuntu这篇文章能替你省下至少两个小时折腾时间。2. 安装前的准备先搞懂VMware Tools的原理和版本2.1 VMware Tools到底做了什么很多人把VMware Tools当成一个“拖文件的小工具”其实它是一整套驱动和服务的集合。它由几个核心部分组成各自负责不同的任务显示驱动负责让虚拟机内的显卡和VMware的虚拟显卡通信实现分辨率的动态调整和更高的图形性能。鼠标驱动实现宿主机和虚拟机之间的指针无缝切换不需要手动捕获或释放鼠标。内存管理模块比如vmmemctl优化虚拟机的内存使用让内存分配更高效。网络驱动部分虚拟网络模式需要特定驱动支持比如VMXNET3网卡。拖拽与剪贴板服务也就是文件拖放和双向剪贴板共享的通道由vmware-user进程常驻提供。时间同步服务让虚拟机始终和宿主机保持时间一致这个对后续开发联调很关键。所以文件拖入只是Tools功能里的其中一个模块。如果你只为了拖文件而不装Tools即便你在VMware设置里开了“启用拖放”也完全不会生效。这也是很多人反复折腾虚拟机设置却发现没用的原因——设置只在宿主机侧开了“口子”客户端没有对应的“接应服务”数据通道根本没建立起来。2.2 新版本VMware Workstation还要不要手动装这里有一个非常重要的背景变化。现在很多人在VMware Workstation 15、16、17系列里装Ubuntu会碰到一个提示“VMware Tools is no longer shipped with VMware Workstation for this guest operating system”这个客户机操作系统不再随附VMware Tools。这不是错误也不是安装包损坏而是VMware官方在新版本里对Linux类的客户机切换了策略。原因是Linux生态中出现了open-vm-tools一个开源版本的VMware Tools它已经直接集成在主流Linux发行版的官方源里。VMware认为对于Linux发行版用户直接安装open-vm-tools是更合理的做法所以不再往VMware安装目录里塞Linux版的tools安装包。但Windows客户机不受影响依然会自动挂载Windows版安装包。理解了这个机制你就明白为什么网上教程五花八门有说菜单里直接点“安装VMware Tools”的有说挂载linux.iso的有说apt install open-vm-tools的……其实它们都是对的区别只在于你的VMware版本和Ubuntu版本处于什么时代。我会把两条路都写清楚你按实际情况选择。2.3 两种主流安装方案怎么选安装VMware ToolsLinux版目前主要有两条路线方案适用场景优点缺点官方VMware Tools手动ISO安装使用桌面版Ubuntu、需要官方完整功能、遇到VMware Workstation老版本功能完整适配VMware特性最稳需要一定手动操作编译依赖GCC和内核头文件open-vm-tools仓库安装使用较新VMware Workstation Ubuntu 18.04及以上版本一条命令装完随系统更新自动适配极个别老版本VMware下兼容性略弱我的建议是如果你用的VMware Workstation是15.5以上Ubuntu是18.04以上优先用open-vm-tools方案。它和系统内核同步更新不会出现内核升级后Tools失效的老问题。如果你确实需要完整版的官方Tools再手动安装。这两个方案我在下文分别给到可复现的操作流程。3. 手动安装官方VMware Tools完整的图形界面和命令行操作这一节我们先讲官方Tools安装包的方式。之所以先讲它是因为有不少人用的还是老版本VMware Workstation菜单里依然有“安装VMware Tools”的入口。另外很多教程只教你图形界面点击我会把命令行安装也一并覆盖——因为虚拟机里没法弹图形界面比如估摸着你SSH进去操作的时候命令行是唯一出路。3.1 在VMware Workstation菜单里挂载Tools安装包在Ubuntu虚拟机开机状态下先确保虚拟机窗口处于聚焦状态。然后打开VMware Workstation顶部菜单栏的“虚拟机VM”选项点击“安装VMware ToolsInstall VMware Tools”。点击后虚拟机内部会弹出一个提示框问你是否要挂载VMware Tools的ISO镜像到光驱选择“挂载”。这时的效果是VMware工具包在宿主机侧自动定位到安装包ISO然后把它挂载到虚拟机的虚拟光驱设备通常是/dev/cdrom或/dev/sr0上。在Ubuntu桌面版里挂载后文件管理器左侧会出现一个名为“VMware Tools”的光盘图标。如果没自动弹出你可以在文件管理器里找到光驱并手动打开。打开后一般会看到一个压缩包VMwareTools-版本号.tar.gz。3.2 解压安装包的三个细节很多人卡在这一步说“我双击那个tar.gz没反应”或是“解压到哪了找不到”。这里我教你一个稳妥的流程不要在图形界面里用右键解压权限和路径容易出问题而是在终端里用命令行操作。打开终端CtrlAltT先确认挂载点ls /media/$(whoami)/VMware\ Tools/看到VMwareTools-xxx.tar.gz之后把它复制到/tmp目录再解压。为什么复制到/tmp因为光驱是只读的直接在光驱目录里解压做不到而且解压出来的文件需要存储到可写分区。顺便说一句复制的时候建议给文件改名去掉空格和特殊字符避免后面命令输入出错cp /media/$(whoami)/VMware\ Tools/VMwareTools-*.tar.gz /tmp/ cd /tmp tar -zxvf VMwareTools-*.tar.gz解压完成后会得到一个名为vmware-tools-distrib的文件夹。这时候你先不要急着运行安装脚本先确认系统里有编译环境。如果系统是刚装好的Ubuntu很可能缺GCC和内核头文件直接跑安装脚本会报错。补环境一条命令sudo apt update sudo apt install gcc make linux-headers-$(uname -r) build-essentiallinux-headers-$(uname -r)这个写法是动态匹配当前内核版本装的是对应的头文件。这一步是很多人忽略的关键有了内核头文件安装脚本才能编译出和当前内核匹配的内核模块否则加载失败。3.3 运行安装脚本的关键命令环境准备好之后进入解压目录执行安装cd /tmp/vmware-tools-distrib sudo ./vmware-install.pl执行后脚本会进入一连串交互式问答。内容无非是问你“安装路径在哪”“是否启用某个功能”之类。对于绝大多数人一路回车用默认值就是最优解。但注意有一个问题是“Would you like to enable VMware VMXnet3 network driver?”这种建议直接回车取默认通常是yes不要手动输入no。对于“The file /etc/vmware-tools/locations is missing. Would you like to create it?”这种也默认回车。等脚本最后输出“Enjoy VMware Tools!”之类的提示说明安装完成。此时建议直接重启虚拟机sudo reboot重启之后你在虚拟机里执行以下命令验证版本vmware-toolbox-cmd -v如果输出了类似“VMware Tools daemon, version 12.x.x”的信息就说明Tools服务已经在运行了。3.4 安装过程中的报错继续运行脚本未能在虚拟机中成功运行这个报错在VMware的安装日志和虚拟机的右下角提示里经常出现原话是“继续运行脚本未能在虚拟机中成功运行”。许多人在这一步被吓到以为安装失败了。实际原因多数是安装过程中有一个叫vmware-config-tools.pl的配置脚本它需要和VMware的虚拟机设备通信来完成功能配置。如果宿主机VMware Workstation和客户机之间的通信通道存在问题或者内核配置、服务冲突脚本的某一段就可能非零退出于是VMware提醒你脚本没有成功运行。处理办法分两步走第一先别急着卸载重装。重启一次虚拟机看看Tools是否已经在工作。因为很多时候脚本退出只是某个非关键功能配置失败比如时间同步服务没有启动其他核心功能已经装好。你在重启后试一下分辨率自适应、鼠标无缝切换、文件拖拽如果这些正常那就继续用不要管那个提示。第二如果重启后依然不工作那大概率是内核头文件和编译环境不对安装过程在编译内核模块时出了问题。此时重置环境按顺序执行sudo /usr/bin/vmware-uninstall-tools.pl sudo apt reinstall gcc make build-essential linux-headers-$(uname -r)卸载完成后重新执行3.3节的安装流程。这个方法能解决90%以上的“脚本未成功运行”类问题本质原因是它把失败的可能性逐项排除而不是在报错信息里瞎转。3.5 命令行安装方式免去图形界面困扰如果你是通过SSH连接到Ubuntu虚拟机只用了命令行没有桌面环境可以点击那么上面3.1和3.2节里的图形界面操作部分对你就不适用。但没关系挂载ISO也可以靠命令行来实现。在VMware菜单里点击“安装VMware Tools”后在SSH终端执行sudo mount /dev/cdrom /mnt ls /mnt如果挂载失败试试/dev/sr0sudo mount /dev/sr0 /mnt剩下就是同样的复制解压过程cp /mnt/VMwareTools-*.tar.gz /tmp/ cd /tmp tar -zxvf VMwareTools-*.tar.gz cd vmware-tools-distrib sudo ./vmware-install.pl这个方式对服务器版Ubuntu同样有效。很多人以为VMware Tools只有桌面版需要其实服务器版装Tools也能获益尤其是共享剪贴板虽然用不上但网络驱动和内存优化依然有提升。4. 更省事的替代方案用open-vm-tools一步到位4.1 为什么新版本推荐这个方案如果你用的VMware Workstation版本比较新打开“安装VMware Tools”菜单后发现根本没反应或者提示不再给Linux客户机提供ISO这时候就别找老版本ISO瞎折腾了直接用open-vm-tools是最舒服的。open-vm-tools是VMware官方和Linux社区合作维护的开源版本很多宿主机增强功能都被社区移植进去了包括文件拖放、剪贴板共享、分辨率适配、时间同步、内核模块自动重建等。因为它的源码是开放的所以各大Linux发行版直接将其打包进了软件源一旦有新的内核版本发布open-vm-tools也会同步更新到适配版本。这意味着你升级内核后不需要手动重装Tools非常省心。相比之下官方版本Tools在每次Ubuntu大版本内核升级之后经常出现模块编译失败的情况得重新运行vmware-install.pl时间一久很多人就忘了怎么处理导致Tools失效。作为一个被这个问题坑过多次的人我现在在绝大多数场景下都用open-vm-tools。4.2 open-vm-tools安装流程安装过程相当简单就两条命令sudo apt update sudo apt install open-vm-tools如果是桌面版Ubuntu还需要额外装一个桌面环境集成的组件否则拖拽和剪贴板共享依然不可用sudo apt install open-vm-tools-desktop对这个-desktop后缀非常关键。我见过不少人在纯桌面版Ubuntu里只装了open-vm-tools然后觉得分辨率确实好了但拖拽不行、剪贴板共享也不行跑来问怎么回事。原因就是这个桌面集成包没装。装完后重启虚拟机sudo reboot重启后验证systemctl status open-vm-tools看到active (running)就说明服务正常。此时去测一下拖拽文件、复制粘贴文本、窗口分辨率自适应应该都好使。4.3 官方Tools和open-vm-tools能共存吗有朋友会问我已经装了官方VMware Tools能不能再用open-vm-tools补强我的建议是不要共存。这两个工具都想管理相同的设备和服务同时运行会互相冲突轻则某些功能无效重则服务反复崩溃。如果你想把官方Tools切换成open-vm-tools先彻底卸载官方版本sudo /usr/bin/vmware-uninstall-tools.pl卸载后重启一次再安装open-vm-tools。反过来如果你装了open-vm-tools想换官方版本那就先sudo apt remove --purge open-vm-tools open-vm-tools-desktop sudo reboot然后再走3.1节的官方安装流程。保持“二选一”原则系统才稳定。5. 文件拖入失效的排查思路与常见问题工具装了服务也跑了结果发现文件还是拖不进去这是碰到频率最高的问题。我把它单独拿出来讲因为排查路径非常固定按顺序走完基本都能定位。5.1 先看VMware虚拟机设置里的开关VMware Workstation默认是对拖拽放行和复制粘贴共享开启的但保不齐有人手动关过。打开虚拟机的“虚拟机设置VM Settings”切到“选项Options”页签在“客户机隔离Guest Isolation”分类下勾选“启用拖放Enable drag and drop”和“启用复制粘贴Enable copy and paste”。这两个开关是宿主机侧和政策侧的总闸。如果这里是关闭状态无论虚拟机里Tools装得多好拖拽都不会生效。这个设置简单但很多人漏查了看到功能不启用就以为是Tools问题费了很大劲重装一遍。5.2 确认vmware-user进程是否存在打开终端执行ps -ef | grep vmware正常情况下应该能看到vmware-toolsd、vmware-user等进程在跑。如果vmware-user不存在拖拽服务和剪贴板服务多半就没起来。对于open-vm-tools桌面版服务由systemd统一管理。执行systemctl status open-vm-tools systemctl status open-vm-tools-desktop如果发现某个服务处于failed状态尝试手动重启sudo systemctl restart open-vm-tools sudo systemctl restart open-vm-tools-desktop5.3 拖拽文件过大或目录权限问题还有一类情况是技术本身没问题但你拖的文件太大比如好几个GB的压缩包在内存不足时容易失败或者目标目录没有写权限。我建议先拖一个小文件放到用户主目录里测试。如果小文件没问题大文件失败那就是性能或内存因素。如果文件拖进去提示权限不足可以考虑用命令行方式复制或者先拖到主目录再mv到目标位置。另外拖拽时不要从Windows的资源管理器里拖到Ubuntu的“管理员权限目录”里比如/usr、/etc因为普通用户对这些目录没有写入权限拖过去必失败。目标目录选在主文件夹里比如/home/用户名/Downloads最稳妥。5.4 常见问题排查速查表现象可能原因解决办法拖拽没有反应未装VMware Tools或Guest Isolation关闭确认已装Tools检查虚拟机设置里的拖放开关鼠标无法移出虚拟机窗口Tools未运行或鼠标捕获状态异常重启虚拟机或重新安装Tools分辨率不能自适应显示驱动没生效重启虚拟机或确认Tools服务运行中提示“continue script failed”内核模块编译失败或配置脚本异常重启看效果不行就重装内核头文件后重装Toolsopen-vm-tools装完拖拽仍失败缺open-vm-tools-desktop安装桌面集成包并重启内核升级后Tools失效内核模块不与新内核匹配官方Tools执行重装open-vm-tools一般无需处理5.5 “虚拟机中拖拽不完全生效”时最实用的应急方案有时候Tools无论如何都装不好或者你时间紧急不想在这个事情上耗着。那也有临时能把文件从Windows传进Ubuntu的办法启用VMware自带的“共享文件夹Shared Folders”。在虚拟机设置里切到“选项”页签选“共享文件夹Shared Folders”勾选“总是启用”然后添加一个Windows目录作为共享。Ubuntu里挂载共享文件夹sudo vmhgfs-fuse .host:/ /mnt/hgfs如果提示没有vmhgfs-fuse装一下依赖sudo apt install open-vm-tools-desktop挂载后Windows里放到共享目录的文件Ubuntu里直接在/mnt/hgfs/对应路径下读取。这个方案不依赖于拖拽功能相当于一条稳定的“文件通道”。6. 实操经验装完VMware Tools之后再做这几个设置体验更好Tools装好只是开始。我分享几个自己在日常使用中的额外配置能让虚拟机的整体体验更顺滑也顺带避开日后踩坑。6.1 安装完成后的第一件事检查显示分辨率重启完虚拟机后打开菜单里的“显示Displays”设置此时你应该能选择比1024x768更高的分辨率。如果你用的是open-vm-tools-desktop甚至会在VMware窗口拉伸时自动调整分辨率。要是发现分辨率依旧是固定的先检查VMware菜单“查看View”里“自动调整大小Autofit Guest”是否勾选然后重启一次虚拟机再观察。6.2 启用复制粘贴的文本共享如果你只拖文件但还想在Windows和Ubuntu之间互相复制文本比如把Windows里的命令复制到Ubuntu终端那还要确保上述Guest Isolation里的“启用复制粘贴”是开着的。Tools装好后这功能是默认启用的。在一些特殊管制系统里VMware默认会关闭这个选项所以手动检查一下没坏处。6.3 设置时间同步避免双系统时差Windows和Ubuntu双系统用户都知道两套系统对硬件时间的处理方式不一样经常切来切去时间会乱。但如果你是在VMware里跑的虚拟机Tools的时间同步服务会在后台自动校准。我的建议是在虚拟机的“选项”页签找到“VMware Tools”勾选“将客户机时间与主机同步Synchronize guest time with host”这样虚拟机时间永远和宿主机一致不会出现日志时间错乱的干扰。6.4 别把/tmp目录里解压后的安装包当垃圾删掉官方Tools安装完/tmp/vmware-tools-distrib这个目录其实没用了可以删。但如果你把安装过的tar.gz和目录保留在别的地方将来内核升级后需要重装能省去重新挂载ISO的步骤。不过说实话在open-vm-tools方案盛行的时代我更推荐你把重装精力放到open-vm-tools上而不是官方版本重装成本低得多。6.5 关于VMware Workstation 17系列的特殊情况VMware Workstation 17开始新版本的Ubuntu客户机对VMware Tools的适配比以往更“挑剔”一些。尤其是官方ISO方式经常出现安装完了各种小毛病。如果你正好用的是17我强烈建议直接走open-vm-tools路线能避开很多兼容性问题。网上关于“vmware 17.6 vmware tools”的讨论热度一直很高就是因为很多人在新版本里被官方Tools的兼容问题折磨过。所以我的真实建议是新VMware版本 新Ubuntu版本无脑open-vm-tools老VMware版本 老Ubuntu版本用官方ISO也没问题。两个方案按场景选不要纠结哪个“更好”选适合自己的就是最优解。7. 环境变了之后升级内核或重装系统时的Tools处理最后一个需要专门说明的场景你的Ubuntu系统不是一次性装完就完事的。内核升级、大版本迁移、系统重装都会影响Tools的可用性。7.1 Ubuntu内核升级后Tools失效怎么办使用官方VMware Tools时内核升级后经常会遇到模块编译失败或服务无法启动的情况。这是因为Tools的内核模块是针对升级前的内核编译的新内核不认旧模块。重新执行一次安装脚本就能解决cd /tmp/vmware-tools-distrib sudo ./vmware-install.pl如果你已经把/tmp目录清理了就得重新挂载ISO、解压步骤同上。如果你用的是open-vm-tools通常不需要手动介入因为apt更新时会自动同步内核模块这是它最大的优势。7.2 重装系统后要不要重新安装Tools只要你的磁盘里是一个全新的Ubuntu系统VMware Tools一定需要重新安装。因为Tools的核心组件是与系统内文件、内核深度耦合的重装系统后这些文件就全部丢失了。不管你上次装的是官方版本还是open-vm-tools一律重新来一遍。重装之后顺手做个快照Snapshot是好习惯。VMware的“快照”功能会在你装好Tools、配置好系统的干净状态下保存一个镜像。以后系统弄坏了恢复快照五分钟就回到干净环境不用重新从安装系统这步开始折腾。这个习惯我强烈建议养成。7.3 快照管理和Tools版本绑定的注意事项给虚拟机做快照前先确认Tools是稳定运行状态。如果你在Tools安装一半或内核模块残缺的情况下做快照将来回滚到这个快照时可能会继承了不完整的Tools状态莫名其妙出现拖拽失效。操作顺序上先重装或修复Tools重启验证再拍快照。快照命名也别偷懒建议写清楚“装了open-vm-tools已测试拖拽可用”之类。VMware快照管理面板支持备注花十秒钟写清楚将来你自己或别人接手这台虚拟机时能省很多排查时间。这一个环节虽然听起来平淡无奇但我见过太多人因为不懂快照和多版本状态管理导致虚拟机系统乱了之后只能推倒重来浪费大量时间。身在运维和开发一线的同行应该都有同感——好习惯有时候比技术本身更能救你命。
返回列表