From c1d00b3620b60cfbf21a43609c43b15bd85bb31f Mon Sep 17 00:00:00 2001 From: host Date: Sat, 7 Nov 2026 05:24:30 +0000 Subject: [PATCH] =?UTF-8?q?fix(chv-muse-r11fix):=20cell=20=E6=94=B9=20--vo?= =?UTF-8?q?latile=3Dyes=EF=BC=88=E5=A4=8D=E6=B5=8B=E7=BA=A0=E6=AD=A3?= =?UTF-8?q?=E7=BC=BA=E9=99=B7=202=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 复测(RETEST.md §cell):--ephemeral 在客内 ext4 根盘(2.4G、 已用 1.8G、可用 593M)上做整盘快照拷贝,空间不够即 ENOSPC, 全部 cell 调用失败(每次约 10.5s veth 超时后 rc=1)。改 --volatile=yes:根为基本空的 tmpfs、/usr 只读挂进,单元内除 bind 出去的目录外一律可写、用完即弃——与 --ephemeral 的设计 意图一致,但不拷盘、不占空间(systemd-nspawn 手册口径)。 --volatile=state 不行:整树只读、仅 /var 为 tmpfs,codex 写 $HOME/.cache 等非 bind 路径会失败。探针已证实 yes/state 均可 启动(0.4s,rc=0),取 yes 保可写性;真机 codex 入 cell 由 第二轮复测验证。测试:CellArgvTest 断言新值、--ephemeral 不再出现。 --- chv-guest/chv-cell.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/chv-guest/chv-cell.py b/chv-guest/chv-cell.py index 41e03bc..a0ef7c2 100644 --- a/chv-guest/chv-cell.py +++ b/chv-guest/chv-cell.py @@ -134,11 +134,15 @@ def build_nspawn_argv(command, network="veth", # round-11 真机修复:nspawn 255 拒裸 --directory=/(须 # --ephemeral 或 --volatile),也拒裸 --no-new-privileges #(把它当作带必填参数的选项,吞掉下一个参数后报错)。 - # 选 --ephemeral:根文件系统快照 + overlay,单元内除 bind - # 出去的目录外一律可写、用完即弃——与 P2“共享客机 rootfs、 - # 只 bind workspace/.codex//run/chv”的设计一致;--volatile - # 会把根置只读,codex 写 $HOME 下非 bind 路径时会失败。 - "--ephemeral", + # 2026-11-07 复测纠正:首轮修用的 --ephemeral 在客内 + # ext4 根盘(2.4G、已用 1.8G、可用 593M)上做整盘快照 + # 拷贝,空间不够即 ENOSPC,全部 cell 调用失败。改 + # --volatile=yes:根为基本空的 tmpfs、/usr 只读挂进, + # 单元内除 bind 出去的目录外一律可写、用完即弃——与 + # --ephemeral 的设计意图一致,但不拷盘、不占空间。 + # --volatile=state 不行:整树只读、仅 /var 为 tmpfs, + # codex 写 $HOME/.cache 等非 bind 路径会失败。 + "--volatile=yes", "--as-pid2", "--private-users=%d:%d" % (UID_BASE, UID_COUNT), "--no-new-privileges=yes",