Jail升级
Jail升级可以确保隔离环境保持安全以及最新的功能和性能提升。
升级经典Jail或使用OpenZFS Snapshots的Thin Jail
Jails必须从host主机操作系统发起升级
FreeBSD的默认特性不允许在一个Jail内部使用 chflags
,这样可以避免在jail内部执行升级失败时更新一些文件。
备注
目前我使用NullFS Jail,所以这段暂时记录待后续实践
在 host 上执行以下命令更新到FreeBSD运行的最新patch:
更新名为classic的经典Jail
freebsd-update -j classic fetch install
service jail restart classic
在更新jail的主版本或从版本之前,需要先完成host主机的版本升级 FreeBSD更新和升级
在host主机上升级
13.1-RELEASE
到13.2-RELEASE
:
升级jail的RELEASE版本
freebsd-update -j classic -r 13.2-RELEASE upgrade
freebsd-update -j classic install
service jail restart classic
freebsd-update -j classic install
service jail restart classic
在完成了主版本升级之后,需要重新安装jail中的软件包并重启jail:
升级jail软件包
pkg -j jailname upgrade -f
service jail restart jailname
升级使用NullFS的Thin Jail
备注
我在 docs.cloud-atlas.dev: VNET + Thin Jail 上构建的使用NullFS的Thin Jail。使用本段方法进行更新
由于NullFS Jail共享了系统目录,所以非常容易更新。只需要更新模版就能够完成,会立即对所有NullFS Jail同步更新。
在host上 执行以下命令更新FreeBSD的模版补丁:
更新NullFS的Jail模版
export jail_zfs="zdata/jails"
export release_old=14.2
export release_new=14.3
freebsd-update -b /$jail_zfs/templates/$release_old-RELEASE-base/ fetch install
service jail restart
在更新jail的主版本或从版本之前,需要先完成host主机的版本升级 FreeBSD更新和升级
在host上 执行以下命令将Jail的模版从
14.2-RELEASE
升级到14.3-RELEASE
:
升级NullFS的Jail模版的RELEASE
export jail_zfs="zdata/jails"
export release_old=14.2
export release_new=14.3
freebsd-update -b /$jail_zfs/templates/$release_old-RELEASE-base/ -r $release_new-RELEASE upgrade
freebsd-update -b /$jail_zfs/templates/$release_old-RELEASE-base/ install
service jail restart
freebsd-update -b /$jail_zfs/templates/$release_old-RELEASE-base/ install
service jail restart