# Farrow 0.8.0：恢复更顺畅，镜像更新

> 接续宿主准备、隔离失败节点、保留虚拟机身份，并更新九月 Debian 与 Ubuntu 镜像。

---

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

---

Farrow 0.8.0 减少初始化中断和部分节点启动失败后的手工操作，同时更新 Debian 与 Ubuntu
镜像，保留全部旧 Catalog 工件和已有 VM 身份。

## 主要变化

- **宿主准备接续原命令。** 交互式 `start`、`restart`、`reload` 可以补齐宿主工具，
  恢复已确认完整的 Farrow 网络。macOS 新网络安装先完成 Homebrew 发现/安装或固定
  归档下载、校验，再申请管理员认证，避免 Homebrew 清除过早获取的 sudo 凭据。
- **单个节点失败不阻断独立节点。** `up`、`start` 将宿主共享目录缺失的影响限制在
  对应节点；新节点准备失败时，独立的已停止节点仍可启动。错误指出源目录和挂载点，
  不创建空目录掩盖问题。restart/reload/recreate 在停止已有 VM 前先检查共享能否访问。
- **恢复保留身份。** 公钥缺失时从原私钥派生；私钥丢失时给出备份恢复指引，不生成
  新的登录身份。macOS vmnet 日志目录恢复保留网络归属证据，避免误报自身网段冲突。
- **失败保留上下文。** 重试命令保留配置、仓库和适用参数，`start` 的重试仍是 `start`。
  setup 与重试使用同一操作编号；还没有部署状态时也能读取有大小上限的事件日志。
  查询未缓存镜像信息不再要求 QEMU。
- **清理准确汇总最终结果。** 显式删除持久盘或 purge 不再同时声称保留和删除同一磁盘。
  之前删除单个节点留下的受管磁盘，不再阻断其余实验环境的销毁。

## 九月镜像

内置 Catalog `2026092001` 包含九个 Family、37 个工件，保留前一版全部 27 个工件。
以下新 stable 均覆盖 amd64 与 arm64：

| Family | 系统版本 | Catalog 版本 |
|---|---|---|
| `d12` | Debian 12.15 | `20260909.2596.1` |
| `d13` | Debian 13.7 | `20260914.2601.1` |
| `u22` | Ubuntu 22.04.5 | `20260913.0.0` |
| `u24` | Ubuntu 24.04.5 | `20260911.0.0` |
| `u26` | Ubuntu 26.04.1 | `20260918.0.0` |

Debian 延续离线安装的 XFS 工具与已生成的 `en_US.UTF-8` locale，默认仍为 `C.UTF-8`。
Ubuntu 保留 Canonical 原始镜像字节，部署账户和网络由 cloud-init 配置。已有 VM 和显式
锁定的镜像版本继续使用原基础镜像。仓库与更新行为见[镜像参考](../../../docs/reference/images/)。

## 安装或升级

```bash
curl -fLO https://github.com/pgsty/farrow/releases/download/v0.8.0/install.sh
chmod +x install.sh
FARROW_VERSION=0.8.0 ./install.sh
export PATH="$HOME/.local/bin:$PATH"
farrow version
```

已有实验环境在配置所在目录先查看 `farrow plan`，再执行 `farrow up`。首次使用时，
在终端执行 `farrow up`，准备宿主并创建默认实验环境。

