Bind-mount と cryptsetup により、/proc/self/mountinfo のルートパスが切り捨てられます。

Bind-mount と cryptsetup により、/proc/self/mountinfo のルートパスが切り捨てられます。

ext4ファイルシステムと、後でバインドマウントされるサブディレクトリを含む暗号化されたコンテナがあります。確認してみると、/proc/self/mountinfoマウントされたルートディレクトリになぜかは不明な値があります。

再現段階:

cd /tmp
fallocate -l 1G container.luks
cryptsetup luksFormat container.luks
cryptsetup open --type=luks2 container.luks container
mkfs.ext4 /dev/mapper/container
mkdir /mnt/container
mount /dev/mapper/container /mnt/container/
mkdir /mnt/container/subdir
mkdir /tmp/abc
mount -o bind /mnt/container/subdir/ /tmp/abc
cat /proc/self/mountinfo

...
24 1 253:1 / / rw,noatime - ext4 /dev/dm-1 rw
...
56 24 253:5 / /mnt/container rw,relatime - ext4 /dev/mapper/container rw
57 24 253:5 /subdir /tmp/abc rw,relatime - ext4 /dev/mapper/container rw

~によると人5プロセスフィールド#4

ルート:このマウントのルートを形成するファイルシステムのディレクトリパス名。

最後の行にフィールド#4が/subdirないのはなぜですか/mnt/container/subdir?マウント#57に関する情報が与えられたら、マウント#57がマウント#56のサブディレクトリのバインドマウントであるとどう推測できますか?

注:umount -R /mnt/containerマウント#57を無視してください。


Billy叔父の回答と関連マニュアルページを何度も読んだ私の説明は、/subdirシステムのどこかに潜在的に存在しないデバイスマウントポイントのルートを調べることです。253:5これが意味があることを願っています。

答え1

56 24 253:5 / /mnt/container
57 24 253:5 /subdir /tmp/abc

mountに関する情報が与えられたら、mountがmountサブディレクトリのバインドマウントであることを#57どのように推論できますか?#57#56

そうではありません。あなたはそれを推論しません。

2つのマウントは、同じファイルシステム/デバイス(253:5)にマウントされている方法でのみ関連付けられます。どちらかが他のものの「サブマウント」であるか、それと似ていません。彼らは互いに独立しています。

関連情報