在 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?
-
无需手动安装:各大 Linux 发行版的官方仓库都收录了
open-vm-tools,一条命令即可安装,不需要挂载 ISO、解压、运行安装脚本。 -
内核升级不会失效:官方 VMware Tools 包含内核模块,每次升级内核后都需要重新编译。
open-vm-tools使用发行版统一维护的内核模块,随内核自动更新,不需要额外操作。 -
更好的系统集成:作为发行版的一部分,
open-vm-tools与 systemd、udev 等系统组件集成更好,启动更可靠。 -
VMware 官方推荐:VMware 自 2015 年起官方建议在现代 Linux 发行版中使用
open-vm-tools,官方 VMware Tools 主要是为无法使用open-vm-tools的旧系统提供的备选方案。 -
社区维护活跃:
open-vm-tools在 GitHub 开源,有活跃的社区,安全漏洞修复更及时。
安装前提条件
- VMware Workstation / Fusion / ESXi:任意版本均可
- Linux 虚拟机:Ubuntu、Debian、CentOS、Fedora 等主流发行版
- 网络连接:虚拟机需要能访问软件仓库
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 中设置共享文件夹
- 关闭虚拟机(或在运行中添加,但建议关机操作)
- 虚拟机 → 设置 → 选项 → 共享文件夹
- 选择"始终启用"
- 点击"添加",选择宿主机上要共享的目录
- 给共享目录起一个名字(如
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-tools 或 vmtoolsd:
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
安装后重启虚拟机,即可享受自动分辨率调整、双向剪贴板、文件拖拽等功能。如果遇到问题,优先检查服务是否在运行,以及是否安装了对应桌面包。