5.3. 支持对配置文件的镜像自定义
您可以使用 TOML 或 JSON 格式的构建配置文件为生成的磁盘镜像添加自定义。容器目录将配置文件映射到 /config.toml。自定义对象定义镜像修改。
另外,您可以将构建配置文件作为 config.json 或 config.toml 嵌入到 /usr/lib/bootc-image-builder 目录中。系统使用这些默认自定义,除非被显式覆盖。对于 JSON 格式,您可以在使用 --config 参数时,也可以使用 stdin 来传递配置。
- 用户自定义
将用户添加到磁盘镜像,并可选择设置一个 SSH 密钥。本节的所有字段都是可选的,但
name除外。Expand TOML JSON [[customizations.user]] name = "user" password = "password" key = "ssh-rsa AAA ... user@email.com" groups = ["wheel"]{ "customizations": { "user": [ { "name": "user", "password": "password", "key": "ssh-rsa AAA ... user@email.com", "groups": [ "wheel", "admins" ] } ] } }- 内核配置
您可以在配置文件中自定义内核引导参数。
Expand TOML JSON [customizations.kernel] name = "kernel-debug" append = "nosmt=force"{ "customizations": { "kernel": { "append": "mitigations=auto,nosmt" } } }- 文件系统配置
您可以使用自定义的文件系统部分来设置基础分区(如
/和/boot)的最小大小,并在/var下创建带有挂载点的额外的分区。Expand TOML JSON [[customizations.filesystem]] mountpoint = "/" minsize = "10 GiB" [[customizations.filesystem]] mountpoint = "/var/data" minsize = "20 GiB"{ "customizations": { "filesystem": [ { "mountpoint": "/", "minsize": "10 GiB" }, { "mountpoint": "/var/data", "minsize": "20 GiB" } ] } }- 与 rootfs 交互的文件系统类型
root 文件系统类型(
--rootfs)参数会覆盖源容器中的默认值。它还为ext4、xfs和btrfs类型的所有其它挂载点设置文件系统类型。对于支持的挂载点和大小,会应用以下限制和规则,除非
rootfs是btrfs:-
您可以指定
/来设置根文件系统的最小大小。挂载在引导的系统上/sysroot处的文件系统的最终大小与您在此配置中指定的值相同,或是基础容器大小的 2 倍,以较大者为准。 -
您可以指定
/boot来设置引导分区的最小大小。您还可以指定/var的子目录,但不能在/var中指定符号链接。例如:/var/home和/var/run是符号链接,不能单独作为文件系统。 -
/var本身不能是一个挂载点。rootfs选项定义 root 文件系统的文件系统类型。 -
目前,不支持在构建期间创建
btrfs子卷。因此,如果rootfs是btrfs,则在/var下不支持自定义挂载点。您只能配置/和/boot。
-
您可以指定
- Anaconda ISO (安装程序)配置选项
创建一个包含您选择的安装命令的 Kickstart 文件。然后,在 ISO 构建中添加 Kickstart 文件,来创建一个完全自定义的和自动化的安装介质。
注意不支持以下组合自定义:
[customizations.user]和[customizations.installer.kickstart]。添加 Kickstart 时,请使用TOML格式的配置文件,因为多行字符串容易出错。Expand TOML JSON [customizations.installer.kickstart] contents = """ text --non-interactive zerombr clearpart --all --initlabel --disklabel=gpt autopart --noswap --type=lvm network --bootproto=dhcp --device=link --activate --onboot=on """{ "customizations": { "installer": { "kickstart": { "contents": "text --non-interactive\nzerombr\nclearpart --all --initlabel --disklabel=gpt\nautopart --noswap --type=lvm\nnetwork --bootproto=dhcp --device=link --activate --onboot=on" } } } }警告bootc-image-builder不会在容器镜像之外添加额外的 Kickstart 命令,系统会自动添加到容器镜像中。如需更多信息,请参阅 创建 Kickstart 文件。