BOOTC-COMP...LIZE-STAGED(8)
π« BOOTC-COMPOSE...FINALIZE-STAGED π« (that's bootc-composefs-finalize-staged, manual section 8, System Manager's Manual, bestie)
okay so. this page is short but it's IMPORTANT, because it's the little gremlin that makes your staged deployment actually land. let's get into it π«Ά
β¨ NAME β¨
bootc-composefs-finalize-staged β Finalize a staged composefs deployment
like. it finalizes. a staged composefs deployment. she does exactly what it says on the tin and we love that for her π
β¨ SYNOPSIS β¨
bootc composefs-finalize-staged [OPTIONS...]
β¨ DESCRIPTION β¨
so basically: this command finalizes a staged composefs deployment. that's the whole job.
BUT. and this is the big BUT π¨ β this is an internal command. it gets invoked at shutdown by bootc-finalize-staged.service. it is not intended to be run directly. so if you were about to type it in a terminal just for funsies, bestie, put your hands down π this is a backstage-pass-only situation, iykyk.
here's the whole lore π
when bootc upgrade or bootc switch stages a new deployment on a composefs system, it starts bootc-finalize-staged.service, whose ExecStop runs this command as the system shuts down. then it:
- merges the current
/etcinto the staged deployment πΈ - updates the bootloader configuration so that the next boot uses it π₯
if no deployment is staged, it does nothing. no staged deployment, no problem, she just vibes. β¨
but β and not me being dramatic β it fails on systems using the ostree backend, where ostree-finalize-staged.service does this instead. different backend, different girl doing the job. that's just how it is π
also, there's a whole subplot: the finalize service also pulls in bootc-finalize-staged-hold.service, which runs this command with --hold to keep /boot open while a deployment is staged. why, you ask?? because otherwise an automounted /boot (like the ESP set up by systemd-gpt-auto-generator(8)) could expire while idle π and then it's giving two options, both bad:
- it could deadlock with shutdown, or
- it could be unavailable when finalization runs
either way it's a mess. hence the hold. hence the service. periodt π
β¨ OPTIONS β¨
--holdβ hold/bootopen until terminated, instead of finalizing. yep, that's it. that's the one. she's the only option and she knows it π
β¨ EXAMPLES β¨
check whether a staged deployment is waiting to be finalized at the next shutdown:
systemctl status bootc-finalize-staged.service bootc-finalize-staged-hold.service
run that, see what those two services are up to, and you'll know if something's queued up. lowkey the most useful one-liner on this page ngl π«Ά
β¨ SEE ALSO β¨
go read those if you want the full picture bestie, they're the main characters, this one's the supporting role π
β¨ VERSION β¨
v1.17.1
that's the whole page!! she's small, she's internal, she runs at shutdown and you should never call her yourself, and honestly? iconic behavior π
mwah, stay caffeinated, don't run internal commands manually, and remember: this was BOOTC-COMP...LIZE-STAGED(8) from the System Manager's Manual, 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