我如何访问安装在与 lowerdir 相同位置的覆盖层的原始文件(lowerdir)?

我如何访问安装在与 lowerdir 相同位置的覆盖层的原始文件(lowerdir)?

我遇到的情况是,我必须从半只读位置运行 Fedora Linux。我可以编辑文件系统、放置文件等,但重新启动后所有内容都会丢失,而且更麻烦的是,我也无法轻松增加可用存储空间。不过,我确实可以访问一些可写媒体,所以我想这样做:

sudo mount --bind /usr /home/username/Store/Orig/usr
sudo mount -t overlay ovl_usr -o lowerdir=/usr,upperdir=/home/username/Store/usr,workdir=/home/username/Store/Work/usr /usr

第二行工作正常,第一行不起作用。它的作用是让我以非覆盖方式访问 的原始内容/usr。我期望由于绑定挂载是在 上挂载覆盖之前创建的/usr/home/username/Store/Orig/usr因此仍然可以看到旧内容。但是没有,/home/username/Store/Orig/usr它显示了覆盖文件,就像 一样/usr

有没有办法访问的原始内容/usr

答案1

我认为你正在经历“共享”行为,而你需要“私人”。请参阅man 8 mount

共享子树操作。
自 Linux 2.6.15 以来,可以将挂载及其子挂载标记为共享、私有、从属或不可绑定。共享挂载提供了创建该挂载镜像的能力,这样任何镜像中的挂载和卸载都可以传播到另一个镜像。[…] 私有挂载不具备传播能力。[…]

解决方案:在调用之后mount --bind …和之前mount -t overlay …

sudo mount --make-private /home/username/Store/Orig/usr

相关内容