initrd에 오버레이f를 마운트할 수 없습니다.

initrd에 오버레이f를 마운트할 수 없습니다.

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

관련 정보