Назад | Перейти на главную страницу

Размонтируйте крепление rbind, не затрагивая исходное крепление

Есть еще одно вопрос обсуждают размонтирование креплений rbind, но это решение имеет нежелательный эффект. Рассмотрим следующий макет каталога:

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

Теперь связываю C_dir к B_dir/mount_c и 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

Сейчас umount A_dir/mount_b выйдет из строя, что неудивительно. Согласно ответам в Интернете, нам нужно umount A_dir/mount_b/mount_c будет первый umount A_dir/mount_b. Тем не мение, umount A_dir/mount_b/mount_c также будет демонтировать 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?

Спасибо.

Нашел. https://unix.stackexchange.com/a/276700/29483

Пытаться --make-rprivate:

mount --make-rprivate A_dir
umount -R A_dir

Примечание: разработчики systemd, которые установили описанное вами поведение как новое поведение по умолчанию, рекомендуют изначально не делать монтирование rbind приватным. Впрочем, это нормально сделать непосредственно перед размонтированием.

Это потому, что когда вы клонируете все средства передвижения, вы можете, например, затем нужно извлечь компакт-диск. Если он был смонтирован во время клонирования, включение распространения означает, что вам нужно запустить umount только в одном месте (например, за пределами монтирования rbind, как обычно), и тогда вы сможете его извлечь.