Overlayfs 使用多层重新加载(从 aufs 迁移)

Overlayfs 使用多层重新加载(从 aufs 迁移)

我遇到了一个从 aufs 到 overlayfs 的迁移难题。使用 aufs,您可以指定多个 RO 层,并且更新其中的一些文件时,可以通过重新挂载来刷新。

带有 aufs 的 fstab:

aufs    /etc                       aufs    noauto,br:/rw-root/etc=rw:/ro-root/etc=ro:/etc=rr  0 0

与 overlayfs 相同的功能:

none    /.tmp-root/etc              overlayfs  noauto,upperdir=/ro-root/etc,lowerdir=/etc      0 0 
none    /etc                       overlayfs  noauto,upperdir=/rw-root/etc,lowerdir=/.tmp-root/etc  0 0 

按顺序安装系统没问题,一切正常。当我需要更新 ro-root 分区上的某些内容时,问题就出现了。运行 remount 时,会将 /etc 视为已安装的 overlayfs,而不是原始的 ro-root。(用 解决了删除线问题mount --bind

显然问题出在inode文件数量上。因此,编辑文件时一切正常,但如果我将新文件复制到较低级别的旧文件上,则更改不会传播。因此,这可能是一个真正的 overlayfs 问题。

我非常希望这个设置能够继续工作(重新构建所有内容需要大量工作和测试,我宁愿避免,因为这会影响 50 多个虚拟机)。话虽如此,我也会接受能够安全地在 initrd-stage 之后移动 readonly-root 以解决这个问题的答案,如果这不可能,那么建议以最简单的方式更改/修改/创建 initrd 来完成此移动。

还有另一个相关问题,但它是只有两层的更简单形式。 简单的 overlayfs 重新加载问题

答案1

您是否尝试过先在 /.tmp-reoot/etc 上运行 remount,然后在 /etc 上运行 remount

例如:

 mount -o remount /.tmp-reoot/etc

 mount -o remount /etc

相关内容