Repository navigation
initramfs: Explain how to recover a strict boot without fs-verity - #2636
jmarrero-bot wants to merge 3 commits into
Conversation
bootc 1.16.0 through 1.16.14 could install with a strict composefs= argument onto an ext4 filesystem made without -O verity (to-filesystem or to-existing-root onto a filesystem another tool created). Those systems booted only because the repository metadata turned enforcement off. Now that a strict command line always requires fs-verity, their next deployment stops in the initramfs with just "fs-verity is not supported by filesystem", which doesn't tell the user that the system is fine and how to get it booting again. When the command line is strict and the filesystem can't do fs-verity at all, say what happened and list the ways out: the previous deployment, adding '?' to the entry (giving up enforcement), or a reinstall onto a filesystem with fs-verity. Generated-by: AI Signed-off-by: Joseph Marrero Corchado <jmarrero@redhat.com>
The composefs docs still described fs-verity enforcement as something only a UKI could relax, and didn't say that the kernel command line alone now decides it. Since a strict composefs= argument always requires fs-verity, systems that bootc 1.16.0 through 1.16.14 installed onto ext4 without -O verity stop booting on their next deployment. The new initramfs error points at the recovery options; the docs now say who is affected, how to check before upgrading, and how to recover, using the same wording as the error. The bootc-root-setup.service(5) and installation pages get the matching small corrections. Generated-by: AI Signed-off-by: Joseph Marrero Corchado <jmarrero@redhat.com>
The help said the flag makes fs-verity optional "in case the filesystem doesn't support it", which reads as a way to install onto any filesystem. It isn't: bootc picks the provisional repository's policy from the filesystem type, so on ext4 the repository starts out strict and the install fails writing meta.json when the filesystem was made without -O verity, flag or not. What the flag actually changes is the boot policy (the '?' marker) and the recorded repository policy, and an image with a UKI ignores it in favor of its own command line. That ext4 case has failed since 9ccd87d (v1.17.0) started choosing the policy before inspecting the image; 1.16 created the repository relaxed when the flag was given. Whether the code should honor the flag there again is a separate question; this documents what it does today. Generated-by: AI Signed-off-by: Joseph Marrero Corchado <jmarrero@redhat.com>
|
A question for the team on the third commit ( Since 9ccd87d ("composefs: Enforce boot policy during staged installs", #2248, first in v1.17.0), install creates a strict provisional repository whenever the filesystem type supports fs-verity ( Should the provisional repository honor an explicit |
Follow-up to #2629. bootc 1.16.0–1.16.14 installs onto ext4 made without
-O veritynow stop in the initramfs, and the only message is "fs-verity is not supported by filesystem". This adds the recovery steps to that error: boot the previous deployment, add?to the entry (which gives up enforcement), or reinstall onto a filesystem with fs-verity. The text is added only when the command line is strict and measuring fs-verity fails as unsupported.A second commit documents this in
bootc-composefs(7)(a new "Strict boot entries without fs-verity" section: who is affected, the pre-upgrade check, recovery), with small matching fixes tobootc-root-setup.service(5)and the installation guide.A third commit rewords the
bootc install --allow-missing-verityhelp (and the regenerated install man pages): it adds the?marker and relaxes the repository policy, but an install onto ext4 created without-O veritystill fails with it, as it has since v1.17.0.The affected set, the recovery testing and the pre-upgrade check are in #2629 (see the summary comment there).
Testing:
to-filesysteminstall on ext4 without verity, then switched to a build with this commit. The boot fails with the new text, followed by the original error chain.bootc-initramfs-setupunit tests pass (11).just update-generatedproduced exactly the committed man pages,just validate(fmt, clippy, docs, generated-file check) andjust unit-tests(546 passed) passed on the commit's first wording; the final revision changes only the doc comment and man page text, and was regenerated again with no diff.The
Signed-off-by: Joseph Marrero Corchado <jmarrero@redhat.com>on these commits was added on jmarrero's approval of the review draft: jmarrero-forge#14 (comment)Generated-by: https://github.com/jmarrero-bot#llms