无法在 initrd 内挂载 overlayfs

无法在 initrd 内挂载 overlayfs

我正在尝试在自定义 initrd 中使用只读 Overlayfs(无 workdir 和 upperdir)。

这在完全启动的操作系统中运行良好:

mkdir /tmp/ovl1 /tmp/ovl2 /tmp/merged
mount -t overlay none -o lowerdir=/tmp/ovl1:/tmp/ovl2 /tmp/merged

如果我使用 shell,这也有效busybox sh,它有内置的 mount 命令。

内部 initrd shell 目录已成功创建,并且 mount 命令给出以下错误:

mount: mounting none on /tmp/merged failed: No such device

以下是 initrd 内 mount 命令的输出:

rootfs on / type rootfs (...
sysfs on /sys type sysfs (...
proc on /proc type proc (...
udev on /dev type devtmpfs (...
devpts on /dev/pts type devpts (...
tmpfs on /run type tmpfs (...

我不知道如何调试这个:(

PS 现在我使用AUFS,它工作正常,但它被主线内核拒绝,建议切换到overlayfs。

答案1

我确信该模块是在内核中静态编译的,但我错了:CONFIG_OVERLAY_FS=m.将模块添加到 initrd 后overlay一切正常。

相关内容