首页 > 技术文章 > 在 VM Linux中装载共享文件夹

Edge-coordinates 2021-08-13 15:58 原文

非永久挂载

启用共享文件夹后,除默认位置 /mnt/hgfs ~~**可能也没有哟**~ 外,您还可以将共享文件夹中的一个或多个目录 / 子目录装载到文件系统中的任意位置。

VMware Tools 会根据 Linux 客户机操作系统的内核版本,使用不同的组件来提供共享文件夹功能。在版本 4.0 之前的 Linux 内核中,VMware Tools 服务脚本会加载一个驱动程序来执行装载。Linux 内核 4.0 及更高版本使用 FUSE 文件系统组件。

您可以使用不同的装载命令将所有共享、某个共享或共享中的某个子目录装载到文件系统中的任意位置。这些命令也会因客户机 Linux 内核版本的不同而有所不同。

4.0 之前的 Linux 内核 4.0 及更高版本的 Linux 内核 说明
mount -t vmhgfs .host:/ /home/user1/shares /usr/bin/vmhgfs-fuse .host:/ /home/user1/shares -o subtype=vmhgfs-fuse,allow_other 将所有共享装载到 /home/user1/shares
mount -t vmhgfs .host:/foo /tmp/foo /usr/bin/vmhgfs-fuse .host:/foo /tmp/foo -o subtype=vmhgfs-fuse,allow_other 将名为 foo 的共享装载到 /tmp/foo
mount -t vmhgfs .host:/foo/bar /var/lib/bar /usr/bin/vmhgfs-fuse .host:/foo/bar /var/lib/bar -o subtype=vmhgfs-fuse,allow_other 将共享 foo 中的子目录 bar 装载到 /var/lib/bar

对于版本 4.0 之前的 Linux 内核,除了标准 mount 语法之外,您还可以使用 VMware 特定的选项。输入命令 /sbin/mount.vmhgfs -h 可列出这些选项。

对于 Linux 内核版本 4.0 或更高版本,输入命令 /usr/bin/vmhgfs-fuse -h 可列出可用的选项。

注:

  1. 如果共享文件夹被禁用或共享不存在,装载操作将失败。系统不会提示您重新运行 VMware Tools vmware-config-tools.pl 配置程序。
  2. 如果等待挂在目录下有文件,在命令中加上 -o nonempty (比如加在末尾:/usr/bin/vmhgfs-fuse .host:/ /home/user1/shares -o subtype=vmhgfs-fuse,allow_other -o nonempty) 如果将目录挂载到非空目录,该目录之前的文件将无法访问
  3. 若提示错误:fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf 则在/etc/fuse.conf中将user_allow_other前的注释符合#删除保存(需root权限)

永久挂载

删除挂载

卸载的话使用下面的命令:
sudo umount -f /mnt/shared

注意:
共享文件夹的名称千万不要和挂载点的名称相同。比如,上面的挂载点是/mnt/shared,如果共享文件夹的名字也是shared的话,在挂载的时候就会出现如下的错误信息(看http://www.virtualbox.org/ticket/2265):
/sbin/mount.vboxsf: mounting failed with the error: Protocol error

提示错误 /sbin/mount.vboxsf: mounting failed with the error: Invalid argument
或者重启虚拟机后没有挂载共享文件夹:

  1. 在/etc/fstab中添加一项
      gongxiang /mnt/shared vboxsf rw,gid=100,uid=1000,auto 0 0
  2. 在vitualbox设置中共享文件夹里取消自动挂载、取消自动挂载、取消自动挂载,重要的事说三遍可以解决,

参考文章列表
linux 客户机挂载vitualbox共享文件夹
在 Linux 客户机中装载共享文件夹
优化对 Linux 共享文件的读写访问
Ubuntu使用sshfs挂载远程目录

推荐阅读