BOOTC-INSTALL-CONFIG(5)
π BOOTC-INSTALL-CONFIG(5) π
okay bestie, so this is the manual page for bootc-install-config.toml β it lives in section 5 of the File Formats Manual, and it's literally the cheat sheet for how you customize your bootc install. grab a strawberry π and let's get into it.
β¨ NAME β¨
bootc-install-config.toml β no cap, that's the whole vibe of the name.
πΈ DESCRIPTION πΈ
So like. The bootc install process supports customization through TOML drop-in files, and they hang out in these directories:
/usr/lib/bootc/install/usr/local/lib/bootc/install/etc/bootc/install/run/bootc/install
If the same filename shows up in multiple of these directories, the file in the later directory in that list wins β it takes precedence, periodt. Then the selected files get processed in alphanumerical filename order.
Fragments whose match_architectures includes the current architecture β or which just don't have that field at all β are merged. And values like the root filesystem type get overridden when a later fragment specifies them. But kargs and karg-deletes lists? Those get appended, not replaced. π
The individual files all merge into one single final installation config. That's the whole point: it's supported for, like, a container base image to provide a default root filesystem type, and then that can be overridden in a derived container image. iconic behavior honestly.
install
This is the only defined toplevel table. π
The install section supports these subfields:
blockβ An array of supported to-disk backends enabled by this base container image. If you don't specify it, this will just bedirect. The only other supported value istpm2-luks. The first value specified will be the default. To enable both, useblock = ["direct", "tpm2-luks"].filesystemβ See below. πkargsβ An array of strings; this will be appended to the set of kernel arguments.match_architecturesβ An array of strings; this filters the install config.ostreeβ See below. πstaterootβ The stateroot name to use. Defaults todefault.root-mount-specβ A string specifying the root filesystem mount specification. For example,UUID=2e9f4241-229b-4202-8429-62d2302382e1orLABEL=rootfs. If not provided, the UUID of the target filesystem will be used. An empty string signals to omit boot mount kargs entirely.boot-mount-specβ A string specifying the/bootfilesystem mount specification. If not provided and/bootis a separate mount, its UUID will be used. An empty string signals to omit boot mount kargs entirely.discoverable-partitionsβ Boolean. Whentrue, root discovery uses the Discoverable Partitions Specification viasystemd-gpt-auto-generatorand theroot=kernel argument is omitted. This requires the bootloader to implement the Boot Loader Interface (BLI);systemd-bootalways does, GRUB needs theblimodule (available in newer builds). Defaults totruewhen usingsystemd-boot,falseotherwise.enforce-container-sigpolicyβ A boolean that controls whether to enforce thatcontainers-policy.json(see mancontainers-policy.jsonfor the full search path) includes a default policy which requires signatures. Whentrue, image pulls will be rejected if the policy file specifiesinsecureAcceptAnythingas the default. Defaults tofalse. This is equivalent to the--enforce-container-sigpolicyCLI flag.
filesystem
There is one valid field:
rootβ An instance of"filesystem-root"; see below.
filesystem-root
There is one valid field:
typeβ This can be any basic Linux filesystem with amkfs.$fstype. For example,ext4,xfs, etc.
ostree
Configuration options for the ostree repository. There is one valid field:
bls-append-except-defaultβ A string of kernel arguments that will be appended to Boot Loader Spec entries, except for the default entry. This is useful for configuring arguments that should only apply to non-default deployments.
bootupd
Configuration options for bootupd, responsible of setting up the bootloader. There is only one valid field:
skip-boot-uuidβ A boolean that controls whether to skip writing partition UUIDs to the bootloader configuration. Whentrue,bootupdis invoked with--with-static-configsinstead of--write-uuid. Defaults tofalse(UUIDs are written by default).
π¦ Examples π¦
[install.filesystem.root]
type = "xfs"
[install]
kargs = ["nosmt", "console=tty0"]
stateroot = "myos"
root-mount-spec = "LABEL=rootfs"
boot-mount-spec = "UUID=abcd-1234"
enforce-container-sigpolicy = true
[install.ostree]
bls-append-except-default = 'grub_users=""'
Enable DPS auto-discovery for root (requires a BLI-capable bootloader):
[install]
discoverable-partitions = true
π SEE ALSO π
bootc(1)
π VERSION π
v1.17.1
and that's the whole page bestie π«Ά this was File Formats Manual energy, version v1.17.1, brought to you by the BOOTC-INSTALL-CONFIG(5) girlies. go forth and merge your fragments in alphanumerical order, you absolute icon. π
β¨π
π¦ where this page comes from
- fedora 43: bootc 1.17.1-1.fc43 Β· Apache-2.0 AND BSD-3-Clause AND MIT AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (Unlicense OR MIT)
- fedora 44: bootc 1.17.1-1.fc44 Β· Apache-2.0 AND BSD-3-Clause AND MIT AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (Unlicense OR MIT)
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms