# Barn 0.7.0：简化测试环境，自动恢复故障

> 缩短首次启动路径、精简进度输出、独立初始化可选功能，统一通过 up 恢复。

---

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

---

> [!NOTE]
> 本文为 `0.7.0` 历史发布记录。旧版发行附件已下线，安装当前版本请参见[安装指南](/zh/docs/start/installation/)。

Barn 0.7.0 简化了本地测试环境的首次启动与故障恢复：重复执行 `barn up` 即可接续中断的任务、重试未完成的客机初始化阶段，并在不重启虚拟机的情况下原位更新客机脚本。

## 主要变化 {#what-changed}

- **缩短首次启动路径。** 交互式 `up` 可自动生成默认配置、补齐缺失的宿主工具，并唤醒已安装但未运行的 Barn 网络。耗时短的检查保持安静，长任务实时显示进度并在结束时输出精简汇总。
- **客机各阶段独立初始化。** 数据盘、共享目录、客机主机名、节点间 SSH 与私网各自独立初始化。若某项可选功能失败，Barn 会明确报告受限项并保持管理网 SSH 可用；后续运行 `up` 时会自动跳过已健康的阶段。
- **自动恢复测试数据盘。** 正常的文件系统直接复用；无法识别或确认损坏的测试数据盘文件系统会自动重新格式化并挂载，同时在结果中明确报告旧数据已重置。探测失败、设备缺失、挂载正忙或底层 I/O 报错不会触发格式化。
- **减少手工排障。** 宿主无写权限的共享目录自动降级为只读挂载，权限修正后再次运行 `up` 即可恢复读写；已停止虚拟机的自动 SSH 转发端口若被占用会自动重新分配；中断的镜像下载支持断点续传与官方源自动故障切换，全程保持 SHA-256 摘要校验。
- **精简输出并保持状态前向兼容。** 客机警告信息单独存放在临时缓存中，不改动 schema-2 虚拟机状态文件与节点目录结构，旧版 CLI 仍可正常读取和管理环境。

## 升级说明 {#upgrade-notes}

- 故障恢复统一由 `barn up` 完成（不设单独的 `repair` 命令）；`start` 继续仅启动已有节点而不应用配置变更，`--no-wait` 则跳过就绪检查与客机恢复步骤。数据盘恢复与重建规则详见[存储指南](/zh/docs/start/storage/)。
- 管理网 SSH 可用但存在可选功能受限时，命令返回退出码 `0`。要求全部功能就绪的自动化脚本请检查 `--json` 或 `--yaml` 输出中的 `nodes[].warnings` 与 `nodes[].repairs` 字段。
- 若旧版 0.6.0 初始化中断时已删除了暂存的控制节点 SSH 私钥，`up` 会恢复管理网连接并报告 `control-ssh` 警告；如需使用节点间免密 SSH，请先用 `barn plan` 确认磁盘影响，再显式 `recreate` 该控制节点。

## 安装或升级 {#install-or-upgrade}

```bash
curl -fLO https://github.com/pgsty/barn/releases/download/v0.7.0/install.sh
chmod +x install.sh
BARN_VERSION=0.7.0 ./install.sh
barn version
barn up
```

本版本提供 macOS 与 Linux（`amd64`/`arm64`）归档、Linux DEB/RPM 软件包、安装脚本、校验清单、SBOM 与 Homebrew 配方。

## 验证范围 {#validation}

发布提交 `9c6d4896d93733d1cb60a7e5d8591e9a06659c9d` 已通过[源码 CI](https://github.com/pgsty/barn/actions/runs/35118137961)、[打包快照](https://github.com/pgsty/barn/actions/runs/35118137990)与[标签工作流](https://github.com/pgsty/barn/actions/runs/35119206685)，共生成 20 项经校验的发行资产。公开安装脚本已在 macOS `arm64` 与 Linux `amd64` 完成 `0.7.0` 二进制安装验证，macOS 平台同时完成了 CLI 冒烟测试与交叉编译。

在 Ubuntu 26.04 `amd64`（KVM/QEMU 10.2.1）宿主与 Ubuntu 24.04 客机上，恢复测试覆盖了 ext4/XFS 文件系统损坏、持久盘保留、探测失败、挂载正忙、共享目录只读降级以及不重启 QEMU 进程的重复 `up`：
- 因管理网出网探测失败而中断的 0.6.0 环境，在升级 0.7.0 后于 3.3 秒内恢复就绪，原有数据盘与 UUID 保持不变，且旧版 0.6.0 二进制仍能对其正常执行 `status`、`stop`、`start` 与 `destroy`。
- 人为破坏的可丢弃 ext4 数据盘在 3.2 秒内自动完成重建与重挂载，明确报告数据重置且未中断虚拟机进程。
