При введенні chroot іноді доводиться монтувати / sys та / dev, використовуючи -rbind, а не -bind, щоб переконатися, що все в потрібному місці, коли хтось піде шукати.
Проблема виникає при відключенні.
Простий розум завжди провалюється; при встановленні дітей, як здається, він використовується:
$ umount /mnt/chroot/sys
umount: /mnt/chroot/sys: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
Ще одне можливе рішення - перерахувати кріплення від proc і прорахувати кожне з таких:
$ grep /mnt/chroot/sys /proc/mounts | cut -f2 -d" " | sort -r | xargs umount
Однак це також не вдається, оскільки рекурсивні кріплення фактично не зареєстровані в mtab:
/mnt/chroot/sys/kernel/security is not mounted (according to mtab)
Можливо, рішення полягає в тому, щоб виконати лінивий склад, але це здається мені досить небезпечним.
Чи є кращий спосіб зробити це, що я пропустив?
/mnt/chroot/sys/kernel/security
встановлено в цій точці? Який вихідgrep /sys/kernel/security /proc/mounts
?umount
не потрібно, щоб його аргумент було вказано в/etc/mtab
. Якщо ви передасте його-n
, він взагалі не відкриє файл.