web-dev-qa-db-ja.com

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

質問 serverfault が十分な注目を集めなかったため、ここに再投稿しました。ここの一部の人が答えを知っていることを願っています。

別の question rbindマウントのアンマウントについて議論していますが、解決策は望ましくない影響を及ぼします。次のディレクトリレイアウトを検討してください。

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

次に、C_dirB_dir/mount_cにバインドし、rbind B_dirA_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は失敗しますが、これは当然のことです。ウェブ上のあらゆる場所での回答によると、最初にumount A_dir/mount_b/mount_c、次にumount A_dir/mount_bにする必要があります。ただし、umount A_dir/mount_b/mount_cB_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_cからC_dirへのバインドがまだありますか?

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

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

11
icando

私は自分で解決策を見つけました。私は単に--make-rslaveを使用してA_dir/mount_bに変更を加え、B_dirに反映しないようにするだけです。

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

mount のマニュアルページのセクションを参照してください。共有サブツリー操作

9
icando