在 VMware 虚拟机中安装 open-vm-tools 完整指南

详解 VMware Tools 的作用、open-vm-tools 与官方 VMware Tools 的区别,以及在 Ubuntu 虚拟机中安装并生效的完整步骤和常见问题排查。

$2.5k 字/约 10 min👁— views

在 VMware 虚拟机中安装 open-vm-tools 完整指南

VMware Tools 是 VMware 虚拟机的增强工具包,安装后可以获得更好的显示分辨率、剪贴板共享、文件拖拽、时间同步等功能。本文介绍在 Linux 虚拟机中安装 open-vm-tools 的完整流程,以及常见问题的排查方法。


背景:VMware Tools 与 open-vm-tools

VMware Tools 有两个版本:

版本 来源 推荐场景
VMware Tools(官方) 随 VMware Workstation 附带的 ISO 旧版 VMware,需要手动安装
open-vm-tools 开源版本,各发行版官方仓库收录 现代 Linux 发行版,推荐使用

为什么推荐 open-vm-tools 而不是官方 VMware Tools?

  1. 无需手动安装:各大 Linux 发行版的官方仓库都收录了 open-vm-tools,一条命令即可安装,不需要挂载 ISO、解压、运行安装脚本。

  2. 内核升级不会失效:官方 VMware Tools 包含内核模块,每次升级内核后都需要重新编译。open-vm-tools 使用发行版统一维护的内核模块,随内核自动更新,不需要额外操作。

  3. 更好的系统集成:作为发行版的一部分,open-vm-tools 与 systemd、udev 等系统组件集成更好,启动更可靠。

  4. VMware 官方推荐:VMware 自 2015 年起官方建议在现代 Linux 发行版中使用 open-vm-tools,官方 VMware Tools 主要是为无法使用 open-vm-tools 的旧系统提供的备选方案。

  5. 社区维护活跃open-vm-tools 在 GitHub 开源,有活跃的社区,安全漏洞修复更及时。


安装前提条件

  1. VMware Workstation / Fusion / ESXi:任意版本均可
  2. Linux 虚拟机:Ubuntu、Debian、CentOS、Fedora 等主流发行版
  3. 网络连接:虚拟机需要能访问软件仓库

Ubuntu / Debian 系安装

基础安装

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

带图形界面的安装(Desktop 版)

如果虚拟机有桌面环境(GNOME、KDE 等),需要额外安装桌面集成包:

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

这个包提供:

  • 窗口自动调整大小
  • 拖拽文件支持
  • 剪贴板双向同步

验证安装

# 检查服务状态
systemctl status open-vm-tools

# 或者用旧命令
service open-vm-tools status

# 检查工具版本
vmware-toolsd --version

正常输出类似:

● open-vm-tools.service - Service for virtual machines hosted on VMware
   Loaded: loaded (/lib/systemd/system/open-vm-tools.service; enabled)
   Active: active (running) since ...

CentOS / RHEL / Fedora 系安装

CentOS 7 / RHEL 7

sudo yum install open-vm-tools -y

# 带桌面
sudo yum install open-vm-tools-desktop -y

# 启动并设置开机自启
sudo systemctl enable open-vm-tools
sudo systemctl start open-vm-tools

CentOS 8 / RHEL 8 / Fedora

sudo dnf install open-vm-tools -y

# 带桌面
sudo dnf install open-vm-tools-desktop -y

sudo systemctl enable --now open-vm-tools

Arch Linux / Manjaro 安装

# 安装基础包
sudo pacman -S open-vm-tools

# 带桌面功能
sudo pacman -S open-vm-tools gtkmm3

# 启用服务
sudo systemctl enable --now vmtoolsd
sudo systemctl enable --now vmware-vmblock-fuse

Arch 还需要加载内核模块:

# 立即加载
sudo modprobe -a vmw_balloon vmw_pvscsi vmxnet3 vmw_vmci vmwgfx

# 设置开机加载(编辑 /etc/modules-load.d/vmware.conf)
cat <<EOF | sudo tee /etc/modules-load.d/vmware.conf
vmw_balloon
vmw_pvscsi
vmxnet3
vmw_vmci
vmwgfx
EOF

手动安装方式(无网络环境)

如果虚拟机没有网络连接,可以通过 VMware 提供的 ISO 手动安装。

