BOOTC-INST...-FILESYSTEM(8)

πŸ’– bootc-install-to-filesystem β€” the girlies' guide to installing onto a filesystem you already made πŸ’–

okay so this is a section 8 manual page, from the System Manager's Manual, and it's literally just called bootc-install-to-filesystem. she does what she says on the tin, bestie. no cap. ✨


🌸 NAME 🌸

bootc-install-to-filesystem β€” install the system onto a filesystem structure that somebody else already set up for you πŸ’…


🌈 SYNOPSIS 🌈

bootc install to-filesystem [OPTIONS...] <ROOT_PATH>

✨ DESCRIPTION ✨

Okay so picture this: you're installing, but you are NOT the one building the filesystem. This variant of installation is the "someone else already did the prep work" situation. 🫢

The root filesystem, plus any platform partitions that need to exist along the way (think the EFI system partition, that kind of thing), are prepared and mounted by an external tool or script. That's their job, not bootc's. And heads up β€” the root filesystem is currently expected to be empty by default. Empty empty. Like a fresh notebook. πŸŽ€

girlies. say it with me. an external tool does the mounting. bootc does the installing. team effort. 🧚

πŸ‘‘ OPTIONS πŸ‘‘

  • ROOT_PATH β€” the path to the mounted root filesystem. that's the one you're installing onto. this argument is required, so like, don't forget her. πŸ™ˆ
  • --root-mount-spec=ROOT_MOUNT_SPEC β€” the source device specification for the root filesystem. for example, UUID=2e9f4241-229b-4202-8429-62d2302382e1. if you don't pass this one, the UUID of the target filesystem gets used instead. it exists as an option because some use cases might lowkey prefer mounting by a label instead, via e.g. LABEL=rootfs πŸ’«
  • --boot-mount-spec=BOOT_MOUNT_SPEC β€” the mount specification for the /boot filesystem 🌸
  • --replace=REPLACE β€” initialize the system in-place. rn, only one mode for this is actually implemented. in the future it may also be supported to set up an explicit "dual boot" system πŸ‘€

possible values:

  • wipe
  • alongside
  • --acknowledge-destructive β€” if the target IS the running system's root filesystem, this will skip any warnings. yes, past the warning sign, straight into it. she said she knows. πŸ’€
  • --skip-finalize β€” the default mode is to "finalize" the target filesystem by invoking fstrim and similar operations, and finally mounting it readonly. this option skips those operations. and when you skip them, it becomes the responsibility of the invoking code to perform those operations. so like, you're on your own for that part, beloved 🫠
  • --source-imgref=SOURCE_IMGREF β€” install the system from an explicitly given source ⭐
  • --target-transport=TARGET_TRANSPORT β€” the transport; e.g. oci, oci-archive, containers-storage. defaults to registry

default: registry

  • --target-imgref=TARGET_IMGREF β€” specify the image to fetch for subsequent updates πŸ”₯
  • --enforce-container-sigpolicy β€” this is the inverse of the previous --target-no-signature-verification (which is now a no-op, rip). enabling this option enforces that containers-policy.json β€” see man containers-policy.json for the full search path β€” includes a default policy which requires signatures. we love a signed situation πŸ’…
  • --run-fetch-check β€” verify the image can be fetched from the bootc image. updates may fail when the installation host is authenticated with the registry but the pull secret is not in the bootc image πŸ‘‘
  • --skip-fetch-check β€” verify the image can be fetched from the bootc image. updates may fail when the installation host is authenticated with the registry but the pull secret is not in the bootc image 😭
  • --disable-selinux β€” disable SELinux in the target (installed) system πŸ™ˆ
  • --karg=KARG β€” add a kernel argument. this option can be provided multiple times 🌈
  • --karg-delete=KARG_DELETE β€” remove a kernel argument. this option can be provided multiple times πŸ“
  • --root-ssh-authorized-keys=ROOT_SSH_AUTHORIZED_KEYS β€” the path to an authorized_keys that will be injected into the root account πŸ”‘
  • --generic-image β€” perform configuration changes suitable for a "generic" disk image. at the moment: πŸ’«
  • --bound-images=BOUND_IMAGES β€” how should logically bound images be retrieved πŸ¦‹

possible values:

  • stored
  • skip
  • pull

default: stored

  • --stateroot=STATEROOT β€” the stateroot name to use. defaults to default 🌸
  • --bootupd-skip-boot-uuid β€” don't pass --write-uuid to bootupd during bootloader installation 🚫
  • --bootloader=BOOTLOADER β€” the bootloader to use πŸ‘’

possible values:

  • grub
  • grub-cc
  • systemd
  • none
  • --composefs-backend β€” use the composefs backend instead of ostree. this is the default for images with a UKI, and for images with /usr/lib/composefs/setup-root-conf.toml and no ostree prepare-root.conf 🧚

default: false

  • --allow-missing-verity β€” make fs-verity validation optional in case the filesystem doesn't support it (composefs backend only) πŸ’œ

default: false

  • --uki-addon=UKI_ADDON β€” name of the UKI addons to install without the .efi.addon suffix. this option can be provided multiple times if multiple addons are to be installed (composefs backend only) ⭐

πŸŽ€ VERSION πŸŽ€

v1.17.1


okay that's the whole page, we ate and left no crumbs πŸ‘‘

this was the BOOTC-INST...-FILESYSTEM(8) page, printed straight out of the System Manager's Manual, and she is sitting pretty at version v1.17.1. mwah. periodt. πŸ’–βœ¨

πŸ“¦ 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