在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.*
,但没有发现。
然后,我使用pkg重新安装了ezjail,并重新创建了zfs-ezjall分区:
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
查看此快速设置指南作为参考。
出现此问题是因为该系统上最初安装的ezjail没有使用zfs。因此,在zroot/usr
数据集上创建了目录/usr/jails/fulljail
和/usr/jails/newjail
。当我把ezjail切换到zfs时,我没有意识到这已经发生了。不知何故,zpool/usr
中这两个目录的存在与其装载点/usr/jails
下的zroot/ezjail
中的相同目录相冲突。
这种情况是在我销毁zroot/ezjail
以准备干净安装ezjail之后才发现的。我的解决方案是从zroot/usr
中删除这些目录和整个/usr/jail
目录树,然后在/usr/local/etc/ezjail.conf
中启用zfs的情况下重新安装ezjail。
为了减轻这一切的痛苦,我首先制作了一个监狱档案,并在ezjail重新安装后从档案中重新创建了它。