Farrow 仍处于 1.0 之前，沿用 GitHub pre-release 通道，请保留显式 `FARROW_VERSION`。
本版包含 macOS/Linux amd64/arm64 归档、Linux DEB/RPM、校验清单、SBOM、安装器和
Homebrew Formula。其他安装方式见[快速上手](../../../docs/start/tutorial/#安装)。

`start` 仍只启动已有节点；`up` 应用配置并重试未完成的客机初始化，不需要独立 repair
命令。测试数据盘的既有重置策略不变：证实不可用的测试文件系统可以被清空，包括持久
数据盘，并明确报告数据丢弃。设备缺失、探测失败、忙碌挂载或宿主 I/O 故障不构成
格式化依据；根盘和宿主共享目录不属于此恢复范围。

## 验证与限制

两台 macOS arm64/HVF 和两台 Linux amd64/KVM 完成七系统 pro 验收，每机覆盖
Rocky Linux 9.8/10.2、Debian 12.15/13.7、Ubuntu 22.04.5/24.04.5/26.04.1。
基线候选 `6d7870e` 使用局域网仓库完成从零初始化；运行时候选 `1c054a0` 随后原位安装，
通过健康重复 `up`、stop/start、两轮客机 SSH、数据盘访问、Ansible 配置读取和控制节点
SSH。两台 Mac 还分别通过全部七节点 Ansible ping。VM UUID、镜像身份、健康根盘与
数据盘路径/inode 保持。临时验收 VM 已在之后清理。

以下计时是单次样本，不能视作性能分布；首次 `up` 包含镜像下载：

| 宿主 | 平台 | 6d 从零首次 up | 1c 健康 up | 1c 已有磁盘 start |
|---|---|---:|---:|---:|
| m0 | Linux amd64 / KVM | 117.915 s | 3.924 s | 36.944 s |
| m1 | macOS arm64 / HVF | 86.309 s | 1.745 s | 39.639 s |
| m3 | Linux amd64 / KVM | 98.443 s | 2.169 s | 44.068 s |
| m5 | macOS arm64 / HVF | 87.946 s | 1.467 s | 38.162 s |

发布 tag 指向 `320a32afa8f6fca02592215aa0d5607ca4e852b2`，相对已验收运行时只更新
README 和发布说明。完整本地 `make check`、发布归档/软件包检查通过，
[源码 CI](https://github.com/pgsty/farrow/actions/runs/35568664994)、独立
[打包 Snapshot](https://github.com/pgsty/farrow/actions/runs/35568664948) 与
[Tag 工作流](https://github.com/pgsty/farrow/actions/runs/35569143101)也均通过。
Tag 工作流生成 20 个发布资产，其中 19 项载荷列入校验清单。
[Release 已公开](https://github.com/pgsty/farrow/releases/tag/v0.8.0)，使用 GitHub
pre-release 通道。20 个匿名下载均返回 HTTP 200，完整 SHA-256 与 GitHub API 及已检查
草稿一致；19 项载荷全部匹配 `checksums.txt`。

[UX 审计](https://github.com/pgsty/farrow/blob/v0.8.0/UX-AUDIT-0.8.md)与
[镜像更新记录](https://github.com/pgsty/farrow/blob/v0.8.0/IMAGE-REFRESH-20260920.md)
保留此前回归、原生镜像启动与升级证据。

两个官方镜像入口都提供与发布版一致的签名 Catalog。对每个入口分别执行隔离的
`farrow update`，均成功验证签名并激活 revision `2026092001`。每端十个新增镜像对象
均返回 HTTP 200，内容长度匹配；这不是重新下载全部公开 qcow2 正文后的完整摘要验证。

公开安装器已在 macOS arm64 与 Linux amd64 的隔离用户目录安装成功，两端 CLI 均报告
0.8.0 / `320a32a`，安装后的 CLI/helper 字节与各自已校验的公开归档一致。Linux 下载
通过临时 SSH 回环转发访问已有代理，验证后已关闭。默认安装及 VM/网络状态保持不变。
这些检查验证了二进制交付；通过公开安装器重新初始化宿主并启动 VM 仍待验证。

[Homebrew Tap 更新](https://github.com/pgsty/homebrew-infra/commit/9c3401958a435248ebf0e5402e7efff712ee1c4c)
已提供 0.8.0，四平台归档校验和与公开发布一致。本地 Formula 检查、严格在线 audit 和
原生 arm64 `brew fetch` 通过；[Homebrew CI](https://github.com/pgsty/homebrew-infra/actions/runs/35570285428)
也在 macOS 和 Linux 上通过元数据、更新器、样式、平台和 audit 检查。本次没有重新执行
Homebrew 安装、升级或 `brew test`。

这是从零 6d 基线，再用 1c 原位复验生命周期，不是 1c 再次从零初始化。Homebrew 认证
顺序有修复前失败、修复后通过的回归，但修复后的全新 Formula 安装没有再次原生重放；
本轮 macOS 网络首装使用已校验的局域网后端归档。物理宿主重启、完整 Pigsty 安装、
macOS amd64 和 Linux arm64 原生运行不属于本轮覆盖范围。

**macOS 目录共享仍受已测 QEMU 目录描述符行为限制。** 新前置检查改进诊断，没有实现
共享支持；pro 配置不含宿主共享。控制节点中缺失的 Guest 私钥现在会被发现，即使旧的
ready 标记仍存在，但尚未实现私钥自动重新注入。管理 SSH 可以继续使用，节点间 SSH
则明确报告限制。完整的带日期验证矩阵见[当前状态](../../../docs/about/status/)。
