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",