Linux

Where Does bootc Store Images and Deployments?

bootc stages fetched container images as deployments under /sysroot (ostree repo or composefs store) plus a dedicated image store.

Last updated

bootc maps container images to deployments on disk. The ostree backend keeps its repository at /sysroot/ostree/repo with deployments beneath it; the composefs backend instead splits state across /composefs (objects, images, streams) and /state/deploy per-deployment records.

The booted system sees the physical root read-only at /sysroot while / is a bind mount into the current deployment. Provisioning metadata lands at /sysroot/.bootc-aleph.json for auditing how the box was born.

Where bootc stores this, by platform

Linux
/sysroot/ostree/repo (ostree) or /composefs (composefs)

Deployments, image objects and per-deploy state (.origin files with image ref and digest). /usr/lib/bootc/storage symlinks the bound-image store. Treat /usr/etc as internal.

Frequently asked questions

Where is my previous deployment after an upgrade?

Look at /sysroot/ostree/deploy/ (or /composefs plus /state/deploy on composefs systems). Old deployments linger there until pruned, so previous roots stay browsable after upgrades.

Where are logically bound container images kept?

Follow /usr/lib/bootc/storage, which points into /sysroot. That dedicated containers/storage instance backs logically bound images, separate from the base boot image store.

Notice an outdated path? Let us know.