[Linux][经验总结]Vmware中挂载共享文件夹操作及各命令解析
一、前言
我们要将主机上的共享文件夹sync挂载到Vmware虚拟机中。虚拟机是Centos Stream10。
二、开始操作
2.1 新建挂载目录
sudo mkdir -p /mnt/hgfs
一般我们会将磁盘等设备统一挂载在/mnt
目录下。
2.2 挂载命令
命令一(使用mount,可能会报错,因为需要内核模块支持):
sudo mount -t fuse.vmhgfs-fuse .host:/sync /mnt/hgfs -o allow_other
命令二(使用专用工具):
sudo vmhgfs-fuse -o allow_other .host:/sync /mnt/hgfs
这条命令比较长,分几部分剖析:
mount
:Linux中的文件系统挂载命令-t fuse.vmhgfs-fuse
:指定文件系统类型为 fuse.vmhgfs-fuse。VMware 使用 FUSE(Filesystem in Userspace用户空间文件系统)实现宿主机与虚拟机之间的共享文件夹功能。vmhgfs-fuse 是 VMware 提供的专用驱动。fuse
:指代用户空间文件系统框架(FUSE)。与传统的内核模块不同,FUSE 允许在用户空间实现文件系统,无需内核级代码,更安全且易维护。vmhgfs
:即 VMware Host-Guest File System,是 VMware Tools 提供的共享文件夹功能,用于宿主机与虚拟机之间的文件共享。vmhgfs-fuse
:这是 VMware 官方提供的 FUSE 版本 HGFS 驱动。相比传统的内核模块 vmhgfs,它更灵活,兼容性更好(尤其在较新的 Linux 内核中)。
.host:/sync
.host
是 VMware 虚拟机中预定义的宿主机标识符。:/sync
表示宿主机上的sync共享文件夹(即前文截图中的文件夹)。也可以直接使用./host:/
,即直接将VMware 宿主机配置的所有共享文件夹挂载到虚拟机中。
/mnt/hgfs
挂载到虚拟机上的位置,即前文新建的目录。-o allow_other
:挂载选项,允许非 root 用户访问挂载的文件系统。默认情况下,只有挂载操作的执行者(root)能访问挂载点,此选项放宽权限,使普通用户也可读写。
三、其他问题与操作
3.1 取消挂载
sudo umount /mnt/hgfs
3.2 取消挂载失败(设备繁忙 target is busy)
sudo umount -l /mnt/hgfs
-l
(--lazy
)选项会在文件系统空闲后自动卸载,无需等待进程退出。
3.3 自动挂载
3.3.1 方法一
如需开机自动挂载,可在 /etc/fstab
中添加:
.host:/sync /mnt/hgfs fuse.vmhgfs-fuse allow_other 0 0
0 0
(dump 和 fsck 设置)
- 第一个 0:表示是否允许 dump 工具备份此文件系统(0=禁用)。
- 第二个 0:表示是否在启动时用 fsck 检查此文件系统(0=不检查)。
如果使用mount挂载失败,那么不适合这种挂载方式。
3.3.2 方法二
可以将挂载命令设置为启动项,实现自动挂载。
sudo vi /etc/systemd/system/mntMount.service
[Unit]
Description=My Startup Command
After=network.target # 若依赖网络,添加此行
[Service]
Type=simple
ExecStart=/usr/bin/vmhgfs-fuse -o allow_other .host:/sync /mnt/hgfs
Restart=no # 无需重复执行
[Install]
WantedBy=multi-user.target # 系统启动后运行
注意:把上方配置中的备注删掉再保存。
保存退出后,然后这个服务生效并设置自启动。
sudo systemctl daemon-reload
sudo systemctl enable mntMount.service
检查启动项配置是否成功。
sudo systemctl is-enabled mntMount.service
3.4 安全限定
因为挂载命令中增加了allow_other
参数,会放宽访问权限,如果虚拟机存在多用户环境,建议结合 umask 或 uid/gid 选项限制访问:
sudo mount -t fuse.vmhgfs-fuse .host:/sync /mnt/hgfs -o allow_other,uid=1000,gid=1000
将 1000 替换为你的用户/组 ID,可通过id
命令查看,即限定只允许root和当前用户访问该设备。
3.5 挂载失败
挂载失败,提示 "unknown filesystem type ‘fuse.vmhgfs-fuse’”
没有安装vmtools。
sudo apt install open-vm-tools-desktop # Debian/Ubuntu
sudo dnf install open-vm-tools # Fedora/RHEL
sudo yum install open-vm-tools # redhat
open-vm-tools:提供基本驱动。
open-vm-tools-desktop:包含 FUSE 支持。
原创,转发请注明。