Commit 0ea5d52
composefs-oci,composefs-boot: Extend V1 EROFS to OCI and booting
Migrate OCI crate callers to the new RepositoryConfig API and add
dual-format (V1+V2) EROFS image generation during OCI pull.
The V1 kernel cmdline karg uses a new self-describing format:
composefs.digest=v1-sha256-12:<hex>
composefs.digest=v1-sha512-12:<hex>
The value encodes the EROFS format version, hash algorithm, and
block size before the digest, mirroring how meta.json uses
fsverity-sha256-12. The stable key name composefs.digest works
naturally with ConditionKernelCommandLine= and allows multiple
entries on the same cmdline for different algorithm/format
combinations.
The initramfs (composefs-setup-root) parses all composefs kargs
from the kernel cmdline in order, then tries to mount each image
in sequence — the first image that actually exists in the
repository wins. mount_composefs_image_if_exists() maps
ImageNotFound to Ok(None), letting the mount loop skip missing
images without swallowing real errors (verity mismatch,
permissions, etc.).
The legacy composefs=<hex> karg continues to work for V2 EROFS.
Assisted-by: OpenCode (Claude Opus 4)
Signed-off-by: Colin Walters <walters@verbum.org>1 parent 3097f6e commit 0ea5d52
38 files changed
Lines changed: 2356 additions & 344 deletions
File tree
- .github/workflows
- crates
- composefs-boot/src
- composefs-ctl/src
- composefs-integration-tests/src/tests
- composefs-oci/src
- composefs-setup-root/src
- composefs/src
- erofs
- fsverity
- doc
- examples
- bls/extra/usr/lib
- dracut/modules.d/37composefs
- initcpio/hooks
- uki
- extra/usr/lib
- dracut/modules.d/37composefs
- initcpio/hooks
- unified-secureboot
- extra/usr/lib/dracut/modules.d/37composefs
- unified
- extra/usr/lib/dracut/modules.d/37composefs
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | | - | |
| 51 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| |||
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
142 | | - | |
143 | | - | |
144 | | - | |
145 | | - | |
146 | | - | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
147 | 151 | | |
148 | 152 | | |
149 | 153 | | |
| |||
776 | 780 | | |
777 | 781 | | |
778 | 782 | | |
779 | | - | |
| 783 | + | |
780 | 784 | | |
781 | 785 | | |
782 | 786 | | |
| |||
785 | 789 | | |
786 | 790 | | |
787 | 791 | | |
788 | | - | |
| 792 | + | |
789 | 793 | | |
790 | 794 | | |
791 | | - | |
792 | | - | |
| 795 | + | |
793 | 796 | | |
794 | 797 | | |
795 | 798 | | |
796 | 799 | | |
797 | 800 | | |
798 | | - | |
| 801 | + | |
799 | 802 | | |
800 | 803 | | |
801 | 804 | | |
| |||
804 | 807 | | |
805 | 808 | | |
806 | 809 | | |
807 | | - | |
| 810 | + | |
808 | 811 | | |
809 | 812 | | |
810 | 813 | | |
| |||
0 commit comments