
詢問於伺服器故障但沒有引起足夠的重視,所以轉發在這裡,希望這裡的一些人知道答案。
還有另一種問題討論卸載 rbind 掛載,但此解決方案產生了不良影響。考慮以下目錄佈局:
.
├── A_dir
│ └── mount_b
├── B_dir
│ └── mount_c
└── C_dir
現在我綁定C_dir
到B_dir/mount_c
並rbindB_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
也會 unmount 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 上不起作用。
編輯:有關我試圖解決的實際問題的更多資訊。我嘗試創建一個沙箱並用於--rbind
將/dev
和掛載/proc
到沙箱。銷毀沙箱時,似乎我無法徹底銷毀它,因為<sandbox-root>/dev/pts
在 FC23 和 CentOS7 中卸載將 unmount /dev/pts
,之後我的 shell 和 SSH 連接掛起,我必須重新啟動電腦。這就是為什麼我問是否有一種方法可以在不影響子安裝的情況下卸載 --rbind 安裝。
答案1
我自己找到了解決方案。我只需要使用--make-rslave
來進行任何更改,A_dir/mount_b
而不傳播回B_dir
:
sudo mount --make-rslave A_dir/mount_b
sudo umount -R A_dir/mount_b
看山手冊頁部分共享子樹操作。