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


11

尋ねserverfaultのが、十分な注意を取得していないので、ここでいくつかの人が答えを知って希望を持って、ここに転載。

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_cもアンマウントされますがB_dir/mount_c、これは望ましくありません。

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

今、私の質問は、マウントを解除するA_dir/mount_bB_dir影響を受けないままにするB_dir/mount_c方法C_dirです。つまり、まだバインドがありますか?

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

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


この問題は、bugs.launchpad.net
ubuntu /

回答:


9

私は自分で解決策を見つけました。私は単純に使用する必要があります--make-rslaveに変更を加えるA_dir/mount_bに戻って伝播しませんB_dir

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

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


1
一部のシステムでは、1 mount --rbind src target --make-rslave回の呼び出しで結合することさえできます。一部のシステムでは、これを許可していませんでした。
imz-Ivan Zakharyaschev
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.