BOOTC-ROOT-SETUP.SERVICE(5)
π bootc-root-setup.service π
okay bestie, so this is the manual page for bootc-root-setup.service β it lives in File Formats Manual (section 5, iykyk). it's a tiny little systemd service with main character energy and honestly? it's lowkey doing the most important job in the whole boot. let's get into it π«Ά
β¨ NAME β¨
bootc-root-setup.service β that's her. that's the girl.
πΈ DESCRIPTION πΈ
so like, this is a oneshot systemd service that runs in the initramfs, and its whole vibe is setting up the root filesystem whenever the composefs backend is active. it's gated on the composefs= kernel command line argument and on:
ConditionPathExists=/etc/initrd-release
...which means it only ever runs inside an initramfs. no initrd, no service, periodt. π
the service is ordered after sysroot.mount and before initrd-root-fs.target. and she performs these steps, in this exact order:
- Opens the composefs repository at
/sysroot/composefs. - Mounts the EROFS image identified by the
composefs=<digest>kernel argument, with fs-verity verification. (yes, she verifies. she's careful. we love a secure queen. π₯) - Optionally wraps the root in a transient tmpfs overlay β see
root.transientinbootc-setup-root-conf.toml(5)for that one. - Bind-mounts or overlays
/etcand/varfrom the per-deployment state directory at/sysroot/state/deploy/<digest>/. - Replaces
/sysrootwith the fully assembled root, ready for switch-root. slay, assembled, done. π
π CONFIGURATION π
her behaviour is controlled by an optional TOML file that gets installed into the initramfs:
/usr/lib/composefs/setup-root-conf.toml
and if you wanna know every single lil option in there, go read bootc-setup-root-conf.toml(5). that's your full option reference, bestie. the whole menu. π
π¦ INSTALLATION π¦
so the service itself, plus its binary at /usr/lib/bootc/initramfs-setup, get installed into the initramfs by the 51bootc dracut module. that module also installs:
/usr/lib/composefs/setup-root-conf.toml
...but only when it's present on the host image. which means image authors do not need to write out manual dracut --include invocations by hand. she does it for you. iconic behaviour, no notes. π
β οΈ okay important lil heads up: the51bootcmodule is not enabled by default β this is on purpose, so that stuff likeapt|dnf install bootcdoesn't pull it in as a surprise. for base images though, it's recommended to enable it via a config file in e.g./usr/lib/dracut/dracut.conf.d. do that. your future self will thank you. π
π SEE ALSO π
bootc-setup-root-conf.toml(5)bootc(8)
β VERSION β
v1.17.1
and that's the whole page, bestie!! go forth and boot your composefs roots with confidence ππβ¨
stay hydrated, read your dracut configs, and remember: /etc/initrd-release is the vibe check this service never fails. π§π
β mwah, from the File Formats Manual, BOOTC-ROOT-SETUP.SERVICE(5), version v1.17.1 π
π¦ 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