11.2 更新 Jail

如果需要同时管理多个 jail,那么在更新 jail 时就需要对每个 jail 分别执行一次更新操作。通过建立统一的模板,可以使所有 jail 共用同一个基础环境,同时各自拥有独立的可写空间,互不干扰。

本文将建立如下目录结构:

  • /jail/mroot 是模板目录,是所有 jail 共用的只读部分,在本例中将被挂载到 /jail/www

  • /jail/skel 是框架目录,用于方便创建 jail,本身不直接供任何 jail 使用。

  • /jail/www 是 jail www 运行的根目录,也是只读模板的挂载点,本身是个空目录。

  • /jail/www/s 是 jail www 的可写部分的挂载点,也是个空目录。

  • /jail/files/www 是 jail www 的可写部分的实际存放位置,将被挂载到 /jail/www/s

如果需要创建多个 jail,则只需重复创建数据目录和项目目录,这样所有 jail 都可以共用 /jail/mroot

安装 cpdup 工具

  • 使用 pkg 安装

# pkg install cpdup
  • 使用 Ports 安装:

# cd /usr/ports/sysutils/cpdup/ 
# make install clean

创建框架目录结构

# mkdir -p /jail/mroot    # 创建所需 jail 路径
# 然后放入基本目录
# 将 ports 和源码放入模板
# git clone --filter=tree:0 https://mirrors.ustc.edu.cn/freebsd-ports/ports.git /jail/mroot/usr/ports    # 拉取 freebsd-ports Git 
# cpdup /usr/src /jail/mroot/usr/src # 需要提前获取源码,且要注意源码对应的版本要与 /jail/mroot 的版本相同

将可写部分连接到可写目录位置

创建框架目录

使用 etcupdate 同步系统配置文件:

设置 Port 构建工作目录前缀:

创建数据目录

该步骤用于复制一份框架目录作为数据目录。

创建项目目录

创建 fstab 文件

编辑 /jail/www.fstab 文件:

jail.conf 文件配置示例

最后更新于

这有帮助吗?