FreeBSD-11 EZJail 安装失败 tar 无法 chdir

FreeBSD-11 EZJail install fails with tar unable to chdir

在 FreeBSD-11.1 主机上,我使用以下命令删除了现有的 ezjail 安装:

pkg remove ezjail
rm -rf /usr/local/etc/ezjail.conf
rm -rf /usr/local/etc/ezjail
chflags -R noschg /usr/jails
rm -rf /usr/jails
zfs destroy -r zroot/ezjail

我还检查了 /etc/fstab.* 并找到了 none。

然后我使用 pkg 重新安装了 ezjail 并重新创建了 zfs ezjail 分区:

zfs create -p zroot/ezjail

我还修改了 /usr/local/etc/ezjail.conf 以使用 zfs:

ezjail_use_zfs="YES"
ezjail_use_zfs_for_jails="YES"
ezjail_jailzfs="zroot/ezjail"

但是,当我 运行 ezjail-admin install 我得到这个错误:

ezjail-admin install
base.txz                                      100% of   99 MB  621 kBps 02m45s
tar: could not chdir to '/usr/jails/fulljail'

ll /usr/jails
total 0

ll /usr/local/etc/ezjail
total 0

zfs list | grep jail
zroot/ezjail              176K   883G    88K  /zroot/ezjail
zroot/ezjail/fulljail      88K   883G    88K  /zroot/ezjail/fulljail

发生了什么,我该如何解决?

您似乎错过了游泳池的 mountpoint,请尝试以下方法:

# zfs create -o mountpoint=/usr/jails zpool/jails

查看此 quick setup 指南作为参考。

这个问题的出现是因为 ezjail 在这个系统上的初始安装没有使用 zfs。因此,目录 /usr/jails/fulljail/usr/jails/newjail 是在 zroot/usr 数据集上创建的。当我将 ezjail 转移到 zfs 时,我没有意识到这已经发生了。 zpool/usr 中这两个目录的存在与挂载点 /usr/jails.

下的 zroot/ezjail 中的相同目录不知何故存在冲突

这种情况是在我销毁 zroot/ezjail 准备全新安装 ezjail 后才发现的。我的解决方案是在重新安装 ezjail 并在 /usr/local/etc/ezjail.conf 中启用 zfs 之前从 zroot/usr 中删除这些目录和整个 /usr/jail 目录树。

为了减轻这一切的痛苦,我首先制作了监狱的存档,并在 ezjail 重新安装后从存档中重新创建它。