install: --stateroot is silently ignored with --composefs-backend
维护者通常 1 天内回复
已经有一个关联 PR 被合并了。
- #2544 来自 @andrewdunndev —— 已合并
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 48/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- rust
调研方向
Start by reading InstallComposefsOpts::validate in crates/lib/src/install.rs and the fixed layout in crates/lib/src/composefs_consts.rs, then trace how bootc_composefs handles installation options. Decide whether composefs should support stateroots or reject --stateroot; done means the option is no longer silently ignored, with behavior covered by an install test.
由索引模型根据 Issue 内容生成。
描述
bootc install to-disk --composefs-backend --stateroot myroot exits 0, but the stateroot name isn't used. The installed disk has state/os/default, and no path on the root partition is named myroot. Without --composefs-backend the deployment lands in ostree/deploy/myroot. The install output doesn't mention the stateroot on either backend.
Reproduced on quay.io/fedora/fedora-bootc:44@sha256:5ab8ee5189bb0f3870279723f5343474df002d8d6f46564702b3ad3ba7382d98 (bootc 1.16.13). In the commands, $IMG is an image built FROM that one, adding only config files for other options.
truncate -s 20G c.raw d.raw
podman run --rm --privileged --pid=host --security-opt label=type:unconfined_t \
-v /dev:/dev -v /var/lib/containers:/var/lib/containers -v $PWD:/out $IMG \
bootc install to-disk --via-loopback --filesystem ext4 --generic-image --wipe \
--composefs-backend --stateroot myroot /out/c.raw
# the same again without --composefs-backend, writing d.raw
With each root partition mounted:
# composefs disk
$ ls state/os
default
$ ls ostree/deploy
ls: cannot access 'ostree/deploy': No such file or directory
# ostree disk
$ ls ostree/deploy
myroot
InstallComposefsOpts::validate checks only the bootloader (install.rs L423-L439), the composefs layout uses a fixed state/os/default/var (composefs_consts.rs L11), and nothing under bootc_composefs reads the stateroot.
I'd expect --stateroot to be rejected with --composefs-backend, the way --bootloader=none is, unless composefs is meant to support stateroots.
Related: #2535
- 主要语言
- Rust
- 星标
- 2.3k
- 派生
- 230
- 平均合并
- 2 天 12 小时
- 30 天内合并 PR
- 53
环境准备
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
bootc-dev/bootc 的其他 Issue
-
install: root SSH tmpfiles.d drop-in is labeled etc_runtime_t instead of etc_t可能已有人在做 @andrewdunndev 于 4 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复
-
auto-updates fail with `opendir(boot): Operation not permitted` when /boot is a systemd automount that has idled out可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭triaged
难度 2/5 1-3 小时 新手友好度 70/100
bootc-dev/bootc#2402 · 9 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
维护者通常 1 天内回复
-
install: improve error message when systemd-boot is selected without composefs backend可能已有人在做 @ASVLCII 于 28 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
难度 3/5 半天 新手友好度 45/100
bootc-dev/bootc#2562 · 2 条评论 ·
维护者通常 1 天内回复
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 70/100
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 75/100
element-hq/lk-jwt-service#248 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
pact-foundation/pact-cli#154 ·
维护者通常 3 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
antithesishq/bombadil#361 ·
维护者通常 1 天内回复
-
test(executor_l0): assert execute() TaskOutcome, not only bus events / 断言 execute() 返回的 TaskOutcome未关闭type:debt
难度 2/5 1-3 小时 新手友好度 62/100
skaiy/wild_agentos#425 ·
维护者通常 1 天内回复