我正在尝试在自定义 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
一切正常。