You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

VMware Linux虚拟机中将共享文件夹挂载至指定目录/var/lib/docker的问题求助

VMware Linux虚拟机中将共享文件夹挂载至指定目录/var/lib/docker的问题求助

大家好,我遇到了一个VMware共享文件夹挂载的问题,想请教下有没有更合理的解决方法。

我的需求是:把VMware共享文件夹挂载到非默认路径,最终目标是让宿主机能访问Linux虚拟机里的/var/lib/docker/目录——也就是把虚拟机的/var/lib/docker/和共享文件夹关联起来,方便宿主机直接操作。

先说明下背景:VMware Workstation 15(2023版本)中,Linux虚拟机的共享文件夹默认挂载路径是/mnt/hgfs/[共享文件夹名称]/,我已经能正常使用默认挂载了,但现在需要调整到指定目录。

我已经尝试了两种方法,但都有问题:

方法一:使用mount --bind命令

我执行了以下两条命令:

mount --bind /var/lib/docker/ /mnt/hgfs/[共享文件夹名称]/
mount --bind /mnt/hgfs/[共享文件夹名称]/ /var/lib/docker/

命令执行后没有报错,但完全看不到任何效果,两个目录的内容都没发生变化,不知道哪里出了问题。

方法二:修改/etc/fstab配置

因为之前为了让默认的/mnt/hgfs/[共享文件夹名称]/正常工作,我已经修改过/etc/fstab了,所以想到另一个思路:

  1. 先把共享文件夹重命名为docker
  2. /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目录被“覆盖”了——原来里面的所有其他目录都访问不到了,只能看到我命名为docker的共享文件夹。

虽然理论上可以先把/var/lib的所有内容复制出来,修改配置后再复制回去,但这个方法感觉太“野路子”了,而且我担心复制回去的那些非共享文件夹会被VMware删掉,毕竟它们不是正式的共享文件夹。

补充:我发现的VMware共享文件夹工作机制

这里也和大家分享下我观察到的规律:如果在Linux虚拟机的/etc/fstab里把挂载路径设为/example,那么整个/example目录的原有内容会无法访问(相当于被“覆盖”),所有共享文件夹会以/example/shared1/example/shared2这样的形式出现在该路径下。

有没有朋友遇到过类似的需求?有没有更优雅的方法能让共享文件夹直接挂载到/var/lib/docker/,而不影响/var/lib里的其他内容?

备注:内容来源于stack exchange,提问作者hatalmasalma

火山引擎 最新活动