Interrogé sur une erreur de serveur mais n'a pas reçu suffisamment d'attention, donc republié ici, avec l'espoir que certaines personnes ici connaissent la réponse.
Il y a une autre question sur le démontage des montages rbind, mais la solution a un effet indésirable. Considérez la disposition de répertoire suivante:
.
├── A_dir
│ └── mount_b
├── B_dir
│ └── mount_c
└── C_dir
Maintenant , je lie C_dir
à B_dir/mount_c
et 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
Maintenant umount A_dir/mount_b
échouera, ce qui n'est pas surprenant. Selon les réponses partout sur le Web, nous devons d' umount A_dir/mount_b/mount_c
abord d' abord umount A_dir/mount_b
. Cependant, umount A_dir/mount_b/mount_c
sera également démonté B_dir/mount_c
, ce qui n'est pas souhaité:
[hidden]$ sudo umount A_dir/mount_b/mount_c
[hidden]$ mount | grep _dir | wc -l
1
Maintenant, ma question est, comment puis-je démonter A_dir/mount_b
mais en laissant B_dir
inchangé, c'est-à-dire qu'il y a toujours un lien B_dir/mount_c
avec C_dir
?
EDIT: ce problème ne semble pas apparaître dans Ubuntu. Plus précisément, cela fonctionne bien sur mon Ubuntu 14.04 mais ne fonctionne pas sur Fedora 23 et CentOS 7. Pourquoi y a-t-il une différence et quel est le problème pour Fedora et CentOS?
EDIT: quelques informations supplémentaires sur le problème réel que j'essaie de résoudre. J'ai essayé de créer un bac à sable et j'ai utilisé --rbind
pour monter le /dev
et /proc
sur le bac à sable. Lors de la destruction du bac à sable, il semble que je ne puisse pas le détruire proprement car le <sandbox-root>/dev/pts
démontage dans FC23 et CentOS7 se démontera /dev/pts
, après quoi mes connexions shell et SSH se bloqueront et je devrai redémarrer la machine. C'est pourquoi je demande s'il existe un moyen de démonter les montages --rbind sans affecter les sous-montages.
la source
Réponses:
J'ai trouvé la solution moi-même. J'ai simplement besoin d'utiliser
--make-rslave
pour apporter des modifications àA_dir/mount_b
ne pas se propager versB_dir
:Voir la section de la page de manuel mount Les opérations de sous-arborescence partagées .
la source
mount --rbind src target --make-rslave
en un seul appel; certains systèmes interdisaient cela pour moi.