马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
一、场景和前置条件
把宿主机上的共享文件夹挂进 VMware 虚拟机,是开发联调和离线安装软件时最常用的能力。本文虚拟机为 CentOS Stream 10,操作在 root 或有 sudo 权限的账号下执行。前提很简单:VMware Tools 已经装好并运行,否则 vmhgfs 相关命令根本不存在。
先验证 Tools 状态:
systemctl status vmtoolsd
vmware-toolbox-cmd --version
二、先建挂载目录
习惯上把这类挂载点放在 /mnt 下统一管理:
sudo mkdir -p /mnt/hgfs
三、两种挂载方式
方式一,用 mount 手动挂。这条路容易报内核模块不支持,因为需要对应内核模块:
sudo mount -t fuse.vmhgfs-fuse .host:/sync /mnt/hgfs -o allow_other
方式二,直接调 VMware 的 FUSE 工具,实际用得更多:
sudo vmhgfs-fuse -o allow_other .host:/sync /mnt/hgfs
这条命令拆开看:
vmhgfs-fuse:VMware Tools 提供的共享文件夹客户端,属于用户态文件系统实现。
-o allow_other:允许非 root 用户访问挂载点,不加的话普通用户进 /mnt/hgfs 会权限不足。
.host:/sync:宿主机(.host)上名为 sync 的共享,名字在 vSphere 或 Workstation 的「虚拟机设置 → 选项 → 共享文件夹」里定义。
/mnt/hgfs:虚拟机内的挂载目标。
四、挂载成功后怎么用
df -h /mnt/hgfs
ls -la /mnt/hgfs
cp /mnt/hgfs/package.rpm /tmp/
大文件建议先传到 /tmp 或业务目录再用,不要直接在挂载点里编译,网络文件系统上的随机小文件读写会明显慢,而且异常中断可能留脏锁。
五、开机自动挂载
手动挂载重启就没了。写进 /etc/fstab:
.host:/sync /mnt/hgfs fuse.vmhgfs-fuse defaults,allow_other,auto,nofail 0 0
加上 nofail 很关键:VMware Tools 还没起来时挂载失败不会把系统卡在启动阶段。写完可以先测:
sudo mount -a
六、常见问题定位
- 命令找不到:
vmhgfs-fuse: command not found —— 没装 open-vm-tools,yum 装 open-vm-tools 和 open-vm-tools-devel,装完重启或重开会话。
- 权限不足:挂载成功但普通用户读不了 —— 补
allow_other,或按用户授权:sudo usermod -aG fuse $USER 后重新登录。
- 报
Operation not supported:内核缺 FUSE 支持,确认 /dev/fuse 存在,内核模块 fuse 已加载。
- 看不到共享:宿主机侧共享没启用或名字写错,
vmware-toolbox-cmd --cmd hgfsclient 可以列出本机识别到的所有共享名。
- 写入延迟大:共享文件夹是网络文件系统,大量小文件场景建议改成 VMs 之间走内网
scp/rsync,或者干脆用内部仓库拉包。
七、运维上的几点建议
- 共享目录只放「投递型」文件,别当本地盘跑数据库和日志
。
- 挂载点集中放
/mnt/hgfs,方便巡检和清理。
- fstab 里务必写
nofail,避免 Tools 未就绪导致启动卡死。
- 重要数据以虚拟机内部备份为准,共享目录不是备份介质。
qidao123.com企服评测-应用市场 编辑提示
本文覆盖 VMware 共享文件夹从挂载、自动挂载到故障排查的完整流程,命令已在 CentOS Stream 10 环境验证。操作前确认 VMware Tools 正常运行,挂载点建议集中管理并加 nofail,大批量小文件传输建议改走内网。企业开发环境可用统一镜像预装 open-vm-tools,减少每台机器手动配置差异。
|