質問 serverfault が十分な注目を集めなかったため、ここに再投稿しました。ここの一部の人が答えを知っていることを願っています。
別の question rbindマウントのアンマウントについて議論していますが、解決策は望ましくない影響を及ぼします。次のディレクトリレイアウトを検討してください。
.
├── A_dir
│ └── mount_b
├── B_dir
│ └── mount_c
└── C_dir
次に、C_dir
をB_dir/mount_c
にバインドし、rbind B_dir
を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
は失敗しますが、これは当然のことです。ウェブ上のあらゆる場所での回答によると、最初に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_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マウントをアンマウントする方法があるかどうかを尋ねています。
私は自分で解決策を見つけました。私は単に--make-rslave
を使用してA_dir/mount_b
に変更を加え、B_dir
に反映しないようにするだけです。
Sudo mount --make-rslave A_dir/mount_b
Sudo umount -R A_dir/mount_b
mount のマニュアルページのセクションを参照してください。共有サブツリー操作。