ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

VMware Tools 12 安装配置与故障排查实战指南

VMware Tools 12 安装配置与故障排查实战指南

简介:VMware Tools 12 是 VMware 官方为虚拟化平台提供的驱动与实用程序组件包,面向使用 VMware Workstation、vSphere 等环境搭建虚拟机的运维人员与开发者,用于解决虚拟硬件性能受限、宿主机与虚拟机交互不畅等问题。压缩包共 1568 个文件,约 53.48MB,以 o、so 驱动与共享库、properties 配置、symvers 内核符号、sh 安装脚本及 vmsg、conf、xml 等类型为主,覆盖显卡、网络、存储驱动与 vmtoolsd 服务、拖放复制等模块。已有 1385 人学习下载。安装后可获得更快的文件传输与图形加速、自动时间同步、动态内存调整、宿主机与虚拟机间复制粘贴和拖放、全屏模式及电源管理支持,并增强 USB 3.0 等新硬件兼容性与虚拟化安全特性,适合需要优化虚拟机体验、排查驱动兼容问题的读者参考使用。

1. 装 VMware Tools 12 之前,先把版本和依赖对齐

虚拟机里那个“安装 VMware Tools”的灰色菜单,点下去没反应,或者装完重启后分辨率还是 800×600,这类事我见过太多次。问题往往不在安装包本身,而在装之前没把宿主版本、客户机系统、内核头文件这三样对齐。VMware Tools 12 是 VMware 官方给客户机操作系统装的一套驱动和用户态服务集合,负责显卡、网卡、内存气球、时间同步、拖拽共享这些事;不装或装错版本,虚拟机就是能开机但用着别扭——分辨率锁死、复制粘贴失效、快照后时间漂移。这篇记录按“先列环境、再装、再配、坏了怎么救”的顺序走,适合刚接手虚拟化环境、或者从旧版 Tools 往 12 迁移的开发者照着复现。

2. 环境准备:VMware Tools 12 的版本对应与依赖清单

装之前先把三件事查清楚:宿主平台是什么、客户机是什么系统、客户机内核版本是多少。VMware Tools 12 并不是一个通吃所有平台的单一安装包,它按客户机操作系统分发行形态:Windows 走setup.exe,Linux 走tar.gz里的vmware-install.pl,macOS 走.dmg。版本号上,12.x 系列主要面向 ESXi 7.0 及以上和 Workstation 16/17,如果宿主还是 ESXi 6.7,装 12 的包可能能装上但部分驱动不匹配,常见做法是退回 11.x 对应版本。这一步不确认,后面装完出现“服务起不来”基本是白忙。

2.1 宿主与客户机的版本对照

先把对照关系列成表,装之前逐行核对,别凭记忆。

宿主平台推荐 Tools 大版本客户机系统安装包形态
ESXi 7.0 / 8.012.xWindows 10/11、Server 2019+windows.iso内setup.exe
ESXi 7.0 / 8.012.xLinux(内核 4.x 以上)linux.iso内VMwareTools-*.tar.gz
Workstation 16 / 1712.xWindows / Linux菜单挂载对应 iso
ESXi 6.711.x同上对应 11.x 包

这张表的关键在最后一行:宿主版本决定 Tools 大版本上限,不是越新越好。我一般先在宿主上执行vmware -v(Workstation)或在 ESXi 主机摘要里看版本号,再决定拿哪个包。

2.2 Linux 客户机的依赖预装

Linux 客户机最容易翻车的地方是缺内核头文件和编译工具,因为vmware-install.pl要现场编译vmhgfs、vmxnet3这些模块。装之前先把依赖补齐,以常见发行版为例:

# Debian / Ubuntu 系:装内核头文件和编译链 sudo apt update sudo apt install -y build-essential linux-headers-$(uname -r) perl # RHEL / CentOS / Rocky 系:装 kernel-devel 和 gcc sudo yum install -y gcc make kernel-devel-$(uname -r) perl

linux-headers-$(uname -r)里的$(uname -r)必须和当前运行内核完全一致,差一个小版本号编译就会报“找不到头文件”。perl是安装脚本本身的运行依赖,很多精简镜像默认没带。装完用uname -r和rpm -q kernel-devel(或dpkg -l | grep linux-headers)对一下版本号,一致了再往下走。

