VMware Tools手动安装全攻略:从tar解压到vmware-install.pl排坑 📅 发布时间:2026/9/8 11:24:25 👁 浏览次数: 简介VMware Tools 10.0.6 的 Linux 离线安装包面向虚拟机运维、技术支持与虚拟化初学者专门应对在线安装失败、网络受限或需在隔离环境部署增强组件等场景。安装后可优化磁盘与网络 I/O、提供图形加速、自动同步虚拟机时间并支持宿主机与虚拟机之间的拖放复制和分辨率自适应。资源采用 gz 压缩格式包体 68.99MB共 3197 个文件其中 2135 个 o 目标文件、292 个 properties 配置项、211 个 so 动态库占主体另有 symvers、vmsg、sh 脚本及 vmtoolsd、vmware-checkvm、hal-probe-vmmouse 等可执行工具文件分类清晰便于按需选用。目前已有 571 人学习下载。相比在线安装这份离线包可直接提供完整编译产物与配套驱动配置帮助用户在隔离网络环境中快速安装或重新封装通过分析其中的库文件、配置项和可执行工具也能定位兼容性问题并理解 VMware Tools 的驱动组成是一份实用的排错与学习备件。 VMwareTools-10.0.6-3595377.tar这个文件名估计不少老运维都不陌生。凡是手动给虚拟机装过VMware Tools的人几乎都跟这个tar包打过交道。最近又有朋友在Ubuntu上折腾这个包卡在解压和安装脚本上问了我一堆问题。干脆把整个流程和踩过的坑系统整理成一篇从tar解压命令的细节讲到vmware-install.pl的完整执行最后附上几个我排查过很多次的高频故障。这篇文章适合两类人一类是刚接触VMware虚拟化的新手另一类是遇到安装失败问题但没多少时间系统性查资料的运维。先把话放前面手动装VMware Tools这个操作在云原生和模板化交付流行的今天确实不像以前那么频繁了但在隔离内网、老旧虚拟化环境、以及需要调优特定虚拟硬件功能时它依然是绕不开的基本功。整个安装链路中最容易出问题的不是安装脚本本身而是前面解压那一关——tar命令用不对后面全是白忙。1. 认清手上的安装包VMware Tools到底是谁版本号代表什么1.1 装上VMware Tools之前和之后的区别我第一次装Linux虚拟机时嫌VMware Tools安装麻烦直接跳过。用起来才发现很多不方便终端窗口不管怎么调分辨率都固定不动鼠标点到虚拟机里再切回宿主机光标经常会卡在边缘扒不出来想在虚拟机里复制一段配置命令剪贴板也不通。这几个问题叠加起来虚拟机的使用体验就很差尤其在调试环境里效率会被拖低不少。VMware Tools在虚拟机里扮演的角色简单说就是“驱动包辅助服务”。它包含了虚拟显卡驱动能根据窗口大小自动调整分辨率装了鼠标驱动后虚拟机内外光标切换就没有边界感它还提供VMware Tools服务vmtoolsd负责宿主机与虚拟机之间的剪贴板共享、文件拖拽、时间同步、内存回收等功能。这些虽然不是系统运行的必要条件但在日常使用中每一样都能明显感受到。1.2 解读版本号10.0.6-359537710.0.6是VMware Tools的功能版本号3595377是build号表示具体编译构建。这个版本对应ESXi 6.x时代我最早是在ESXi 6.0/6.5的虚拟机上见到它。如果你手里的安装包文件名是VMwareTools-10.0.6-3595377.tar或.tar.gz大概率是从VMware的linux.iso里拷出来的或者从官方软件站下载的。不同build号的包之间功能差距不大核心安装流程完全一样唯一要留意的是它支持的Linux发行版版本有上限——太新的内核它可能不认识后面编译内核模块时会体现出来。网上会搜到很多“这个版本支持到什么内核”的帖子实际经验是Ubuntu 16/18和CentOS 7这代系统非常顺滑再新的发行版就建议优先考虑open-vm-tools了。1.3 已经有open-vm-tools为什么还费劲装官方tar包现在Ubuntu用sudo apt install open-vm-tools一条命令就能装好不少人会问何必还要手动执行vmware-install.pl我的看法是分情况。如果你用的是现代发行版且宿主机的ESXi/Workstation版本也比较新open-vm-tools完全够用它就是把VMware官方tools的一部分开源了的内核模块加用户态程序。但如果是老版本宿主机或者需要在完全隔离的内网里部署、手头只有这个tar包的时候就只能手动装。另外一些对3D加速、特定剪贴板流程要求较高的场景官方闭源tools的兼容性更好。我自己在一台ESXi 6.0的老实验机上装过open-vm-tools分辨率调节始终不跟手换成官方tar包后反而正常了。所以别在这上面太纠结关键是摸清你环境的情况再选。2. 解压tar包的正确姿势tar命令不只是“解压”两个字2.1 先分清tar包和tar.gz包不是一回事很多人看到.tar和.tar.gz就直接tar -zxvf结果某些纯tar包会解压失败。先说原理tar本身是磁带归档工具把多个文件“粘”成一个文件不压缩.tar.gz是在tar基础上用gzip压缩体积更小。判断一个文件到底是不是gzip压缩先跑一下file VMwareTools-10.0.6-3595377.tar输出里会明确写gzip compressed data还是POSIX tar archive。常见的解压参数整理如下文件格式正确命令说明.tartar -xvf 文件.tarx为解压v显示过程f指定文件名.tar.gz / .tgztar -zxvf 文件.tar.gz多一个z表示先解gzip.tar.bz2tar -jxvf 文件.tar.bz2j对应bzip2.tar.xztar -Jxvf 文件.tar.xzJ对应xz其中z参数只对gzip压缩有效不要随手加上去。你手上的VMware Tools包官方ISO里通常打包成.tar.gz解压用tar -zxvf如果确认是纯.tar格式就用tar -xvf。这个细节直接决定第一步能不能顺利解开也是“tar: This does not look like a tar archive”报错的最大根源。2.2 压缩、指定目录、查看列表日常最常用的tar四板斧光会解压还不够tar命令在日常运维里用得更频繁的是打包压缩。比如把服务器上整个html目录备份走一条命令搞定tar -zcvf html_backup.tar.gz /var/www/html这里c是创建新归档包z加gzip压缩v显示过程f指定输出文件名。tar -zcvf和tar -czvf是等价写法c必须存在z可以省略不加z生成的是.tar加上z才是.tar.gz。更稳妥的写法是tar -czvf先明确要压缩再执行。实际业务里比压缩更常用的是排除大文件。备份一个目录但不想带上日志和缓存tar -czvf web_full.tar.gz /var/www --exclude*.log --excludecache这个功能我每次打包前都会检查一遍不然日志文件动辄几个G压缩半天还容易把磁盘占满。解压时也有两个高频技巧一个是指定解压到某个目录用-C参数推荐先建一个干净的临时目录再接包另一个是只解压包里的某个文件先tar -tvf 文件名.tar.gz查看包含哪些文件再精确解压其中一个。接到别人发来的压缩包但不确定内容时先用tar -tvf看列表比直接解压稳妥得多尤其对那种几百兆的大包。2.3 关于乱码、xargs和tar联手处理的几个高频问题网上关于tar的提问很多我挑两个和安装包场景关系最密切的说一下。一是“tar文件解压后乱码”。这种情况大多发生在Linux上解压由Windows中文环境生成的压缩包包内文件名是GBK编码。tar对文件名编码的处理比较原始它是按字节记录、不做转换的。解决办法是解压后手动改名或者用convmv这类工具批量转换。作为从业者我更推荐从源头解决文件在Windows里压缩时文件名尽量用英文或拼音避免跨平台踩编码的坑。这损失不了多少输入时间却能省下大量排查时间。二是“tar|xargs”组合。这个组合能做的事很多比如想一次性解压当前目录下所有tar包可以ls *.tar | xargs -I {} tar -xvf {}。再比如解压大型tar包后想看里面有哪些目录结构可以tar -tvf xxx.tar | awk {print $6}提取路径列表再批量处理。这个思路在处理几十个tar批量部署的场景里非常实用。顺带提一句网上还有人问“registry docker镜像 tar包下载”和“kkfileview的linux tar包安装方式”其实本质都是同一个套路拿到tar包 → 解压到目录 → 看自带的说明文档或安装脚本 → 执行安装。VMware Tools的处理流程就是典型例子学会套路其他类似包也能举一反三。3. VMware Tools完整安装实操从挂载ISO到服务起来3.1 挂载Tools ISO并拷出安装包整个安装流程的第一步是把VMware Tools的ISO镜像挂载到虚拟机的光驱。在VMware Workstation里虚拟机关机状态下点击“编辑虚拟机设置”在CD/DVD中指定ISO映像文件然后在客户机操作系统里打开“虚拟机”菜单选择“安装VMware Tools”。这一步会自动连接ISO里面包含Windows下的exe以及Linux下的tar.gz安装包。在Linux虚拟机里先创建挂载点并挂载光驱mkdir -p /mnt/cdrom mount /dev/cdrom /mnt/cdrom # 如果上面命令提示找不到设备试试 /dev/sr0 mount /dev/sr0 /mnt/cdrom ls /mnt/cdrom能看到VMwareTools-10.0.6-3595377.tar.gz就说明挂载成功。我习惯把它拷到/tmp再解压因为光驱介质只读直接在光盘里解压容易出权限问题而且后面安装脚本可能要反复改配置在可写目录里操作更省心。cp /mnt/cdrom/VMwareTools-10.0.6-3595377.tar.gz /tmp/ cd /tmp tar -zxvf VMwareTools-10.0.6-3595377.tar.gz解压完成后会看到一整套vmware-tools-distrib目录整个安装包的“果实”都在里面。3.2 运行vmware-install.pl两种姿势任选安装脚本是Perl写的位置在vmware-tools-distrib/vmware-install.pl。执行前先确认系统里有perl环境绝大多数Linux发行版默认带如果没有就先装上# Ubuntu/Debian sudo apt-get install perl # CentOS/RHEL sudo yum install perl接着进入解压出来的目录推荐直接用默认参数安装cd /tmp/vmware-tools-distrib sudo ./vmware-install.pl -d-d参数表示用默认选项安装全程自动确认不需要人盯着屏幕。第一次跑没把握的读者用这个方式就对了。如果你想像老运维一样手动一步步确认就直接执行sudo ./vmware-install.pl过程中会有大量询问例如是否安装某些模块、路径是否保持默认。我的经验是除了极个别需要内核头文件路径的问题外其余一路回车基本没问题。碰到询问路径的默认值通常是正确的直接回车就好实在不确定时看看提示里给出的是什么版本的内核路径再和uname -r对照一下。安装过程会编译并加载几个内核模块vmxnet、vmblock、vmmemctl等同时安装vmtoolsd用户态服务。整段流程快则几十秒慢则几分钟取决于虚拟机的CPU和内存配置以及是否缺编译工具链。直到命令行返回提示信息才算装完。3.3 安装后的验证、时间同步和一个容易漏掉的操作装完不等于结束。我建议至少做三件事第一检查服务和内核模块是否正常sudo /etc/init.d/vmware-tools status lsmod | grep vm能看到vmxnet3、vmw_balloon之类的模块加载说明成功。第二开启时间同步。VMware Tools安装后默认会启用宿主机与虚拟机的时间同步但有时也被策略改掉。执行sudo vmware-toolbox-cmd timesync enable sudo service vmtoolsd restart这是我在生产环境里踩过的一个坑虚拟机会越跑越慢实际上就是时间漂移了开了同步后就好很多。第三重启虚拟机确认自动启动正常sudo reboot重启后鼠标拖拽、剪贴板共享、分辨率自适应如果都正常安装流程才算彻底完成。如果分辨率还是不能自动调整多半是显示驱动没生效可以等系统完全进桌面后再重启一次X会话或者在虚拟机菜单里重新点一次“适配窗口”。4. 常见问题与排查技巧实录4.1 解压就报错tar: This does not look like a tar archive这是最典型的第一个门槛。原因主要有两个一是文件名后缀和实际格式不符比如文件其实是个zip或者下载时被改了名字二是文件没下载完整尾部缺失导致tar识别失败。排查方法就两步file VMwareTools-10.0.6-3595377.tar tar -tvf VMwareTools-10.0.6-3595377.tarfile会告诉你真实格式如果显示gzip compressed data说明要用-zxvf如果显示POSIX tar archive用-xvf就行。tar -tvf能正常列出内容就说明解压前奏没问题。如果file显示的是zip或data文件先回去重新下载别在解压上浪费时间。4.2 安装脚本报缺少perl、gcc或makevmware-install.pl是Perl脚本所以必须先有perl编译内核模块又需要gcc和make。对Ubuntu/Debian系统一次性把编译环境装齐sudo apt-get update sudo apt-get install -y perl gcc make build-essentialCentOS上用sudo yum install -y perl gcc make kernel-devel这里要特别提醒CentOS/RHEL还需要安装与当前内核版本匹配的kernel-devel否则编译模块时会报找不到内核头文件。安装前先uname -r记下内核版本再用rpm -qa | grep kernel-devel确认已装的kernel-devel版本跟它一致。版本对不上编译必挂。4.3 编译时报找不到内核头文件或模块加载失败这个报错在较新的内核上尤其常见因为VMware Tools 10.0.6的代码比较老对新内核的兼容性有限。解决办法是明确告诉脚本内核头文件位置sudo apt-get install linux-headers-$(uname -r)如果内核头文件已装但脚本还找不到通常是路径问题。手动指定一下比如Ubuntu的路径一般是/usr/src/linux-headers-$(uname -r)CentOS则是/usr/src/kernels/$(uname -r)。在安装脚本询问“Where is the kernel source?”时把对应路径填进去即可。如果后续模块还是加载失败我通常直接查日志sudo grep vmware /var/log/vmware-tools*.log /var/log/messages 2/dev/null重点看有没有Unknown symbol或version magic字样这两种基本就是内核版本不匹配。这种情况下与其死磕老版本tools不如换成open-vm-tools或者去官方下载更新的版本反而省时间。踩过几次坑之后我的体会是工具版本和内核年代跨度太大时执念不是美德换方案才是。4.4 安装完成但服务没起来剪贴板和拖拽依然无效如果vmware-install.pl提示成功但重启后剪贴板共享还是不能用先不要怀疑安装失败按下面顺序排查确认服务在跑ps -ef | grep vmtoolsd没跑就手动启动sudo /etc/init.d/vmware-tools start。确认模块已加载lsmod | grep vm如果没有sudo modprobe vmxnet3、sudo modprobe vmw_balloon手动加载一次试试。如果服务和模块都在但剪贴板还是不通检查宿主机的VMware Workstation设置编辑虚拟机设置→选项→客户机隔离确保“启用复制粘贴”的勾是打上的。这个问题我遇到过不止一次很多人查了半天Linux配置最后发现是宿主机设置的问题。6.x版本的tools还有个常见优化项就是VMware Tools服务页面里的共享剪贴板勾选项。如果你的VMware Tools版本太老菜单里可能没有这个选项那就不用纠结直接用上面的模块和服务状态判断更可靠。4.5 安装失败后想重装先清理干净重新安装前如果不清理旧文件容易保留旧配置导致新版本安装异常。我一般这样清理sudo rm -rf /etc/vmware-tools sudo rm -rf /usr/lib/vmware-tools sudo rm -rf /usr/share/doc/vmware-tools sudo rm -rf /var/log/vmware-tools*.log清理完回到第3章的流程重新来一遍。很多人装了两三次都没成功其实是被上次残留的配置干扰了。这个操作在整个tar包安装流程里属于收尾保底项新环境基本用不到但只要是在同台上反复折腾过旧版本的机器先清理再装能省掉很多玄学问题。本文还有配套的精品资源点击获取