步骤一:挂载 VMware Tools ISO

在 VMware Workstation 菜单中: 虚拟机 → 安装 VMware Tools

这会将 VMware Tools 的 ISO 挂载到虚拟机的光驱。

步骤二:挂载并解压

# 创建挂载点
sudo mkdir /mnt/cdrom

# 挂载光驱(通常是 /dev/cdrom 或 /dev/sr0)
sudo mount /dev/cdrom /mnt/cdrom

# 复制安装包
cp /mnt/cdrom/VMwareTools-*.tar.gz /tmp/
cd /tmp

# 解压
tar -xzf VMwareTools-*.tar.gz

步骤三:运行安装脚本

cd /tmp/vmware-tools-distrib
sudo ./vmware-install.pl

安装脚本会提示一系列问题,通常一路回车使用默认值即可。

步骤四:处理内核头文件依赖

如果提示找不到内核头文件:

# Ubuntu/Debian
sudo apt install linux-headers-$(uname -r) build-essential -y

# CentOS/RHEL
sudo yum install kernel-devel-$(uname -r) gcc make -y

然后重新运行安装脚本。


安装后验证

基础验证

# 检查 open-vm-tools 是否在运行
systemctl is-active open-vm-tools

# 查看详细状态
systemctl status open-vm-tools -l

# 检查进程
ps aux | grep vmtoolsd

检查内核模块

# vmhgfs:共享文件夹支持
lsmod | grep vmhgfs

# vmmemctl:内存气球驱动(VMware 动态内存管理)
lsmod | grep vmmemctl

# vmw_balloon:较新内核的内存气球驱动
lsmod | grep vmw_balloon

# vmxnet3:VMware 高性能网络驱动
lsmod | grep vmxnet3

验证版本信息

# 查看 open-vm-tools 版本
vmware-toolsd --version

# 或通过包管理器查看
dpkg -l open-vm-tools    # Debian/Ubuntu
rpm -qi open-vm-tools    # CentOS/RHEL

共享文件夹配置(vmhgfs-fuse)

共享文件夹是 VMware 中最实用的功能之一,可以在宿主机和虚拟机之间直接共享目录。