提示:如果客户机是容器化精简镜像或云镜像,内核头文件可能根本装不上,这种情况优先考虑用 open-vm-tools 替代,而不是硬编译官方包。

2.3 安装介质从哪来

Workstation 直接在虚拟机菜单里选“安装 VMware Tools”,会自动挂载一个虚拟光驱;ESXi 则在客户机 CD/DVD 设备里挂载linux.iso或windows.iso。挂载后在客户机里确认设备出现:

# Linux 客户机确认光驱挂载点 lsblk # 典型输出里会出现 sr0,挂到 /mnt/cdrom sudo mkdir -p /mnt/cdrom sudo mount /dev/sr0 /mnt/cdrom ls /mnt/cdrom

lsblk用来确认光驱设备名,不同环境可能是sr0或cdrom;mount之后ls能看到VMwareTools-*.tar.gz就说明介质没问题。如果lsblk里根本没有光驱设备,先回宿主检查 CD/DVD 设备是否“已连接”,这一步漏了后面全是空转。

3. 安装实操:Linux 与 Windows 客户机的分步落地

介质和依赖都齐了,进入安装。Linux 和 Windows 两条路径差别很大,分开写清楚,每条命令后面说清它在干什么、参数怎么改。

3.1 Linux 客户机解压与运行安装脚本

先把压缩包解到临时目录,再进目录跑脚本:

# 解压到 /tmp,避免污染家目录 tar -xzf /mnt/cdrom/VMwareTools-*.tar.gz -C /tmp cd /tmp/vmware-tools-distrib # 运行安装脚本,-d 表示全部用默认值,适合首次批量部署 sudo ./vmware-install.pl -d

tar -xzf的-C /tmp指定解压目标,别解到/mnt/cdrom里,那是只读挂载。vmware-install.pl -d的-d是“全部接受默认答案”,首次装推荐用它先把流程跑通;如果要自定义安装路径或共享目录挂载点,去掉-d交互式回答,脚本会逐项问[yes]或路径。脚本执行过程中会调用vmware-config-tools.pl编译内核模块,看到Building the VMware... module字样说明在编译,这一步耗时最长,别中途 Ctrl+C。

装完确认服务状态:

# 查看 vmtoolsd 服务是否在跑 systemctl status vmtoolsd # 手动触发一次配置,确认模块加载 sudo vmware-config-tools.pl -d

systemctl status vmtoolsd显示active (running)才算服务层通了;vmware-config-tools.pl -d是配置脚本,重跑它可以在换内核后重新编译模块,-d同样表示默认值。两条都过,Linux 侧基本装完。

3.2 Windows 客户机静默安装与参数

Windows 客户机挂载windows.iso后,光驱里是setup.exe和setup64.exe。图形界面双击下一步即可,批量部署用静默参数:

REM 静默安装,/s /v 后接 msiexec 参数,/qn 表示无界面 setup.exe /s /v"/qn REBOOT=R ADDLOCAL=ALL"

/s是 setup 自身的静默开关,/v"/qn ..."把参数透传给内部 msiexec,/qn无界面,REBOOT=R表示装完不自动重启(避免批量部署时集体重启),ADDLOCAL=ALL装全部功能组件。如果只要基础驱动不要拖拽共享,可以把ADDLOCAL改成Core。装完在“服务”里能看到VMware Tools Service处于运行状态,设备管理器里显卡、网卡不再带黄色感叹号,就算落地。

3.3 安装后的基础配置项

装完不是结束,几个配置项要顺手调。Linux 侧时间同步和共享目录是高频需求:

# 开启时间同步(客户机跟随宿主) sudo vmware-toolbox-cmd timesync enable # 查看当前共享目录挂载情况 vmware-hgfsclient

timesync enable让客户机定期和宿主对时,快照回滚后时间漂移就靠它拉回来;vmware-hgfsclient列出宿主侧配置的共享文件夹名,能列出来说明vmhgfs模块工作正常。Windows 侧在 VMware Tools 托盘图标里勾选“时间同步”和“拖放/复制粘贴”即可,对应的是vmtoolsd服务的功能开关。

