Configuring Storage
Fedora bootc is a container image that can be "materialized" into a disk image in 3 different ways:
-
Anaconda (kickstart)
-
bootc-image-builder
-
bootc install
Included storage technologies
The full images include support for:
-
xfs/ext4 -
btrfs(Fedora only) -
LVM
-
LUKS
But you can of course add other storage packages directly to the host system.
Storage with Anaconda
You can use Kickstart to configure storage with Anaconda.
Storage with bootc-image-builder
You can use the bootc-image-builder bootc-image-builder` tool to create a disk image; in the future more storage configuration will be supported
Storage with bootc install
See bootc install for more information.
The bootc install to-disk can be used to directly write a "simple" flat storage configuration
(CentOS: default is xfs, Fedora: default is btrfs) to a disk.
More advanced installations (especially to bare metal) can also be done via bootc install to-filesystem; you can set up the target block storage and filesystem however you desire via external tools, then have your custom container image "self-install" to it.
Mounted Filesystems
Fedora bootc uses the bootc upstream project which currently uses ostree as a backend.
For more on the filesystem layout, see bootc filesystem.
Differences from other OSTree-based systems
The Fedora bootc project enables composefs for storage by default. The
/opt and /usr/local paths are plain directories, and not
symbolic links into /var. This means it is easier to install
3rd-party content in derived container images that write into /opt
for example.
Version selection and bootup
Fedora bootc uses GRUB by default (except on s390x). A menu entry is created for each version of Fedora bootc currently available on a system. This menu entry references an ostree deployment which consists of a Linux kernel, an initramfs and a hash linking to an ostree commit (passed via the ostree= kernel argument). During bootup, ostree will read this kernel argument to determine which deployment to use as the root filesystem. Each update or change to the system (package installation, addition of kernel arguments) creates a new deployment. This enables rolling back to a previous deployment if the update causes problems.
Want to help? Learn how to contribute to Fedora Docs ›