元のマウントに影響を与えずに rbind マウントをアンマウントする

元のマウントに影響を与えずに rbind マウントをアンマウントする

質問されたサーバー障害しかし、十分な注目を集めなかったので、ここに再投稿します。ここにいる何人かが答えを知っていることを願っています。

もう一つの...がある質問rbind マウントのアンマウントについて議論しましたが、解決策には望ましくない効果があります。次のディレクトリ レイアウトを検討してください。

.
├── A_dir
│   └── mount_b
├── B_dir
│   └── mount_c
└── C_dir

C_dirここで、にバインドしB_dir/mount_cB_dirにrbind しますA_dir/mount_b

[hidden]$ sudo mount --bind C_dir B_dir/mount_c
[hidden]$ sudo mount --rbind B_dir A_dir/mount_b
[hidden]$ mount | grep _dir | wc -l
3

今度はumount A_dir/mount_bが失敗しますが、これは驚くことではありません。Web 上のあらゆる回答によると、umount A_dir/mount_b/mount_cまずを実行する必要がありますumount A_dir/mount_b。ただし、umount A_dir/mount_b/mount_cは もアンマウントしますがB_dir/mount_c、これは望ましくありません。

[hidden]$ sudo umount A_dir/mount_b/mount_c
[hidden]$ mount | grep _dir | wc -l
1

ここで質問なのですが、マウントを解除しA_dir/mount_bても影響を受けないまま、つまりバインドがB_dir残っている状態で残すにはどうすればよいのでしょうか?B_dir/mount_cC_dir

編集: この問題は Ubuntu では発生しないようです。具体的には、Ubuntu 14.04 では正常に動作しますが、Fedora 23 と CentOS 7 では動作しません。なぜ違いがあるのでしょうか。また、Fedora と CentOS での回避策は何でしょうか。

編集: 私が解決しようとしている実際の問題について、もう少し情報を追加します。サンドボックスを作成し、 とをサンドボックスに--rbindマウントしようとしました。サンドボックスを破棄すると、 FC23 と CentOS7 でアンマウントすると がアンマウントされるため、きれいに破棄できないようです。その後、シェルと SSH 接続がハングし、マシンを再起動する必要があります。そのため、サブマウントに影響を与えずに --rbind マウントをアンマウントする方法があるかどうかを尋ねています。/dev/proc<sandbox-root>/dev/pts/dev/pts

答え1

--make-rslave解決策は自分で見つけました。変更がA_dir/mount_bに反映されないようにするには、以下を使用するだけですB_dir

sudo mount --make-rslave A_dir/mount_b
sudo umount -R A_dir/mount_b

見るマウントマニュアルページセクション共有サブツリー操作

関連情報