テストケースは次のとおりです。
#!/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 です。
ありがとう、
ミクロス