[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 支持。


原创,转发请注明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wingaso

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值