进入chroot时,有时需要使用-rbind而不是-bind挂载/ sys和/ dev,以确保当有人看时一切都位于正确的位置。
卸载时出现问题。
一个简单的卸载总是失败;在儿童也被安装的情况下,它似乎正在使用中:
$ 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)
也许解决方案是执行懒惰的卸载,但这对我来说似乎很危险。
有没有更好的方法可以做到这一点,我错过了吗?
如果您仔细查看我的grep命令(用于为umount创建xargs),我只会向其发送/ proc / mounts
—
natecornell 2014年
/mnt/chroot/sys/kernel/security
在那个时候安装了吗?输出是grep /sys/kernel/security /proc/mounts
什么?umount
不需要将其参数列在中/etc/mtab
。如果通过它-n
,它将根本不会打开文件。