루트를 lowerdir로 사용하여 overlayfs를 설치하면 mergedir에 빈 /proc가 생성되는 이유는 무엇입니까?

루트를 lowerdir로 사용하여 overlayfs를 설치하면 mergedir에 빈 /proc가 생성되는 이유는 무엇입니까?

테스트 사례는 다음과 같습니다.

#!/bin/bash

more="$@"
saved="$EUID"

if [ "$EUID" = "0" ]; then
    echo "don't run as root"
    exit
fi

m="/tmp/mount-point"

exec sudo unshare -m /bin/bash <<UNSHARED
mkdir -p "$m"
mount -t tmpfs tmpfs "$m"
cd "$m"
mkdir top merge work

mount -t overlay overlay -o lowerdir=/,upperdir=top,workdir=work merge

#bash < /dev/tty
chroot merge sh -c 'sudo -u "#$saved" sh -c "id; ls /proc -lR"'
UNSHARED

이것이 인쇄되는 내용입니다:

uid=1001(username) gid=1001(username) groups=1001(username),7(lp),10(wheel)
/proc:
total 0

/proc짐작할 수 있듯이 My가 설치되어 있고빅FS.

답변1

관리자 Miklos Szeredi의 답변:

이것이 overlayfs의 작동 방식입니다. /merge 아래에 새 proc 인스턴스를 마운트합니다.

그래서 나는 overlayfs가 사용자 공간에서 볼 수 있는 일반적인 마운트된 복합 이미지가 아닌 지정된 디렉토리에서 통합 파일 시스템을 시작한다고 추측합니다. 또한:

이를 가능하게 하는 몇 가지 사용자 공간 변형이 있습니다. 예를 들어 Unionfs-fuse입니다.

고마워요,
미클로스

관련 정보