一、前言
在使用 VMware 虚拟机搭建 Linux(以 Ubuntu 为例)环境时,常常需要实现主机与虚拟机之间的文件共享,HGFS(VMware Host-Guest File System)就是一种常用的文件共享方式。通过它,我们可以方便地在 Windows 主机(假设主机系统为 Windows ,也适用于其他支持 VMware 环境的系统)和 Linux 虚拟机之间传递文件,接下来一步步带大家掌握 HGFS 共享的配置与使用。
二、前期准备:确认共享设置及基础检查
(一)VMware 软件中设置共享文件夹
在 VMware 虚拟机软件里,找到对应 Ubuntu 虚拟机的设置选项,进入 “选项” 标签页,选择 “共享文件夹”,启用共享文件夹功能,并添加你想要共享的主机文件夹。这一步是让主机和虚拟机 “约定好” 要共享哪些内容,后续在 Linux 里配置就是让系统能访问到这些约定的共享资源 。
(二)检查虚拟机工具基础状态(vmware-hgfsclient 命令)
在 Ubuntu 虚拟机中,打开终端,以 root 用户身份(或用 sudo 提升权限)执行以下命令:
vmware-hgfsclient
解释:这个命令的作用是查看 VMware 识别到的共享文件夹名称。如果能正常列出共享的文件夹名称(比如示例中可能出现的 “Shared”“PC Tools” 等,实际根据你设置的来),说明 VMware 层面的共享配置基础是好的,后续可以继续进行软件安装和挂载操作;如果没有正确显示,要先检查 VMware 里共享文件夹的设置是否正确生效。
三、安装必要软件包
(一)尝试安装 open-vm-dkms
在终端执行:
apt-get install open-vm-dkms
解释:apt-get
是 Ubuntu 等基于 Debian 系统的包管理工具,install
子命令用于安装软件包,open-vm-dkms
这个包是用于支持 VMware 相关功能的内核模块等,能帮助实现 HGFS 等特性。
常见易错点:如果执行后提示找不到该软件包,说明系统软件源里可能没有这个包的适配,或者需要换其他相关包来安装。
(二)备选安装 open-vm-tools-dkms(若上一步失败时用)
当上面安装 open-vm-dkms
失败,提示找不到软件包时,执行:
apt-get install open-vm-tools-dkms
解释:open-vm-tools-dkms
也是用于支持 VMware 工具功能的软件包,和 open-vm-dkms
作用类似,只是包的组成和适配情况有差异,很多时候安装这个也能满足 HGFS 共享所需的基础软件环境 。
四、挂载共享文件夹
根据前面安装的软件包不同,挂载操作有细微区别,下面分别说明。
(一)若安装的是 open-vm-dkms
步骤 1:创建挂载目录
执行:
mkdir /mnt/hgfs
解释:mkdir
是创建目录的命令,这里在 /mnt
目录下创建 hgfs
目录,作为后续挂载共享文件夹的 “挂载点”,也就是把共享的内容 “连接” 到这个目录下,之后访问这个目录就相当于访问共享文件夹内容 。
步骤 2:进行挂载
执行:
mount -t vmhgfs .host:/ /mnt/hgfs
解释:mount
是挂载命令,-t
指定文件系统类型,这里 vmhgfs
就是 HGFS 对应的文件系统类型;.host:/
表示主机端的共享资源位置(这是 VMware 约定的表示方式 ),把它挂载到我们刚创建的 /mnt/hgfs
目录,这样就可以通过访问 /mnt/hgfs
来操作共享文件了。
(二)若安装的是 open-vm-tools-dkms
步骤 1:同样先创建挂载目录
执行:
mkdir /mnt/hgfs
解释:和前面一样,先建立挂载的目标目录,作用也是作为访问共享内容的入口。
步骤 2:执行特定挂载命令
执行:
vmhgfs-fuse .host:/ /mnt/hgfs
解释:vmhgfs-fuse
是配合 open-vm-tools-dkms
实现 HGFS 挂载的工具命令,同样 .host:/
指向主机共享资源,挂载到 /mnt/hgfs
目录,完成后就能在该目录下看到共享的文件和文件夹了。
五、设置开机自动挂载(让挂载永久生效)
前面用 mount
命令挂载的话,一旦虚拟机重启,挂载就会失效,所以需要配置让系统开机自动挂载。
(一)编辑 /etc/fstab 文件
执行:
vim /etc/fstab
(如果没安装 vim
,也可以用 nano
等编辑器,比如 nano /etc/fstab
,nano
相对更简单,适合初学者,按提示操作即可保存退出 )
解释:/etc/fstab
文件是系统用于配置自动挂载的配置文件,系统开机时会读取这里的配置来自动挂载相应的文件系统。
(二)添加挂载配置行
根据安装的软件包不同,添加对应的内容:
- 如果是
open-vm-dkms
,添加:
.host:/ /mnt/hgfs vmhgfs defaults 0 0
- 如果是
open-vm-tools-dkms
,添加:
.host:/ /mnt/hgfs fuse.vmhgfs-fuse defaults 0 0
解释:这几列的含义分别是:要挂载的设备(这里 .host:/
代表主机共享资源 )、挂载点(/mnt/hgfs
)、文件系统类型(对应 vmhgfs
或 fuse.vmhgfs-fuse
)、挂载选项(defaults
表示使用默认选项,比如可读写等 )、dump 选项(一般设 0 ,不备份 )、fsck 检查顺序(设 0 ,不优先检查 )。添加后保存文件,下次开机就会自动挂载了。
六、常见问题及解决(拓展知识)
(一)挂载时提示 “目录非空”
如果执行挂载命令时,提示类似 “mount: /mnt/hgfs: 目录非空” 的错误,这是因为 mount
命令默认要求挂载点目录是空的。解决方法是在挂载命令里加上 -o nonempty
参数,比如:
- 对于
open-vm-dkms
对应的挂载命令:
mount -t vmhgfs -o nonempty .host:/ /mnt/hgfs
- 对于
open-vm-tools-dkms
对应的挂载命令:
vmhgfs-fuse -o nonempty .host:/ /mnt/hgfs
解释:-o
选项用于指定挂载的额外参数,nonempty
就是告诉系统即使挂载点目录非空,也继续执行挂载操作 。
(二)软件包安装依赖问题
在安装 open-vm-dkms
或 open-vm-tools-dkms
时,可能会遇到依赖缺失的情况,系统会提示需要安装哪些依赖包。一般可以按照提示,用 apt-get install
加上对应的依赖包名称来安装,比如提示需要 xxx
依赖,就执行 apt-get install xxx
,然后再重新安装原来的软件包。这是因为 Linux 软件包之间相互依赖,需要把相关依赖都装好才能正常安装目标软件包 。
(三)VMware 工具版本适配问题
有时候可能因为 VMware 软件版本和 Linux 系统版本(尤其是内核版本)不匹配,导致安装的 open-vm-*
系列软件包不能正常工作。这种情况可以尝试更新 VMware 软件到最新版本,或者查看官方文档,了解对应的软件包适配情况,也可以尝试升级 Linux 系统的内核(不过升级内核要谨慎,可能影响其他功能 ),或者更换其他版本的 open-vm-tools
相关软件包(比如有的系统用 open-vm-tools
基础包配合其他组件也能实现功能 )。
七、总结
通过以上步骤,从前期在 VMware 里设置共享文件夹,到在 Linux 中检查基础状态、安装必要软件包、进行挂载操作,再到配置开机自动挂载以及解决常见问题,就能完整实现 Linux(Ubuntu)与主机之间的 HGFS 文件共享啦。对于初学者来说,按照步骤一步步操作,遇到问题多结合错误提示和文中的常见问题解决方法排查,就能逐步掌握 HGFS 共享的配置与使用,后续也可以基于这种文件共享方式,更方便地在虚拟机和主机之间传输文件、进行开发测试等工作啦,大家快去动手试试吧!