カスタムinitrdで読み取り専用Overlayfs(workdirおよびupperdirなし)を使用しようとしています。
完全に起動したOSでは正常に動作します。
mkdir /tmp/ovl1 /tmp/ovl2 /tmp/merged
mount -t overlay none -o lowerdir=/tmp/ovl1:/tmp/ovl2 /tmp/merged
busybox sh
これは、組み込みのmountコマンドを持つシェルを使用している場合にも機能します。
内部initrdシェルディレクトリが正常に作成され、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
すべてがうまくいきました。