Freebsd

如何將 iocage 監獄從一個 ZFS 池移動到另一個?

  • January 12, 2021

將 iocage 及其所有監獄從一個 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

要將 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。確保新啟動具有監獄使用的 iocage 版本。用於 iocage fetch安裝它們。查看每個監獄fstab以查看它期望的版本。

導入監獄

將導出的 jail .zip 複製到 iocage 查找它們的位置:

cp /mnt/OLD/iocage/images/* /mnt/NEW/iocage/images

進口:

iocage import JAILNAME

請注意,它是監獄名稱,而不是 zip 的文件名。

修復掛載點和 fstab

監獄中的任何掛載點,尤其是 iocage 提供的掛載點,都將指向/mnt/OLD並導致監獄無法以問題中的 VNET 錯誤啟動。這些必須手動修復。

根據需要編輯/mnt/NEW/iocage/jails/JAILNAME/fstab和替換/mnt/OLDwith/mnt/NEW的實例。:%s/OLD/NEW/g因為vi 中的簡單監獄可以解決問題。

例如,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

引用自:https://serverfault.com/questions/1017540