将 iocage 及其所有 jail 从一个 ZFS 池移动到另一个 ZFS 池的过程是什么?
我已尝试过此帖子中的过程:https://www.ixsystems.com/community/threads/how-to-move-jails-between-pools.72593/post-502840
即iocage export
每个监狱,激活新池,然后iocage import
。这是不成功的:
$ iocage start syncthing
No default gateway found for ipv6.
* Starting syncthing
+ Started OK
+ Using devfs_ruleset: 6
+ Configuring VNET FAILED
jexec: execvp: ifconfig: No such file or directory
jexec: execvp: ifconfig: No such file or directory
Stopped syncthing due to VNET failure
FreeNAS 11.3
答案1
要将 iocage 从 移动/mnt/OLD/iocage
到/mnt/NEW/iocage
:
出口监狱
iocage stop JAILNAME
iocage export JAILNAME
这将创建一个日期.zip
的监狱/mnt/OLD/iocage/images
。
设置新池
使用 FreeNAS jails GUI 或iocage activate /mnt/NEW
在新池上激活 iocage。确保新激活具有 jail 使用的 iocage 版本。使用
iocage fetch
安装它们。查看每个 jailfstab
以了解其预期的版本。
进口监狱
将导出的 jail .zip 复制到 iocage 将查找它们的位置:
cp /mnt/OLD/iocage/images/* /mnt/NEW/iocage/images
进口:
iocage import JAILNAME
请注意,这是监狱名称,而不是 zip 的文件名。
修复挂载点和 fstab
jail 中的任何挂载点(尤其是 iocage 提供的挂载点)都将指向/mnt/OLD
并导致 jail 无法启动,并出现问题中的 VNET 错误。这些必须手动修复。
根据需要编辑/mnt/NEW/iocage/jails/JAILNAME/fstab
并替换 的实例。对于简单的 jails,vi 中的操作即可。/mnt/OLD
/mnt/NEW
:%s/OLD/NEW/g
例如,Syncthing 插件创建的前三行fstab
如下所示:
/mnt/OLD/iocage/releases/11.3-RELEASE/root/bin /mnt/OLD/iocage/jails/syncthing/root/bin nullfs ro 0 0 # Added by iocage on 2020-04-17 00:16:34
/mnt/OLD/iocage/releases/11.3-RELEASE/root/boot /mnt/OLD/iocage/jails/syncthing/root/boot nullfs ro 0 0 # Added by iocage on 2020-04-17 00:16:35
/mnt/OLD/iocage/releases/11.3-RELEASE/root/lib /mnt/OLD/iocage/jails/syncthing/root/lib nullfs ro 0 0 # Added by iocage on 2020-04-17 00:16:35
每个都/mnt/OLD
需要替换为/mnt/NEW
。
完毕
iocage start JAILNAME