Unmounten eines Rbind-Mounts ohne Auswirkung auf den ursprünglichen Mount

Unmounten eines Rbind-Mounts ohne Auswirkung auf den ursprünglichen Mount

Gefragt amServerfehlerhat aber nicht genug Aufmerksamkeit bekommen, deshalb habe ich es hier noch einmal gepostet, in der Hoffnung, dass einige Leute hier die Antwort wissen.

Es gibt einen anderenFrageDiskussion über das Umounten von Rbind-Mounts, aber die Lösung hat unerwünschte Auswirkungen. Betrachten Sie das folgende Verzeichnislayout:

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

Jetzt binde ich C_diran B_dir/mount_cund führe eine erneute Bindung B_dirdurch an 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

Now umount A_dir/mount_bschlägt fehl, was nicht überraschend ist. Den Antworten überall im Web zufolge müssen wir umount A_dir/mount_b/mount_czuerst then ausführen umount A_dir/mount_b. Allerdings umount A_dir/mount_b/mount_cwird auch unmount ausgeführt B_dir/mount_c, was unerwünscht ist:

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

Meine Frage ist nun, wie ich die Bereitstellung aufhebe , A_dir/mount_bohne dass B_diretwas davon betroffen ist, d. h. es besteht weiterhin eine Bindung B_dir/mount_can C_dir?

EDIT: Dieses Problem scheint bei Ubuntu nicht aufzutreten. Genauer gesagt funktioniert es bei meinem Ubuntu 14.04 einwandfrei, aber nicht bei Fedora 23 und CentOS 7. Warum gibt es diesen Unterschied und wie lässt sich das Problem bei Fedora und CentOS umgehen?

EDIT: einige weitere Informationen zum eigentlichen Problem, das ich zu lösen versuche. Ich habe versucht, eine Sandbox zu erstellen und habe und in die Sandbox --rbindeingebunden . Beim Zerstören der Sandbox scheint es, als ob ich sie nicht sauber zerstören kann, da das Unmounten in FC23 und CentOS7 zu einem Unmounten führt , wonach meine Shell- und SSH-Verbindungen hängen bleiben und ich die Maschine neu starten muss. Deshalb frage ich, ob es eine Möglichkeit gibt, die --rbind-Mounts zu unmounten, ohne Submounts zu beeinträchtigen./dev/proc<sandbox-root>/dev/pts/dev/pts

Antwort1

Ich habe die Lösung selbst gefunden. Ich muss einfach nur verwenden, --make-rslavedamit Änderungen A_dir/mount_bnicht an Folgendes weitergegeben werden B_dir:

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

SehenmontierenManpage-AbschnittDie gemeinsamen Teilbaumoperationen.

verwandte Informationen