5.3. 支持对配置文件的镜像自定义


您可以使用 TOMLJSON 格式的构建配置文件为生成的磁盘镜像添加自定义。容器目录将配置文件映射到 /config.toml。自定义对象定义镜像修改。

另外,您可以将构建配置文件作为 config.jsonconfig.toml 嵌入到 /usr/lib/bootc-image-builder 目录中。系统使用这些默认自定义,除非被显式覆盖。对于 JSON 格式,您可以在使用 --config 参数时,也可以使用 stdin 来传递配置。

用户自定义

将用户添加到磁盘镜像,并可选择设置一个 SSH 密钥。本节的所有字段都是可选的,但 name 除外。

Expand
TOMLJSON
[[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
TOMLJSON
[customizations.kernel]
name = "kernel-debug"
append = "nosmt=force"
{
  "customizations": {
    "kernel": {
      "append": "mitigations=auto,nosmt"
    }
  }
}
文件系统配置

您可以使用自定义的文件系统部分来设置基础分区(如 //boot)的最小大小,并在 /var 下创建带有挂载点的额外的分区。

Expand
TOMLJSON
[[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)参数会覆盖源容器中的默认值。它还为 ext4xfsbtrfs 类型的所有其它挂载点设置文件系统类型。

对于支持的挂载点和大小,会应用以下限制和规则,除非 rootfsbtrfs

  • 您可以指定 / 来设置根文件系统的最小大小。挂载在引导的系统上 /sysroot 处的文件系统的最终大小与您在此配置中指定的值相同,或是基础容器大小的 2 倍,以较大者为准。
  • 您可以指定 /boot 来设置引导分区的最小大小。您还可以指定 /var 的子目录,但不能在 /var 中指定符号链接。例如:/var/home/var/run 是符号链接,不能单独作为文件系统。
  • /var 本身不能是一个挂载点。rootfs 选项定义 root 文件系统的文件系统类型。
  • 目前,不支持在构建期间创建 btrfs 子卷。因此,如果 rootfsbtrfs,则在 /var 下不支持自定义挂载点。您只能配置 //boot
Anaconda ISO (安装程序)配置选项

创建一个包含您选择的安装命令的 Kickstart 文件。然后,在 ISO 构建中添加 Kickstart 文件,来创建一个完全自定义的和自动化的安装介质。

注意

不支持以下组合自定义:[customizations.user][customizations.installer.kickstart]。添加 Kickstart 时,请使用 TOML 格式的配置文件,因为多行字符串容易出错。

Expand
TOMLJSON
[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 文件

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部