시스템을 최대한 그대로 유지해야 합니다. 하드웨어 재료의 용접만 허용됩니다 :-). 테스트 패키지를 설치해야 하는데 이 패키지가 나중에 거기에 있어서는 안 됩니다.
나는 다음과 같은 상황에 처해 있습니다.
- mmcblck 파티션은 /, ext4, 읽기 전용, 커널 v4.6.0으로 마운트됩니다.
- /tmp/usbstick에 마운트된 USB 스틱(파티션이 하나만 있음), ext4
- usbstick /tmp/usbstick/upperdir, /tmp/usbstick/workdir에 디렉토리 생성
- 다음 줄을 사용하십시오: mount -t Overlay Overlay -o lowerdir=/,upperdir=/tmp/usbstick/upperdir,workdir=/tmp/usbstick/workdir /
이후 /는 읽기 전용으로 유지됩니다. 내가 부분적으로 성공한 유일한 부분은 /tmp/usbstick/merged를 생성하여 / 대신 "병합된" 디렉터리로 모듈에 제공했을 때였습니다. 그런 다음 해당 디렉토리에 있는 모든 rootfs를 볼 수 있고 rw로 마운트되어 있지만 거기에서는 사용할 수 없습니다. 어떻게 해야 합니까?
답변1
병합 디렉터리로 루트를 변경해 보았습니다. 결과는 예상한 대로입니다. rw rootfs가 있는데 제가 놓친 유일한 것은 가상 커널 파일 시스템입니다. 그래서 오버레이를 설치한 후 다음을 수행했습니다.
TARGETDIR="/tmp/usbstick/merged"
mount -t proc proc $TARGETDIR/proc
mount -t sysfs sysfs $TARGETDIR/sys
mount -t devtmpfs devtmpfs $TARGETDIR/dev
mount -t tmpfs tmpfs $TARGETDIR/dev/shm
mount -t devpts devpts $TARGETDIR/dev/pts
그런 다음 mtab을 연결하십시오.
chroot $TARGETDIR rm /etc/mtab 2> /dev/null
chroot $TARGETDIR ln -s /proc/mounts /etc/mtab
chroot $TARGETDIR