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

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

---

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

---

Farrow 0.7.0 简化测试环境的启动与恢复。重复执行 `farrow up` 即可继续中断的工作、
重试未完成的客机初始化，并原位更新旧的客机脚本，无需重启正在运行的虚拟机。

## 主要变化

- **缩短首次使用路径。** 交互式 `up` 可以创建默认配置、准备缺少的宿主工具，并恢复
  已正确安装但未运行的 Farrow 网络。短检查保持安静，长任务显示进度，完成后给出简洁结果。
- **可用的环境继续运行。** 数据盘、共享目录、客机主机名、节点间 SSH 和私网分别初始化。
  可选功能失败时明确报告限制，保留可用的管理 SSH；后续 `up` 跳过健康步骤。
- **自动恢复测试数据盘。** 可用文件系统直接复用；无法识别或确认损坏的文件系统会被
  清空重建并重新挂载，结果明确提示旧数据已丢弃。探测失败、设备暂缺、挂载占用和底层
  I/O 故障不会触发格式化。
- **减少手工排障。** 不可写的共享目录降级为只读，权限修正后重复 `up` 恢复；已停止
  虚拟机的自动 SSH 端口被占用时重新分配。镜像传输支持续传和官方源故障切换，保留摘要校验。
- **精简输出，分离提示与状态。** 成功命令给出短摘要，限制按问题分组，JSON/YAML 保留
  结构化结果。客机警告单独缓存，不进入 schema-2 虚拟机状态和节点工件目录，旧版本仍可
  读取并管理原有环境。

## 升级说明

**数据盘按可丢弃的测试存储处理。`up` 可能清空损坏的文件系统，包括 `persistent` 数据盘。**
`persistent` 表示销毁、重建虚拟机时保留盘，不表示在故障恢复时保留损坏内容。有价值的数据
请存放在这些测试盘之外。此次自动清盘不涉及系统盘和宿主机共享目录。

不增加单独的 `repair` 命令，恢复工作统一由 `up` 完成。`start` 继续只启动已有节点，
不应用配置；`--no-wait` 跳过就绪检查及客机恢复步骤。

管理 SSH 可用、但可选功能受限时返回 0。要求全部功能可用的脚本应检查 JSON/YAML 的
`nodes[].warnings`；数据盘重置等自动操作写入 `nodes[].repairs`。回退 CLI 不会恢复已丢弃
的数据，也不会回退已经安装到客机中的脚本。

旧版 0.6.0 初始化中断时，可能在安装前就删除暂存的控制节点 SSH 私钥。`up` 能恢复
管理访问并继续独立步骤，但密钥缺失时仍报告 `control-ssh` 限制；原位重试不会重新注入
私钥。需要节点间 SSH 时，先用 `farrow plan` 查看磁盘影响，再显式重建受影响的控制节点。

## 安装或升级

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

提供 macOS/Linux 的 amd64/arm64 归档、Linux DEB/RPM、安装器、校验和、SBOM 和 Homebrew
Formula。沿用 pre-1.0 规则，在 GitHub 标记为 Pre-release，安装时需指定 `FARROW_VERSION`。

## 验证范围

发布提交为 `9c6d4896d93733d1cb60a7e5d8591e9a06659c9d`，通过[源码 CI](https://github.com/pgsty/farrow/actions/runs/35118137961)
与独立[打包 Snapshot](https://github.com/pgsty/farrow/actions/runs/35118137990)后打 Tag。
[Tag 工作流](https://github.com/pgsty/farrow/actions/runs/35119206685)重复门禁并生成 20 个发布资产：
19 个带校验和的载荷及校验清单。检查后，20 个资产均可匿名 HTTP 200 下载，并与检查过的字节一致。

公开 macOS arm64 与 Linux amd64 安装器安装的二进制均与归档一致，并报告版本 `0.7.0` 与上述提交。
Ubuntu 26.04 amd64、KVM/QEMU 10.2.1、Ubuntu 24.04 Guest 隔离环境实际验证了 ext4/XFS 损坏、持久盘、
探测失败、忙碌挂载、只读共享降级和重复健康 `up` 保留 VM 进程。公开版 0.6.0 因管理出网探测失败而中断，
0.7.0 在 3.3 秒内接续，探测失败期间已有数据盘和 UUID 保持不变。升级后 0.6.0 二进制仍能执行
`status`、`stop`、`start` 与 `destroy`。最终 0.7.0 归档新建的 VM 无警告启动；公开安装器还在 3.2 秒内
重置了人为损坏的可丢弃 ext4 数据盘，明确提示数据丢失，同时保留 VM 进程。

特定的 0.6.0 中断现场可能在安装前删除暂存的控制节点 SSH 私钥。此升级路径中管理 SSH 会恢复，
但节点间 SSH 会明确显示 `control-ssh` 限制，原位重试不会重新注入私钥；需要节点间 SSH 时，先查看
`farrow plan` 再重建受影响的控制节点。全新 0.7.0 Guest 会正常安装该密钥。

本版本 macOS 验证包括 CLI 冒烟与交叉编译；不宣称新增 HVF Guest 重放、宿主重启、Linux arm64 或完整
Pigsty 安装验收。
