Размонтируйте rbind-монтирование, не затрагивая оригинальное монтирование

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

.
├── 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?

Благодарю.

1 ответ

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

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

mount --make-rprivate A_dir
umount -R A_dir

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

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

Другие вопросы по тегам