From 9e60d5dfaa2e5bdf89fbc34bd4d2079dd8c90a05 Mon Sep 17 00:00:00 2001 From: host Date: Fri, 6 Nov 2026 09:01:20 +0000 Subject: [PATCH] =?UTF-8?q?fix(chv-guest):=20B-18=20virt-get-kernel=20-o?= =?UTF-8?q?=20=E6=98=AF=E7=9B=AE=E5=BD=95=E4=B8=8D=E6=98=AF=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 第三轮真机构建:virt-customize 全程通过(Playwright 步已过), 随后 virt-get-kernel -a disk.raw -o $OUT/vmlinux 失败;手动 查 --help 确认 -o 是 output directory——旧写法会在 OUT 里 建出 vmlinux 目录,后面的 test -s 文件校验必然失败,即使 下载成功构建也会失败。 - 修复:-o 改为 $OUT,下载 vmlinuz- 与 initrd.img- 后把 vmlinuz-* 移为 vmlinux 文件;initrd.img-* 留在 OUT 里 作配套产物(与任务产物清单一致)。 - 同轮里 virt-get-kernel 首跑另报过一次 "file receive cancelled by daemon",同一盘手动重跑即成功(瞬时故障), 此处失败重跑一次,与 B-05/B-06 重试口径一致。 --- chv-guest/build.sh | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/chv-guest/build.sh b/chv-guest/build.sh index 3c1fa26..98ae088 100755 --- a/chv-guest/build.sh +++ b/chv-guest/build.sh @@ -196,7 +196,22 @@ if [ "${PLAYWRIGHT:-1}" = "1" ]; then --run-command 'ls /root/.cache/ms-playwright/ > /app/guest-versions-chromium.txt 2>/dev/null || true') fi run virt-customize "${VC_ARGS[@]}" -run virt-get-kernel -a "$OUT/disk.raw" -o "$OUT/vmlinux" +# B-18:virt-get-kernel 的 -o 是输出目录(不是文件),它在 +# 目录里下载 vmlinuz- 与 initrd.img-;旧写法 +# -o "$OUT/vmlinux" 会建出 vmlinux 目录,后面的 test -s 文件 +# 校验必然失败。改成 -o "$OUT",再把 vmlinuz-* 移为 vmlinux +# 文件;initrd.img-* 留在 OUT 里作配套产物。另:第三轮真机 +# 构建里 virt-get-kernel 首跑报过一次 "file receive cancelled +# by daemon",同一盘手动重跑即成功(瞬时故障),此处失败重跑 +# 一次,与 B-05/B-06 的重试口径一致。 +if [ "$DRY_RUN" = "1" ]; then + echo "DRY-RUN: virt-get-kernel -a $OUT/disk.raw -o $OUT" + echo "DRY-RUN: mv $OUT/vmlinuz-* $OUT/vmlinux" +else + run virt-get-kernel -a "$OUT/disk.raw" -o "$OUT" \ + || run virt-get-kernel -a "$OUT/disk.raw" -o "$OUT" + mv "$OUT"/vmlinuz-* "$OUT/vmlinux" +fi # feat-chv-secfix(M4):构建时把客机内实际装好的版本 # 读回 BUILDINFO.versions(dpkg + pip freeze),名字列表 # 之外再有逐项版本——可审计、可复现比对。事前 lockfile