You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Failing bootc update for composefs/UKI after recent GC changes #2074
I'm currently running a bootc system with the composefs backend and an UKI. When I want to run bootc update, I'm presented with the following error:
RUST_LOG=debug bootc update
DEBUG argv0="bootc"
DEBUG exec: "findmnt" "-J" "-v" "--output=SOURCE,TARGET,MAJ:MIN,FSTYPE,OPTIONS,UUID" "--mountpoint" "/"
DEBUG Re-executing current process for _ostree_unshared
DEBUG argv0="bootc"
DEBUG exec: "findmnt" "-J" "-v" "--output=SOURCE,TARGET,MAJ:MIN,FSTYPE,OPTIONS,UUID" "--mountpoint" "/"
DEBUG Already in a mount namespace
DEBUG Target . is a mountpoint, remounting rw
DEBUG exec: "findmnt" "-J" "-v" "--output=SOURCE,TARGET,MAJ:MIN,FSTYPE,OPTIONS,UUID" "--mountpoint" "."
DEBUG exec: "lsblk" "-J" "-b" "-O" "/dev/mapper/root"
DEBUG exec: "lsblk" "-J" "-b" "-O" "--inverse" "/dev/mapper/root"
DEBUG exec: "lsblk" "-J" "-b" "-O" "/dev/nvme0n1"
INFO Starting composefs upgrade operation message_id="9c8d7f6e5a4b3c2d1e0f9a8b7c6d5e4f3" bootc.operation="upgrade" bootc.apply_mode=false bootc.download_only=false bootc.from_downloaded=false
error: Upgrading composefs: Getting composefs deployment status: Getting composefs deployment status: Getting composefs deployment status: Listing bootloader entries: efi does not start with custom prefix
I had a quick look at the code and it seems there have been changes in the expected directory structure introduced in #2040 . However, it seems like the old structure is not migrated to the new one, blocking any direct upgrade path.
This is a consequence of us changing our "binary" naming format such that the binaries we own has a custom prefix of sorts which would help with bookkeeping. Are you using systemd-boot or grub as the bootloader? For systemd-boot, the fix is quite simple (just to help you unblock until we get a permanent backwards compatible fix in), it's just to rename every file/dir in EFI/Linux/bootc to have the prefix bootc_composefs-.
For grub unfortunately, the fix is a bit more complicated as it entails moving around stuff in the ESP
Indeed, I'm using systemd-boot. I renamed the .efi files and corrected the paths in loader/entries/* (besides that the system obviously wouldn't boot without these corrections, they're apparently also required for bootc to pick up the new paths and not fail).
/efi/EFI/Linux/bootc # ls
bootc_composefs-24f4e6c7cb2a1ab1b8c912fdcf6ebfb0779a38cb931af685d0b7309e5e3a1be2add1f01581b881eee52f6a1b0d0f8193f38609f405f5a314ad6ccd16fd5e58c4.efi
bootc_composefs-45bb4a8faa27a5173d365aacce0a17fef90500f125de9b23fb798c7eb8768d1c81db256f4ac45e5543dc44795e0cd7207b26d71bd8c4f8a42e210390c4b8aefb.efi
bootc_composefs-57ea216cdabd8cb58ea23030f3009aca87bb9445b6064eaac433335f102d187350549816474bc29e13768854b8b81e54db17709e47946dfcf59bb4683f299b88.efi
bootc_composefs-79c2cc8dd7d0ea6a3d36ee47c9705c2d3b493e9ba04e0e80492323a870cf1f84c4b079285fc420b31a74531fcfe5ed2e012d0645f4dbc10b3df53961e53bd3f0.efi
bootc_composefs-6384c8df61b5c62de9a1d36173dea388936e1e19d84d904d79f839d5f0f16e300608a535cd41d0be4c88220742221e7e90d11fab0f3b7298199218fa12e12f32.efi
bootc_composefs-adc2b86c410f886a10c55ce399bd40ef95d7379698c8e2519528561470ca42df29f405ea586c6f12af1f1576b0160295cc3c7ba5d50987946d42849db86b6dd1.efi
bootc_composefs-febad678b3227be16d4fb327a06dceb865f4c1cb0ac1248d4d0b00caffd03281aa70c92b7b8a8a54d21895613cdbbabee8773ef03bdb1543e1b2c90467f4f25c.efi
Seems to work, thanks! Now I'm looking forward to get these actually cleaned up automatically, so thanks for your efforts in this regard as well :-)
For systemd-boot, the fix is quite simple (just to help you unblock until we get a permanent backwards compatible fix in), it's just to rename every file/dir in EFI/Linux/bootc to have the prefix bootc_composefs-.
We discussed this issue this morning and @Johan-Liebert1 is going to look at doing this automatically. I am going to pick back up #2060 for composefs and I think we'll aim to commit to having all future upgrades from here be as compatible as possible.
Activity
Johan-Liebert1 commentedon Mar 17, 2026
This is a consequence of us changing our "binary" naming format such that the binaries we own has a custom prefix of sorts which would help with bookkeeping. Are you using systemd-boot or grub as the bootloader? For systemd-boot, the fix is quite simple (just to help you unblock until we get a permanent backwards compatible fix in), it's just to rename every file/dir in
EFI/Linux/bootcto have the prefixbootc_composefs-.For grub unfortunately, the fix is a bit more complicated as it entails moving around stuff in the ESP
marcoh00 commentedon Mar 17, 2026
Thanks for the quick reply!
Indeed, I'm using systemd-boot. I renamed the .efi files and corrected the paths in
loader/entries/*(besides that the system obviously wouldn't boot without these corrections, they're apparently also required for bootc to pick up the new paths and not fail).Seems to work, thanks! Now I'm looking forward to get these actually cleaned up automatically, so thanks for your efforts in this regard as well :-)
cgwalters commentedon Mar 17, 2026
We discussed this issue this morning and @Johan-Liebert1 is going to look at doing this automatically. I am going to pick back up #2060 for composefs and I think we'll aim to commit to having all future upgrades from here be as compatible as possible.
ci/upgrade: Add composefs variant and upgrade --check test
Johan-Liebert1 commentedon May 7, 2026
This should be fixed with #2044