Odmontuj mocowanie rbind bez wpływu na oryginalne mocowanie


11

Zapytany o błąd serwera, ale nie otrzymał wystarczającej uwagi, więc opublikowano go tutaj z nadzieją, że niektórzy ludzie znają odpowiedź.

Jest jeszcze jedno pytanie dotyczące umountowania mocowań rbind, ale rozwiązanie ma niepożądany efekt. Rozważ następujący układ katalogu:

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

Teraz wiążę C_dirsię B_dir/mount_ci rbind B_dirdo 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

Teraz umount A_dir/mount_bzawiedzie, co nie jest zaskakujące. Zgodnie z odpowiedziami wszędzie w sieci musimy umount A_dir/mount_b/mount_cnajpierw umount A_dir/mount_b. Jednak umount A_dir/mount_b/mount_crównież odmontuje B_dir/mount_c, co jest niepożądane:

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

Teraz moje pytanie brzmi, jak mogę odmontować A_dir/mount_bale pozostawiając B_dirnienaruszone, czyli nadal istnieje wiążą B_dir/mount_csię C_dir?

EDYCJA: ten problem nie pojawia się w Ubuntu. Mówiąc dokładniej, działa dobrze na moim Ubuntu 14.04, ale nie działa na Fedorze 23 i CentOS 7. Dlaczego jest taka różnica i na czym polega praca w Fedorze i CentOS?

EDYCJA: trochę więcej informacji na temat rzeczywistego problemu, który próbuję rozwiązać. Próbowałem stworzyć piaskownicę i użyłem --rbinddo zamontowania /devi /procdo piaskownicy. Podczas niszczenia piaskownicy wydaje się, że nie mogę go <sandbox-root>/dev/ptscałkowicie zniszczyć, ponieważ odmontowanie w FC23 i CentOS7 zostanie odmontowane /dev/pts, po czym zawiesią się moje połączenia shell i SSH i muszę ponownie uruchomić komputer. Dlatego pytam, czy istnieje sposób odmontowania montowań --rbind bez wpływu na submounty.


Ten problem został również poruszony
imz - Ivan Zakharyaschev

Odpowiedzi:


9

Sam znalazłem rozwiązanie. Po prostu muszę użyć, --make-rslaveaby wprowadzić wszelkie zmiany, które A_dir/mount_bnie będą propagowane z powrotem do B_dir:

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

Zobacz sekcję strony podręcznika montowania Operacje udostępnionego poddrzewa .


1
W niektórych systemach można nawet połączyć mount --rbind src target --make-rslavew jedno połączenie; niektóre systemy kiedyś mi to uniemożliwiały.
imz - Ivan Zakharyaschev
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.