4. 避坑与排查:VMware Tools 12 装完起不来的五类现场

装的过程顺不代表装完能用,下面五条是我踩过或帮人救过的现场,按“现象 → 原因 → 解决”记。

4.1 现象:vmware-install.pl报找不到内核头文件

原因通常是linux-headers版本和uname -r不一致,或者根本没装。解决:先uname -r拿到精确版本,再装对应linux-headers-<版本>;RHEL 系确认kernel-devel和运行内核同版本,必要时yum install kernel-devel-$(uname -r)。装完重跑sudo vmware-config-tools.pl -d重新编译。

4.2 现象:服务vmtoolsd启动后立刻退出

多半是客户机内核升级过但模块没重编,旧模块和当前内核 ABI 不匹配。解决:重跑sudo vmware-config-tools.pl -d,它会针对当前内核重新编译;如果编译报错,回 2.2 补依赖。内核频繁升级的环境,建议把重编命令写进内核升级后的钩子,别等下次重启才发现。

4.3 现象:分辨率锁死在低分辨率,调不上去

原因通常是显卡驱动没加载,或者装的是 open-vm-tools 但没装open-vm-tools-desktop。解决:先lsmod | grep vmwgfx确认显卡模块在;不在就重装官方 Tools 并重启。如果是 open-vm-tools 路线,补装桌面组件:

sudo apt install -y open-vm-tools open-vm-tools-desktop

open-vm-tools-desktop才带分辨率自适应和拖拽,只装open-vm-tools只有基础服务。

4.4 现象:共享目录vmware-hgfsclient能列出但挂载点为空

原因多是vmhgfs-fuse没挂或权限不对。解决:手动挂一次确认:

sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other

-o allow_other让非 root 用户也能访问,不加的话普通用户看到的是空目录。要开机自动挂,写进/etc/fstab时用vmhgfs-fuse .host:/ /mnt/hgfs fuse allow_other 0 0。

4.5 现象:Windows 客户机装完提示“VMware Tools 版本过旧”

原因是宿主 ESXi 版本高于 Tools 大版本支持范围,或者装的是旧包。解决:回 2.1 的对照表核对宿主版本,ESXi 7.0+ 用 12.x 包;确认安装包来源是当前宿主挂载的 iso,而不是从别处拷来的旧包。版本对不上时,宁可退回匹配的大版本,也别硬装。

5. 装完怎么验证:三条命令确认 VMware Tools 12 真的跑通

装完别急着交付,用三条命令把服务、模块、功能三层都验一遍,比看安装脚本最后那行“successfully”靠谱得多。

第一层验服务:

systemctl is-active vmtoolsd # 期望输出 active

第二层验内核模块:

lsmod | grep -E 'vmw_balloon|vmw_vmci|vmxnet3|vmwgfx' # 期望看到至少 vmw_balloon 和 vmxnet3

vmw_balloon是内存气球模块,vmxnet3是网卡驱动,vmwgfx是显卡,这几个在就说明核心驱动加载了。第三层验功能,用vmware-toolbox-cmd查状态:

vmware-toolbox-cmd stat speed vmware-toolbox-cmd timesync status

stat speed能返回宿主与客户机的相对速度值,说明通信通道通了;timesync status返回Enabled说明时间同步生效。三层都过,再去看分辨率能不能自适应、复制粘贴能不能用,这些是用户态功能,服务通了基本就通。

Windows 侧对应的是在 PowerShell 里查服务:

Get-Service -Name 'VMTools' | Select-Object Status, StartType # 期望 Status 为 Running

Status为Running、StartType为Automatic才算合格。我一般还会顺手在客户机里跑一次vmware-toolbox-cmd -v看版本号,确认装上的确实是 12.x 而不是残留的旧版。

注意:验证时如果lsmod里模块在但功能不通,先看/var/log/vmware-tools-install.log(Linux)或 Windows 事件查看器里VMware Tools来源的日志,安装脚本的报错都落在那里,比猜快。

从那以后我每次装完 Tools 都强制走一遍“服务 → 模块 → 功能”三层验证,不再信安装脚本最后那行提示,因为脚本说成功但模块没加载的情况我遇到过不止一次。希望帮到你。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进