我想要将 VMware 共享文件夹挂载到默认位置以外的位置。
从 VMware Workstation 15 (2023) 开始,Linux 客户机中共享文件夹的默认挂载路径为:/mnt/hfgs/[shared_folder_name]/
我的最终目标是使docker的文件夹可以作为共享文件夹从主机访问:/var/lib/docker/
我试过:
1.
mount --bind /var/lib/docker/ /mnt/hgfs/[shared_folder_name]/
mount --bind /mnt/hgfs/[shared_folder_name]/ /var/lib/docker/
该mount
命令没有返回错误,但似乎没有任何改变。
2.
因为我不得不修改/etc/fstab
为了让默认设置正常/mnt/hfgs/[shared_folder_name]/
工作,我又想出了另一个主意。我将共享文件夹重命名为“docker”,并修改了相关行/etc/fstab
:
vmhgfs-fuse /mnt/hgfs fuse defaults,allow_other,_netdev 0 0
更改为:
vmhgfs-fuse /var/lib fuse defaults,allow_other,_netdev 0 0
但是,它“覆盖”了整个/var/lib
,其中唯一可见的文件夹是共享文件夹[1],我将其命名为 docker。虽然第二个选项可能有效,如果我将整个复制/var/lib
出来,进行更改并将其全部复制回来,但这感觉太不合时宜了(而且 VMware 可能会删除它们,因为我复制回来的其他文件夹/var/lib
不是合适的共享文件夹)。
[1]:关于 VMware 共享文件夹的工作方式的说明:
如果我在客户 Linux 上将路径设置/etc/fstab
为/example
,则整个example
文件夹将被“覆盖”(不可访问),并且共享文件夹将变为可用/example/shared1
,/example/shared2
等。
答案1
我想要将 VMware 共享文件夹挂载到默认位置以外的位置。
看https://kb.vmware.com/s/article/60262。
如果你有打开虚拟机工具安装后,最简单的方法是使用终端 shell 运行:
vmhgfs-fuse .host:/SHARE DESTINATION
请注意,挂载到 上/var/lib
会隐藏 的旧内容/var/lib
,这对于一般的挂载来说都是如此,因此您应该挂载到子目录中。例如:
sudo vmhgfs-fuse .host:/SHARE/docker /var/lib/docker -o allow_other
请注意,上述内容要求/var/lib/docker
是现有目录并使用,sudo
因为挂载到需要 root 权限/var/lib
。-o allow_other
mount 选项允许非 root 用户访问挂载。
或者,您始终可以将共享文件夹挂载到任何位置,然后创建一个/var/lib/docker
符号链接指向该挂载位置,例如:
sudo ln -s /mnt/hgfs/SHARE/docker /var/lib/docker