我在 FreeBSD 9.0-STABLE 上执行以下操作:
mount_nullfs /foo /jail/foo
之后,从之内主机系统,安装工作。所以这有效:
touch /foo/bar && ls /jail/foo/bar
但是当我切换到监狱时,安装的目录是空的:
jexec 1 tcsh
ls /foo/bar
我得到:
ls: /foo/bar: No such file or directory
/foo
完全是空的。
当挂载到主机系统中的 chroot 内时,如何才能正确显示挂载目录中的文件?
答案1
我刚刚发现我已经挂载到了一个目录,该目录本身已经被反弹(通过 nullfs 挂载)。
/var/data/home/j/mroot on /var/data/home/j/www
/var/data/home/js/www on /var/data/home/j/www/s
/foo on /var/data/home/js/www/foo
除了令人困惑之外,这显然是不支持/错误的。
我像这样更改了它(注意最后一行中的路径):
/var/data/home/j/mroot on /var/data/home/j/www
/var/data/home/js/www on /var/data/home/j/www/s
/foo on /var/data/home/j/www/s/foo
现在安装无需任何额外设置即可工作。