Демонтуйте кріплення на задницю, не впливаючи на оригінальне кріплення


11

Запитали на сервер за замовчуванням, але не приділяли достатньої уваги, тому репостували тут, сподіваючись, що деякі люди знають відповідь.

Існує ще одне питання, що обговорює питання про зарахування кріплення 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?

EDIT: ця проблема, схоже, не з’являється в Ubuntu. Більш конкретно, він працює чудово на моєму Ubuntu 14.04, але не працює на Fedora 23 і CentOS 7. Чому є різниця і в чому полягає робота Fedora та CentOS?

EDIT: ще трохи інформації про актуальну проблему, яку я намагаюся вирішити. Я спробував створити пісочницю і використовувався --rbindдля монтажу /devі /procдо пісочниці. Знищуючи пісочницю, здається, я не можу її чисто знищити, оскільки відключення <sandbox-root>/dev/ptsв FC23 і CentOS7 відключить /dev/pts, після чого мої з'єднання оболонки та SSH зависають, і мені доведеться перезавантажити машину. Ось чому я запитую, чи є спосіб відключити кріплення --rbind, не впливаючи на підмножини.


Цю проблему також піднімали на сайті bugs.launchpad.net/ubuntu/+source/util-linux/+bug/759394
imz - Іван Захарящев

Відповіді:


9

Я знайшов рішення сам. Мені просто потрібно скористатися, --make-rslaveщоб внести будь-які зміни, а A_dir/mount_bне повернутися до B_dir:

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

Див. Розділ сторінки монтування на розділі Спільні операції з піддією .


1
У деяких системах можна навіть об'єднати mount --rbind src target --make-rslaveв один дзвінок; деякі системи, які забороняють це робити для мене.
imz - Іван Захарящев
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.