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-toolsopen-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 配置

  1. 关闭 CentOS 虚拟机
  2. 打开“虚拟机设置”
  3. 进入“选项” → “共享文件夹”
  4. 选择“总是启用”
  5. 点击“添加”,选择 Windows 中需要共享的文件夹
  6. 设置共享名称,例如 Share
  7. 如果需要在 CentOS 中修改文件,不要勾选“只读”
  8. 保存设置并启动虚拟机

解决方法

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-fuseopen-vm-tools 提供的 VMware 共享文件夹挂载工具
  • .host:/:表示 Windows 宿主机提供的全部 VMware 共享文件夹
  • /mnt/hgfs:CentOS 中的挂载位置
  • -o:指定挂载选项
  • allow_other:允许执行挂载操作之外的其他用户访问
  • uid=$(id -u lr):将共享文件的用户设置为 lr
  • gid=$(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 中的文件。

posted @ 2026-07-19 01:06  Litt_R  阅读(8)  评论(0)    收藏  举报