跳转到主要内容

Barn 1.1.0:镜像选择与实时进度

从命令行选择 Linux 镜像与客机架构,查看实时进度,并恢复中断的资源调整。

发布于 2026-11-09。 Barn 1.1.0 新增镜像与客机架构覆盖参数,统一实时进度表,并改进 CPU 与内存调整的恢复能力。内置签名镜像目录仍为 2026110502,涵盖 9 个发行版系列、17 个架构制品;默认镜像仍是宿主原生架构的 Ubuntu 24.04。

镜像与架构选择

plan、up、reload、recreate 和 resize 支持 --image/-I 与 --arch/-A,只覆盖本次命令的期望配置。镜像覆盖只作用于选中的节点,后续命令提示会保留节点选择、覆盖参数与镜像仓库。已有虚拟机仍需通过 recreate 更换镜像或架构。

barn plan -I u24 -A amd64
barn up -I u24 -A amd64

init 和生成模板的 setup 会将这两项选择写入新清单;validate 接受相同参数,校验时不修改文件。镜像查询、拉取与命名导入也支持 -A。架构可写为 amd64(别名 x86_64、x64)、arm64(别名 aarch64、a64)或 native;image info 与 image pull 保留原来的 -a 简写。

同架构客机使用 HVF 或 KVM,跨架构客机通过 QEMU TCG 进行兼容性测试。ARM TCG 使用固定 CPU 模型,保证 UEFI 启动时的虚拟 CPU 特性一致。Linux 宿主需要另行安装目标架构的 QEMU 系统模拟器和匹配的固件;barn setup 安装宿主原生架构依赖。同一部署中的所有节点使用相同客机架构。

进度与结果

Linux 与 macOS 生命周期命令、宿主准备、网络操作、镜像传输与仓库维护现在使用统一的实时进度表和完成摘要。交互提示或错误出现前会停止原地刷新,重定向输出使用普通文本行。配置校验列出实际执行的检查,状态表与标签使用纯 ASCII,包括 [DONE]、[FAILED] 和 [CANCELLED],同时 barn purge 默认直接删除部署并提供 --ask 确认提示。脚本可通过 --json 或 --yaml 获取结构化结果。

恢复修复

  • 离线 resize 在检查状态、停止虚拟机和提交配置期间持续持有部署锁,避免并发启动破坏记录的 QEMU 进程身份。
  • 在线 resize 在热插拔前写入恢复标记。操作中断后,status 会提示实际 CPU 或内存可能与已应用配置不一致(stage: "resize"、reason: "resize_incomplete");重试 resize 或执行 up / start 即可恢复。
  • 涉及整个部署的配置变化会将新节点纳入重建范围,并避免在重建完成前提示执行 up。
  • 生命周期重试命令会保留显式指定的官方 --repo,即使 BARN_REPO 指向其他来源。缺少原生 QEMU 时会进入宿主准备流程,缺少跨架构 Linux 模拟器时则会列出需要安装的依赖。

YAML 解析升级至 go.yaml.in/yaml/v4 4.0.0,参数解析升级至 pflag 1.1.0。YAML 输入与输出设置保持原有行为,未完成的 YAML 文档会在语法错误中报告解析器的 EOF 行号。发行包中的许可证与 SPDX 物料清单同步覆盖新版依赖。

升级与下载

替换 Barn.app 前先停止正在运行的 macOS 客机,再执行升级:

brew update
brew upgrade pgsty/infra/barn

也可以下载并运行本版本的安装脚本:

curl -fLO https://github.com/pgsty/barn/releases/download/v1.1.0/install.sh
BARN_VERSION=1.1.0 bash install.sh
barn version

安装脚本依据 checksums.txt 验证归档。Darwin arm64 归档包含经过签名和公证的 CLI、hosts helper 与 Barn.app;其他平台归档以及 Linux DEB/RPM 软件包提供 CLI 和匹配的 helper。虚拟机磁盘、密钥和状态保留在 BARN_HOME 下。

参阅使用文档、完整变更日志与相对 1.0.0 的代码变化。