[Linux][经验总结]Vmware中挂载共享文件夹操纵及各命令解析 ...

科技颠覆者  论坛元老 | 2025-4-8 22:05:50 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1953|帖子 1953|积分 5859

一、前言

我们要将主机上的共享文件夹sync挂载到Vmware虚拟机中。虚拟机是Centos Stream10。

二、开始操纵

2.1 新建挂载目录

  1. sudo mkdir -p /mnt/hgfs
复制代码
一般我们会将磁盘等设备统一挂载在/mnt目录下。
2.2 挂载命令

命令一(使用mount,大概会报错,因为需要内核模块支持):
  1. sudo mount -t fuse.vmhgfs-fuse .host:/sync /mnt/hgfs -o allow_other
复制代码
命令二(使用专用工具):
  1. sudo vmhgfs-fuse -o allow_other .host:/sync /mnt/hgfs
复制代码
这条命令比力长,分几部门分析:


  • mount inux中的文件体系挂载命令
  • -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 取消挂载

  1. sudo umount /mnt/hgfs
复制代码
3.2 取消挂载失败(设备繁忙 target is busy)

  1. sudo umount -l /mnt/hgfs
复制代码
-l(--lazy)选项会在文件体系空闲后主动卸载,无需等待历程退出。
3.3 主动挂载

3.3.1 方法一

如需开机主动挂载,可在 /etc/fstab 中添加:
  1. .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 方法二

可以将挂载命令设置为启动项,实现主动挂载。
  1. sudo vi /etc/systemd/system/mntMount.service
复制代码
  1. [Unit]
  2. Description=My Startup Command
  3. After=network.target  # 若依赖网络,添加此行
  4. [Service]
  5. Type=simple
  6. ExecStart=/usr/bin/vmhgfs-fuse -o allow_other .host:/sync /mnt/hgfs
  7. Restart=no  # 无需重复执行
  8. [Install]
  9. WantedBy=multi-user.target  # 系统启动后运行
复制代码
留意:把上方配置中的备注删掉再保存。
保存退出后,然后这个服务见效并设置自启动。
  1. sudo systemctl daemon-reload
  2. sudo systemctl enable mntMount.service
复制代码
查抄启动项配置是否乐成。
  1. sudo systemctl is-enabled mntMount.service
复制代码

3.4 安全限定

因为挂载命令中增加了allow_other参数,会放宽访问权限,如果虚拟机存在多用户环境,建议结合 umask 或 uid/gid 选项限定访问:
  1. 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。
  1. sudo apt install open-vm-tools-desktop  # Debian/Ubuntu
  2. sudo dnf install open-vm-tools          # Fedora/RHEL
  3. sudo yum install open-vm-tools          # redhat
复制代码
open-vm-tools:提供根本驱动。
open-vm-tools-desktop:包含 FUSE 支持。

原创,转发请注明。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

科技颠覆者

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表