# Barn 1.1.0：镜像选择与实时进度

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

---

LLMS 索引： [llms.txt](/zh/llms.txt)

---

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

## 镜像与架构选择 {#image-and-architecture}

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

```bash
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` 安装宿主原生架构依赖。同一部署中的所有节点使用相同客机架构。

## 进度与结果 {#progress-and-results}

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

## 恢复修复 {#recovery-fixes}

- 离线 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 物料清单同步覆盖新版依赖。

## 升级与下载 {#upgrade-and-downloads}

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

```bash
brew update
brew upgrade pgsty/infra/barn
```

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

```bash
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` 下。

参阅[使用文档](/zh/docs/)、[完整变更日志](https://github.com/pgsty/barn/blob/v1.1.0/CHANGELOG.md)与[相对 1.0.0 的代码变化](https://github.com/pgsty/barn/compare/v1.0.0...v1.1.0)。
