VMware配置共享文件夹
环境
Windows 10专业版22H2、VMware® Workstation 专业版 26H1、CentOS 7 64 位
Windows 共享文件夹名称:Share
CentOS 普通用户名:lr
问题
已经在 VMware 中启用了共享文件夹,并且执行下面的命令可以识别共享名称:
vmware-hgfsclient
输出:
Share
但是执行下面的命令时,/mnt/hgfs 目录中没有任何内容:
ls /mnt/hgfs
原因
vmware-hgfsclient 只是查询 VMware 宿主机提供了哪些共享文件夹,并不会自动将共享文件夹挂载到 Linux 文件系统中。
此时 CentOS 已经识别到了名为 Share 的共享文件夹,但是还没有建立下面的挂载关系:
Windows 共享文件夹
↓
VMware HGFS
↓
CentOS:/mnt/hgfs/Share
因此,需要使用 vmhgfs-fuse 将 VMware 共享文件系统挂载到 /mnt/hgfs。
检查 VMware Tools
VMware 共享文件夹功能依赖 open-vm-tools。
本文使用 lr 作为示例用户名。实际操作时,需要将命令中的 lr 替换为自己的 CentOS 普通用户名。
执行下面的命令检查相关软件包是否已经安装:
点击查看代码
rpm -q open-vm-tools open-vm-tools-desktop
本机输出:
open-vm-tools-11.0.5-3.el7.x86_64
open-vm-tools-desktop-11.0.5-3.el7.x86_64
出现具体版本号,说明 open-vm-tools 和 open-vm-tools-desktop 已经安装。
继续检查 VMware Tools 服务:
点击查看代码
systemctl status vmtoolsd
如果显示:
Active: active (running)
说明 VMware Tools 服务正在正常运行。
按 q 可以退出服务状态页面。
也可以查看 VMware Tools 版本:
点击查看代码
vmware-toolbox-cmd -v
在我配置时,是默认已经安装了的
如果没有安装 open-vm-tools
如果执行检查命令后出现:
package open-vm-tools is not installed
package open-vm-tools-desktop is not installed
先切换到 root 用户:
点击查看代码
su -
然后执行:
点击查看代码
yum install -y open-vm-tools open-vm-tools-desktop
安装完成后,设置 vmtoolsd 服务开机启动并立即启动:
点击查看代码
systemctl enable --now vmtoolsd
检查服务状态:
systemctl status vmtoolsd
如果显示:
Active: active (running)
说明服务已经正常启动。
最后可以重启一次系统:
reboot
如果安装的是没有图形桌面的 CentOS 7,只需要安装基础软件包:
yum install -y open-vm-tools
如果安装的是图形桌面环境,则建议同时安装:
yum install -y open-vm-tools open-vm-tools-desktop
如果系统中已经安装了 open-vm-tools,则不需要再安装 VMware Tools 光盘中的传统安装包:
VMwareTools-10.3.26-22085142.tar.gz
不建议同时安装传统 VMware Tools 和 open-vm-tools,以免发生文件或服务冲突。
VMware 配置
- 关闭 CentOS 虚拟机
- 打开“虚拟机设置”
- 进入“选项” → “共享文件夹”
- 选择“总是启用”
- 点击“添加”,选择 Windows 中需要共享的文件夹
- 设置共享名称,例如
Share - 如果需要在 CentOS 中修改文件,不要勾选“只读”
- 保存设置并启动虚拟机
解决方法
1. 确认共享文件夹已被识别
执行:
点击查看代码
vmware-hgfsclient
输出:
Share
这说明 VMware 已经将名为 Share 的共享配置提供给 CentOS。
2. 创建挂载目录
切换到 root 用户:
点击查看代码
su -
创建共享文件夹的挂载目录:
点击查看代码
mkdir -p /mnt/hgfs
命令说明:
mkdir:创建目录-p:目录已经存在时不报错,父目录不存在时一并创建/mnt/hgfs:用于访问 VMware 共享文件夹的挂载点
该命令只负责创建一个空目录,并没有真正连接 Windows 共享文件夹。
3. 挂载共享文件夹
执行下面的命令:
点击查看代码
vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other,uid=$(id -u lr),gid=$(id -g lr)
命令说明:
vmhgfs-fuse:open-vm-tools提供的 VMware 共享文件夹挂载工具.host:/:表示 Windows 宿主机提供的全部 VMware 共享文件夹/mnt/hgfs:CentOS 中的挂载位置-o:指定挂载选项allow_other:允许执行挂载操作之外的其他用户访问uid=$(id -u lr):将共享文件的用户设置为lrgid=$(id -g lr):将共享文件的用户组设置为lr的主组
其中:
$(id -u lr)
会被替换为用户 lr 的 UID,例如 1000。
$(id -g lr)
会被替换为用户 lr 主组的 GID,例如 1000。
假设 lr 的 UID 和 GID 都是 1000,那么原命令相当于:
vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other,uid=1000,gid=1000
该命令的完整含义是:
将 Windows 宿主机提供的 VMware 共享文件夹挂载到 CentOS 的
/mnt/hgfs,允许普通用户访问,并将共享内容的用户和用户组设置为lr。
验证结果
查看挂载目录:
点击查看代码
ls -la /mnt/hgfs
正常情况下可以看到:
Share
进入共享文件夹:
点击查看代码
cd /mnt/hgfs/Share
ls -la
查看挂载状态:
点击查看代码
findmnt /mnt/hgfs
也可以使用:
mount | grep hgfs
测试 CentOS 是否可以向 Windows 共享文件夹写入文件:
点击查看代码
touch /mnt/hgfs/Share/centos-test.txt
如果 Windows 对应的共享目录中出现了 centos-test.txt,说明共享文件夹已经成功挂载,并且具有写入权限。
开机自动挂载
通过命令手动完成的挂载在 CentOS 重启后可能会失效。
如果希望 CentOS 每次启动后自动挂载,可以将挂载配置写入 /etc/fstab。
1. 查询用户的 UID 和 GID
执行:
点击查看代码
id lr
示例输出:
uid=1000(lr) gid=1000(lr) groups=1000(lr)
记录实际的 UID 和 GID。
2. 备份 fstab
执行:
点击查看代码
cp -a /etc/fstab /etc/fstab.bak
3. 添加自动挂载配置
编辑 /etc/fstab:
点击查看代码
vi /etc/fstab
在文件最后添加:
.host:/ /mnt/hgfs fuse.vmhgfs-fuse defaults,allow_other,uid=1000,gid=1000,_netdev 0 0
其中的 1000 需要替换为 id lr 查询到的实际 UID 和 GID。
注意:/etc/fstab 不是 Shell 脚本,因此不能直接写:
uid=$(id -u lr),gid=$(id -g lr)
必须填写具体的数字。
配置项说明:
.host:/:Windows 宿主机提供的全部 VMware 共享文件夹/mnt/hgfs:CentOS 中的挂载位置fuse.vmhgfs-fuse:使用 VMware HGFS FUSE 驱动allow_other:允许其他用户访问uid=1000:指定文件所属用户gid=1000:指定文件所属用户组_netdev:等待相关设备与服务准备后再挂载0 0:不进行 dump 备份和 fsck 文件系统检查
4. 测试自动挂载配置
先退出共享目录:
cd ~
卸载当前的手动挂载:
umount /mnt/hgfs
测试 /etc/fstab:
点击查看代码
mount -a
检查是否重新挂载成功:
findmnt /mnt/hgfs
ls -la /mnt/hgfs
如果没有报错并且可以看到 Share,说明配置正确。
最后重启 CentOS 进行验证:
reboot
重启后执行:
ls -la /mnt/hgfs/Share
如果可以看到 Windows 共享文件夹中的内容,说明开机自动挂载成功。
卸载共享文件夹
如果需要暂时断开共享文件夹,先退出共享目录:
cd ~
然后执行:
点击查看代码
umount /mnt/hgfs
该命令只会断开 CentOS 与 Windows 共享文件夹之间的挂载关系,不会删除 Windows 中的文件。

浙公网安备 33010602011771号