Рекурсивные umount после rbind монтируются

Уф, не настолько плохо, в конце концов. При записи здесь для потомства, и в следующий раз я делаю это.

  1. править make.conf, добавьте строку: PORTAGE_BINHOST="http://tinderbox.dev.gentoo.org/default-linux/amd64/"
  2. синхронизируйте новый repo: emerge --sync
  3. установите версию двоичных файлов: emerge -av --binpkgonly --usepkgonly dev-libs/mpc
  4. скомпилируйте исходную версию: emerge -av dev-libs/mpc
13
21.03.2014, 19:43
4 ответа

] Благодарность Жилю за этот ответ; Жиль отметил в комментариях к вопросу, что переключатель '-n' игнорирует mtab и размонтирует все, что указано в / proc / mounts.

Из справочной страницы:

-n     Unmount without writing in /etc/mtab.

Итак, чтобы ответить на мой вопрос о том, как распутать --rbind mount, вот полная команда, которая сработала для меня:

grep /mnt/chroot/sys /proc/mounts | cut -f2 -d" " | sort -r | xargs umount -n

Merci, Gilles!

10
27.01.2020, 19:52

Спасибо за это. Я использую это в своих сценариях для размонтирования всего дерева chroot: (Убедитесь, что вы установили $ MNT соответствующим образом)

for dir in $(grep "$MNT" /proc/mounts | cut -f2 -d" " | sort -r)
do
    umount $dir 2> /dev/null
    (( $? )) && umount -n $dir
done
0
27.01.2020, 19:52

Начиная с util-linux v2.23 (25 апреля 2013 г.), команда umount поддерживает параметр -R, --recursive .

Вот что написано на странице руководства:

Рекурсивно размонтировать каждый указанный каталог. Рекурсия для каждого каталога будет остановлена, если какая-либо операция размонтирования в цепочке завершится неудачно по какой-либо причине. Связь между точками монтирования определяется записями / proc / self / mountinfo . Файловая система должна быть указана путем указания пути к точке монтирования; рекурсивное отключение по имени устройства (или UUID) не поддерживается.

3
27.01.2020, 19:52

У меня это сработало правильно--https://unix.stackexchange.com/a/264488/4319:

mount --rbind /dev /mnt/test
mount --make-rslave /mnt/test
umount -R /mnt/test

Было важно иметь две первые команды, так как две отдельные команды :не объединяют --rbindи --make-rslaveв одном вызове mount.

Без --make-rslaveповедение было нежелательным (и не успешным):

  • umount -lповлияет и на исходные старые точки монтирования,
  • На
  • и umount -Rбудут влиять занятые (открытые )файлы под исходными старыми точками монтирования. (Очень неожиданно...)
21
27.01.2020, 19:52

Теги

Похожие вопросы