重複バインドマウントが原因で複数のアイテムが生成されるのはなぜですか/proc/mounts
?
# md -p /mnt/test-mount/{source,target}
# mount --bind /mnt/test-mount/{source,target}
# grep test-mount /proc/mounts
/dev/sda3 /mnt/test-mount/target ext4 rw,relatime 0 0
# mount --bind /mnt/test-mount/{source,target}
# grep test-mount /proc/mounts
/dev/sda3 /mnt/test-mount/target ext4 rw,relatime 0 0
/dev/sda3 /mnt/test-mount/target ext4 rw,relatime 0 0
/dev/sda3 /mnt/test-mount/source ext4 rw,relatime 0 0
最初のバインドマウント後、ソースボリュームをマウントポイントにマップするエントリがあります。 2回目の呼び出しの後、追加のマウントポイントエントリとソースプレフィックスエントリがあります。
同様に、発見するレポートソースは独自にバンドルされてマウントされます。
# findmnt |grep test-mount
├─/mnt/test-mount/target /dev/sda3[/mnt/test-mount/source] ext4 rw,relatime
│ └─/mnt/test-mount/target /dev/sda3[/mnt/test-mount/source] ext4 rw,relatime
└─/mnt/test-mount/source /dev/sda3[/mnt/test-mount/source] ext4 rw,relatime
もう一つの繰り返しの後、私は結局サムソースアイテム、4つのターゲットアイテム:
# mount --bind /mnt/test-mount/{source,target
# findmnt |grep test-mount
├─/mnt/test-mount/target /dev/sda3[/mnt/test-mount/source] ext4 rw,relatime
│ └─/mnt/test-mount/target /dev/sda3[/mnt/test-mount/source] ext4 rw,relatime
│ └─/mnt/test-mount/target /dev/sda3[/mnt/test-mount/source] ext4 rw,relatime
│ └─/mnt/test-mount/target /dev/sda3[/mnt/test-mount/source] ext4 rw,relatime
└─/mnt/test-mount/source /dev/sda3[/mnt/test-mount/source] ext4 rw,relatime
└─/mnt/test-mount/source /dev/sda3[/mnt/test-mount/source] ext4 rw,relatime
└─/mnt/test-mount/source /dev/sda3[/mnt/test-mount/source] ext4 rw,relatime
進展は1、3、7、15 ...、すなわち。n = 1 + 2^(n-1), 各インストールジョブごとに追加項目数が 2 倍になります。
その理由は何ですか?
答え1
スプレッドをインストールします。
これは、「MS_UNBINDABLEの例」で説明した「マウントポイント爆発の問題」の特定のケースです。マウントネームスペース(7)
systemdはデフォルトでマウント伝播を効果的に有効にします。たとえば、次/home
のようにブロックされたサブネームスペースでサービスを実行できます。システムランチャーオプションProtectHome=yes
。インストールを許可:削除してサブネームスペースに伝播すると、デフォルトのeject
ネームスペースなどで引き続き正常に動作できます。