
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_dir
an B_dir/mount_c
und führe eine erneute Bindung B_dir
durch 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_b
schlägt fehl, was nicht überraschend ist. Den Antworten überall im Web zufolge müssen wir umount A_dir/mount_b/mount_c
zuerst then ausführen umount A_dir/mount_b
. Allerdings umount A_dir/mount_b/mount_c
wird 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_b
ohne dass B_dir
etwas davon betroffen ist, d. h. es besteht weiterhin eine Bindung B_dir/mount_c
an 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 --rbind
eingebunden . 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-rslave
damit Änderungen A_dir/mount_b
nicht 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.