如何升级FreeBSD Jail(操作系统级虚拟化)

时间:2020-01-09 10:39:49  来源:igfitidea点击:

问题描述:Ive FreeBSD Jail已按照使用make world选项的手册页中的说明进行了配置。
现在,我已经将我的基本FreeBSD 7.0系统升级到FreeBSD 7补丁程序级别4。
如何升级我的Jail(FreeBSD VPS),以便使所有内容都在 Jail中得到更新?

解决方法:FreeBSD Jail机制是操作系统级虚拟化的一种实现,它允许管理员将基于FreeBSD的计算机系统划分为几个独立的微型系统,称为" Jail"。

FreeBSD Jail提供安全性,易于委派和操作系统级别的虚拟化。
要使用make world升级您的 Jail,请使用以下命令。

步骤1:建立世界

请按照此教程升级正在运行的系统。
完成后,执行以下命令来构建 Jail世界:

警告!有多种创建和升级 Jail的方法。
此方法使用make world升级方法,因为使用make build本身创建了原始 Jail。

# JAIL=/path/to/jail

或者

# JAIL=/usr/home/jail/192.168.1.10
# cd /usr/src
# make buildworld DESTDIR=$JAIL

请注意,如果您以前刚刚完成过buildworld,则可以进行installworld并节省时间。

步骤2:停止 Jail服务

执行以下命令以停止所有 Jail:

# /etc/rc.d/jail stop

步骤3:升级 Jail

执行以下命令以停止所有 Jail:

# cd /usr/src
# make installworld DESTDIR=$JAIL
# mergemaster -i -C -D $JAIL

如果您有多个 Jail,请重复上述步骤。
您也可以尝试以下操作:

# JPATHS="/jail/path1 /jail/path2 /jail/path3"
# for j in $JPATHS; make installworld DESTDIR=$j; done

步骤4:启动所有 Jail

执行以下命令:

# /etc/rc.d/jail start

确保一切都在运行:

# jls

尝试从主机本身连接到名为www.example.com的 Jail,其 JailID为20:

# jexec 20 sh
# hostname
# sockstat

尝试在 Jail中升级FreeBSD端口:

# portsnap fetch update
# portversion -l '

从 Jail退出并返回主机:

# exit