我遇到的情况是,我必须从半只读位置运行 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