在 VMware 中设置共享文件夹

  1. 关闭虚拟机(或在运行中添加,但建议关机操作)
  2. 虚拟机 → 设置 → 选项 → 共享文件夹
  3. 选择"始终启用"
  4. 点击"添加",选择宿主机上要共享的目录
  5. 给共享目录起一个名字(如 shared

在虚拟机中挂载共享文件夹

# 查看可用的共享文件夹列表
vmware-hgfsclient

# 创建挂载点
sudo mkdir -p /mnt/hgfs

# 手动挂载(一次性)
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=$(id -u) -o gid=$(id -g)

# 挂载特定共享目录
sudo vmhgfs-fuse .host:/shared /mnt/shared -o allow_other

设置开机自动挂载

编辑 /etc/fstab,添加:

.host:/   /mnt/hgfs   fuse.vmhgfs-fuse   defaults,allow_other,uid=1000,gid=1000   0   0

uid=1000,gid=1000 替换为你的实际用户 ID(用 id 命令查看)。

验证 fstab 配置:

# 测试挂载(不重启)
sudo mount -a

# 检查是否挂载成功
ls /mnt/hgfs/

剪贴板共享与分辨率自动调整

剪贴板双向同步

剪贴板共享需要 open-vm-tools-desktop 包和 vmware-user-suid-wrapper 进程。

# 检查 vmware-user 是否在运行
ps aux | grep vmware-user

# 如果没有运行,手动启动
/usr/bin/vmware-user-suid-wrapper &

# 或者
vmware-user &

对于 GNOME 桌面,可能还需要:

# 重启 open-vm-tools 桌面服务
systemctl --user restart vmware-user

自动调整分辨率

当你调整 VMware 窗口大小时,虚拟机的分辨率应该自动跟随。如果没有自动调整:

# 检查 vmware-resolutionSet 工具
which vmware-resolutionSet

# 手动触发分辨率更新(通常不需要)
vmware-resolutionSet 1920 1080

确认 vmware-vmblock-fuse 服务也在运行(负责文件拖拽功能):

systemctl status vmware-vmblock-fuse

常见问题排查

问题 1:安装后分辨率仍然很低(如 800x600)

原因open-vm-tools-desktop 没有安装,或者 vmware-user 进程没有运行。

# 安装桌面包
sudo apt install open-vm-tools-desktop -y

# 重启虚拟机
sudo reboot

如果重启后仍然不对:

# 检查 Xrandr 输出
xrandr

# 强制添加分辨率
xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
xrandr --addmode Virtual1 "1920x1080_60.00"
xrandr --output Virtual1 --mode "1920x1080_60.00"

问题 2:拖拽文件和剪贴板不工作

这个问题通常在升级 VMware Workstation 后出现。

# 重启 open-vm-tools 服务
sudo systemctl restart open-vm-tools

# 如果是桌面版,还需要
pkill vmware-user
vmware-user &

问题 3:共享目录不显示(/mnt/hgfs 为空)

# 检查 vmhgfs-fuse 是否可用
which vmhgfs-fuse

# 检查共享文件夹是否在 VMware 中启用
vmware-hgfsclient

# 手动重新挂载
sudo umount /mnt/hgfs
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other

如果 vmhgfs-fuse 命令不存在:

# Ubuntu/Debian
sudo apt install open-vm-tools fuse -y

# 确保 fuse 内核模块已加载
sudo modprobe fuse

问题 4:黑屏或启动后无图形界面

这通常是显卡驱动冲突。在 GRUB 启动参数中添加:

nomodeset

然后安装 VMware SVGA 驱动:

sudo apt install xserver-xorg-video-vmware -y

问题 5:Ubuntu 22.04+ 服务名变了

在较新的 Ubuntu 版本中,服务名可能是 open-vm-toolsvmtoolsd

systemctl status vmtoolsd
# 或
systemctl status open-vm-tools

VMware Workstation vs Fusion vs ESXi 的差异

VMware Workstation(Windows/Linux 宿主机)

  • 个人桌面虚拟化产品
  • open-vm-tools 安装后自动启用共享文件夹、剪贴板、拖拽等功能
  • 支持 3D 加速(需要安装 open-vm-tools-desktop

VMware Fusion(macOS 宿主机)

  • Mac 上的 VMware 产品,功能与 Workstation 相近
  • 同样推荐使用 open-vm-tools
  • 共享文件夹挂载方式相同(vmhgfs-fuse
  • 有些版本的 Fusion 上剪贴板共享需要额外配置

VMware ESXi(企业级虚拟化)

在 ESXi 上,open-vm-tools 不仅提供桌面功能,还承担重要的企业级职责:

# ESXi 环境下的额外功能:

# 1. 向 vCenter 汇报 VM 状态(IP、操作系统信息)
vmware-toolsd --cmd "info-get guestinfo.ip"

# 2. 文件系统 quiescing(执行快照时暂停写入,保证一致性)
#    这对数据库类 VM 尤其重要

# 3. 优雅关机/重启(vCenter 发出关机命令时,VM 能正确响应)

# 4. 内存气球(vmmemctl),帮助 ESXi 回收 VM 内存
lsmod | grep vmmemctl

ESXi 生产环境强烈建议安装 open-vm-tools,否则快照可能不一致,vCenter 也无法获取 VM 的 IP 地址等信息。


不同场景推荐方案

场景 推荐方案
Ubuntu 20.04+ Desktop apt install open-vm-tools-desktop
Ubuntu Server apt install open-vm-tools
CentOS 7 yum install open-vm-tools
CentOS 8+ / Fedora dnf install open-vm-tools
Arch Linux pacman -S open-vm-tools
无网络环境 手动挂载 ISO 安装
ESXi 生产环境 open-vm-tools(各发行版仓库版本)

卸载 VMware Tools

如果需要从手动安装的 VMware Tools 切换到 open-vm-tools:

# 卸载手动安装的版本
sudo vmware-uninstall-tools.pl

# 然后安装 open-vm-tools
sudo apt install open-vm-tools open-vm-tools-desktop -y

总结

open-vm-tools 是现代 Linux 虚拟机的首选方案,一条命令即可安装:

# 服务器
sudo apt install open-vm-tools -y

# 桌面
sudo apt install open-vm-tools open-vm-tools-desktop -y

安装后重启虚拟机,即可享受自动分辨率调整、双向剪贴板、文件拖拽等功能。如果遇到问题,优先检查服务是否在运行,以及是否安装了对应桌面包。