使用 lorax 创建引导文件(boot.iso)

发布时间 2023-08-23 11:23:47作者: 一只小麻瓜

简介:

Red Hat Enterprise Linux 的安装系统是由一个名为 lorax 的工具创建的。

lorax 工具用于创建 Anaconda 安装程序boot.iso如 以及基本的发布树和 .treeinfo 元数据文件。其依赖关系 相当轻量级,因为它需要能够在模拟 chroot 中运行 环境。

最好从与目标相同的版本运行 lorax 因为模板中可能包含发布特定的逻辑.

lorax 工具还可用于创建您自己的安装介质,例如包含更新的内核或其他软件包。

使用方法:

[root@wangwu lorax-result]# dnf install -y lorax
[root@wangwu lorax-result]# lorax -h
usage: lorax [-h] -p PRODUCT -v VERSION -r RELEASE [-s REPOSITORY]
             [--repo REPOSITORY] [-m REPOSITORY] [-t VARIANT] [-b URL]
             [--isfinal] [-c CONFIGFILE] [--proxy HOST] [-i PACKAGE]
             [-e PACKAGE] [--buildarch ARCH] [--volid VOLID] [--macboot]
             [--nomacboot] [--noupgrade] [--logfile LOGFILE] [--tmp TMP]
             [--cachedir CACHEDIR] [--workdir WORKDIR] [--force]
             [--add-template ADD_TEMPLATES]
             [--add-template-var ADD_TEMPLATE_VARS]
             [--add-arch-template ADD_ARCH_TEMPLATES]
             [--add-arch-template-var ADD_ARCH_TEMPLATE_VARS] [--noverify]
             [--sharedir SHAREDIR] [--enablerepo [repo]]
             [--disablerepo [repo]] [--rootfs-size ROOTFS_SIZE]
             [--noverifyssl] [--skip-branding] [--squashfs-only]
             [--dracut-arg DRACUT_ARGS] [-V]
             OUTPUTDIR

Create the Anaconda boot.iso
....

 

以 root 身份运行以下命令后,目录中将存在一个名为的安装映像。

lorax -p CentOS Linux -v 8 -r 8 --isfinal --nomacboot --buildarch x86_64 \
-s https://mirrors.tuna.tsinghua.edu.cn/centos/8-stream/BaseOS/x86_64/os/ \
-s https://mirrors.tuna.tsinghua.edu.cn/centos/8-stream/AppStream/x86_64/os/ \
/home/lorax-result/ret 

工作原理

Lorax 使用 dnf 安装 打包到一个临时目录中,设置配置文件,然后 删除不需要的文件以节省空间,并创建一个 文件。然后使用通用的 initramfs 构建 iso,并且内核来自 选定的存储库。

为了推动这些过程,Lorax 使用基于 Mako 的自定义模板系统 添加自定义的模板 命令(记录在 中)。它支持块以及标签内的自由格式 Python 代码和 .默认模板为 随附 lorax 并使用扩展。

默认路径:/usr/share/lorax/templates.d/*.tmpl

runtime-install.tmpl

该模板列出了要使用命令安装的包。这个模板相当简单,安装通用软件包和 特定于体系结构的包。它必须以告诉 dnf 下载并安装软件包的命令结尾。

runtime-postinstall.tmpl

模板是系统配置的位置 发生。安装程序环境类似于正常运行的系统,但 需要一些特殊处理。配置文件被设置,systemd 被告知 启动 anaconda.target 而不是默认的系统目标,以及许多 不需要的服务被禁用,其中一些可能会干扰 安装

runtime-cleanup.tmpl

该模板用于删除非严格需要的文件 由安装环境。除了它使用的模板命令外

 

自定义模板

来自 lorax-generic -templates 包的默认模板和配置文件集 在目录中提供。您可以 复制它们并将它们放入下的另一个目录中,如果它们的排序顺序低于所有其他目录,则将使用它们。这 允许多个包在没有冲突的情况下发布 lorax 模板.你可以(并且可能 应该) 通过传递给 LoRax 来选择特定的模板目录。/usr/share/lorax/templates.d/99-generic/templates.d --sharedir

 

更多详细介绍请访问官网:Lorax — Lorax 28.14.58 documentation (weldr.io)