我一直在尝试将 root (/) 挂载为 overlayfs。
操作系统正在通过 NFS 引导到 RAM。我在 initrd 中添加了一个 premount 脚本,它创建了“work”、“upper”和“lower”目录。
在引导过程中,我将 NFS 的内容复制到“较低”目录。之后 Overlayfs 被挂载到 ${rootmnt} 中。
最后,初始化脚本 chroots 到 ${rootmnt} (接下来,从真正的根目录初始化等......)并且操作系统工作正常。
自然,我看不到“工作”和“上层”目录。我怎样才能做到这一点?我必须在 initrd 中更改什么?
将 root 安装为 overlayfs 的挑战已经解决。
简而言之,“lower”、“work”和“upper”目录应该移动到“merge”目录。但是,您应该考虑:
1) 如果“下”目录作为磁盘映像存在,则无需执行任何操作。装上就行了。如果没有,请在其上创建tmpfs挂载点并通过 NFS 将所有需要的文件复制到其中。
2) 'upper' 和 'lower' 目录必须位于一个文件系统中。创建另一个tmpfs挂载点并在其上放置“上”和“下”目录就足够了。
3) 确保您
initrd.img
有 NFS 和 Overlayfs 的模块。如果它们不存在,则将它们添加到 /etc/initramfs-tools/modules 中。4) 确保您
initrd.img
拥有完整版本的“mount”命令。它不存在,然后将其添加到/etc/initramfs-tools/hooks
.例如(省略了一些细节):
最后,在
/etc/initramfs-tools/scripts/init-premount/
. 例如: