第 6 章 完成自定义后的任务

要完成自定义配置,请执行以下任务:

  • 创建 product.img 文件(仅适用于图形化定制)。
  • 创建自定义引导镜像。

这部分提供有关如何创建 product.img 镜像文件以及创建自定义引导镜像的信息。

6.1. 创建 product.img 文件

product.img 镜像文件是包含新安装程序文件的存档文件,这些安装程序文可在运行时取代现有的安装程序文件。

在系统启动期间,Anaconda 将从引导介质上的 images/ 目录中加载 product.img 文件。然后,它会使用此目录中的文件替换安装程序文件系统中同名的文件。替换时的文件会自定义安装程序(例如,将默认镜像替换为自定义镜像)。

注意: product.img 镜像必须包含与安装程序相同的目录结构。有关安装程序目录结构的更多信息,请参阅下表。

表 6.1. 安装程序目录结构和自定义内容

自定义内容类型文件系统位置

Pixmaps(logo、sidebar、top bar 等)

/usr/share/anaconda/pixmaps/

GUI 风格表

/usr/share/anaconda/anaconda-gtk.css

Anaconda 附加组件

/usr/share/anaconda/addons/

产品配置文件

/etc/anaconda/product.d/

自定义配置文件

/etc/anaconda/conf.d/

Anaconda DBus 服务配置文件

/usr/share/anaconda/dbus/confs/

Anaconda DBus 服务文件

/usr/share/anaconda/dbus/services/

以下流程解释了如何创建 product.img 文件。

流程

  1. 导航到工作目录,如 /tmp ,创建名为 product/ 的子目录:

    $ cd /tmp
  2. 创建一个子目录 product/

    $ mkdir product/
  3. 创建一个与您要替换的文件位置相同的目录结构。例如,如果要测试安装系统上 /usr/share/anaconda/addons 目录中的附加组件,请在您的工作目录中创建同样的结构:

    $ mkdir -p product/usr/share/anaconda/addons
    注意

    要查看安装程序的运行时文件,请引导安装并切换到虚拟控制台 1 (Ctrl+Alt+F1),然后切换到第二个 tmux 窗口(Ctrl+b+2)。可用来浏览文件系统打开的 shell 提示符。

  4. 将自定义文件(在这个示例中, Anaconda 的自定义附加组件)放在新创建的目录中:

    $ cp -r ~/path/to/custom/addon/ product/usr/share/anaconda/addons/
  5. 重复步骤 3 和 4(为您要添加到安装程序的每个文件创建目录结构并将自定义文件放在其中)。
  6. 在目录的根目录中创建一个 .buildstamp 文件。.buildstamp 文件描述了系统版本、产品和其他几个参数。以下是 Red Hat Enterprise Linux 8.4 中的 .buildstamp 文件示例:

    [Main]
    Product=Red Hat Enterprise Linux
    Version=8.4
    BugURL=https://bugzilla.redhat.com/
    IsFinal=True
    UUID=202007011344.x86_64
    [Compose]
    Lorax=28.14.49-1

    IsFinal 参数指定镜像是否是产品的发行版本(GA)版本(True),还是预发布,如 Alpha、Beta 版还是一个内部里程碑(False)。

  7. 进到 product/ 目录,创建 product.img 归档文件:

    $ cd product
    $ find . | cpio -c -o | gzip -9cv > ../product.img

    这会在 product/ 目录的上一级目录中创建 product.img 文件。

  8. product.img 文件移到提取的 ISO 映像的 images/ 目录。

现在 product.img 文件已创建好,您要做的自定义内容被放在各自的目录中。

注意

您可以把这个文件放在不同的地方,而不是在引导介质上添加 product.img 文件,并在引导菜单中使用 inst.updates= 引导选项加载它,。在这种情况下,只要可以从安装系统访问该位置,镜像文件可以是任何名称,并可放在任意位置(USB 闪存驱动器、硬盘、HTTP、FTP 或者 NFS 服务器)。

有关 Anaconda 引导选项的详情请参考 Anaconda 引导选项。