VMware Workstation/Fusion 中安装 Fedora 23/24 及其他 Linux 系统时使用 Open VM Tools 代替 VMware Tools 增强工具的方法

时间:2021-04-02 07:06:26

VMware Workstation/Fusion 分别是 Windows/Linux 和 macOS 下面对应的桌面虚拟化软件。过去,在 VMware 中安装了操作系统虚拟机后,需要在虚拟机中再安装 VMware Tools 增强工具用来实现宿主机和虚拟机之间的文件共享、虚拟机显示分辨率自适应调节、虚拟机显示能力增强及 3D 加速等功能。但随着 Linux 系统内核及周边环境的不断发展,目前 VMware 已经不再推荐在 Linux 虚拟机中安装 VMware 官方的增强工具了,转而推荐用户使用 Open VM Tools。Open VM Tools 是 VMware 将自己原有的虚拟机增强工具(VMware Tools)大部分开源后由社区来继续开发完善形成的 Linux 开源虚拟机环境增强工具包,不仅支持 VMware 虚拟化环境架构,也能支持 Parallels 虚拟化环境架构(类似 VMware 的另一款商业桌面虚拟化产品),以后也可能会支持诸如 KVM/Xen 等虚拟化架构。Open VM Tools 可以随 Linux 内核的升级而保持最新版本支持,彻底解决过去 VMware 升级过慢,跟不上 Linux 内核及周边相关软件升级节奏导致虚拟机增强效果消失的问题(有时需要用户自己对 VMware Tools 源代码打补丁重新编译安装,非常繁琐)。

这里以 macOS 环境下的 VMware Fusion 为例,安装 Fedora 24 Linux 后,默认情况下 Fedora 就已经安装好了 Open VM Tools 了,可以通过以下命令查看:

$ rpm -qa | grep open-vm

如果已安装了 Open VM Tools,会返回如下信息:

open-vm-tools-desktop-10.0.5-4.fc24.x86_64
open
-vm-tools-10.0.5-4.fc24.x86_64

如果发现系统中没有安装 Open VM Tools,可以用如下命令来安装:

# dnf install open-vm*

安装好 Open VM Tools 后,虚拟机的显示增强、3D 加速、分辨率自适应调节等都已具备了,但是虚拟机与宿主机之间的文件共享功能默认并没有开启,即使你在宿主机中配置了文件共享功能并启用。其实 Open VM Tools 是支持 VMware 自己的 hgfs 文件共享系统的,但需要手动在虚拟机中执行相关命令并做少量配置才行。这里我的思路是在开机自启动脚本 /etc/rc.d/rc.local 中加入共享文件挂载命令,从而实现开机后文件共享自动可用。使用如下命令编辑自启动脚本:

# vi /etc/rc.d/rc.local

在里面加入如下内容:

#!/bin/bash
vmhgfs
-fuse -o allow_other .host:/$(vmware-hgfsclient) /mnt/hgfs

然后确保 /etc/rc.d/rc.local 具备可执行权限:

# chmod a+x /etc/rc.d/rc.local

重启虚拟机系统后就会发现共享文件夹已经自动挂载到 /mnt/hgfs 目录了。这里由于用到了 Open VM Tools 提供的一个 vmware-hgfsclient 命令,所以可以自动识别发现你所设置的 VMware 共享文件夹名称,不需要自己在挂载命令中指定(当然,你要自己在命令中指定也可以)。挂载成功后,我们用 mount 命令查看一下当前所有挂载的文件系统和相关目录:

$ mount

会发现反馈结果中有这么一行:

vmhgfs-fuse on /mnt/hgfs type fuse.vmhgfs-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)

这说明,我们其实也可以用 mount 命令来挂载 VMware 的共享文件夹,只不过共享文件系统的名字要指定为 fuse.vmhgfs-fuse,这个在 Open VM Tools 的文档中并没有直接提及而已。