如何挂载主机系统的目录以在 FreeBSD jail 中使用?

use*_*825 6 freebsd chroot jails directory mount

我在 FreeBSD 9.0-STABLE 上执行以下操作:

mount_nullfs /foo /jail/foo
Run Code Online (Sandbox Code Playgroud)

在此之后,从主机系统中,安装工程。所以这有效:

touch /foo/bar && ls /jail/foo/bar
Run Code Online (Sandbox Code Playgroud)

但是当我进入监狱时,挂载的目录是空的:

jexec 1 tcsh
ls /foo/bar
Run Code Online (Sandbox Code Playgroud)

我得到:

ls: /foo/bar: No such file or directory
Run Code Online (Sandbox Code Playgroud)

/foo 完全是空的。

当在主机系统中找到的 chroot 中挂载时,如何让挂载目录中的文件正确显示?

use*_*825 3

我刚刚发现我已经挂载到了一个目录,该目录本身已经被反弹(通过 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
Run Code Online (Sandbox Code Playgroud)

除了令人困惑之外,这显然是不支持/错误的。

我像这样更改了它(注意最后一行中的路径):

/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
Run Code Online (Sandbox Code Playgroud)

现在安装无需任何额外设置即可工作。