사용자 정의 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
모든 것이 잘 작동했습니다.