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了,所以想到另一个思路:
- 先把共享文件夹重命名为
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目录被“覆盖”了——原来里面的所有其他目录都访问不到了,只能看到我命名为docker的共享文件夹。
虽然理论上可以先把/var/lib的所有内容复制出来,修改配置后再复制回去,但这个方法感觉太“野路子”了,而且我担心复制回去的那些非共享文件夹会被VMware删掉,毕竟它们不是正式的共享文件夹。
补充:我发现的VMware共享文件夹工作机制
这里也和大家分享下我观察到的规律:如果在Linux虚拟机的/etc/fstab里把挂载路径设为/example,那么整个/example目录的原有内容会无法访问(相当于被“覆盖”),所有共享文件夹会以/example/shared1、/example/shared2这样的形式出现在该路径下。
有没有朋友遇到过类似的需求?有没有更优雅的方法能让共享文件夹直接挂载到/var/lib/docker/,而不影响/var/lib里的其他内容?
备注:内容来源于stack exchange,提问作者hatalmasalma




