Farrow 0.8.0:恢复更顺畅,镜像更新
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 和显式
锁定的镜像版本继续使用原基础镜像。仓库与更新行为见镜像参考。
安装或升级
已有实验环境在配置所在目录先查看 farrow plan,再执行 farrow up。首次使用时,
在终端执行 farrow up,准备宿主并创建默认实验环境。
Farrow 仍处于 1.0 之前,沿用 GitHub pre-release 通道,请保留显式 FARROW_VERSION。
本版包含 macOS/Linux amd64/arm64 归档、Linux DEB/RPM、校验清单、SBOM、安装器和
Homebrew Formula。其他安装方式见快速上手。
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、独立
打包 Snapshot 与
Tag 工作流也均通过。
Tag 工作流生成 20 个发布资产,其中 19 项载荷列入校验清单。
Release 已公开,使用 GitHub
pre-release 通道。20 个匿名下载均返回 HTTP 200,完整 SHA-256 与 GitHub API 及已检查
草稿一致;19 项载荷全部匹配 checksums.txt。
UX 审计与 镜像更新记录 保留此前回归、原生镜像启动与升级证据。
两个官方镜像入口都提供与发布版一致的签名 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 更新
已提供 0.8.0,四平台归档校验和与公开发布一致。本地 Formula 检查、严格在线 audit 和
原生 arm64 brew fetch 通过;Homebrew CI
也在 macOS 和 Linux 上通过元数据、更新器、样式、平台和 audit 检查。本次没有重新执行
Homebrew 安装、升级或 brew test。
这是从零 6d 基线,再用 1c 原位复验生命周期,不是 1c 再次从零初始化。Homebrew 认证 顺序有修复前失败、修复后通过的回归,但修复后的全新 Formula 安装没有再次原生重放; 本轮 macOS 网络首装使用已校验的局域网后端归档。物理宿主重启、完整 Pigsty 安装、 macOS amd64 和 Linux arm64 原生运行不属于本轮覆盖范围。
macOS 目录共享仍受已测 QEMU 目录描述符行为限制。 新前置检查改进诊断,没有实现 共享支持;pro 配置不含宿主共享。控制节点中缺失的 Guest 私钥现在会被发现,即使旧的 ready 标记仍存在,但尚未实现私钥自动重新注入。管理 SSH 可以继续使用,节点间 SSH 则明确报告限制。完整的带日期验证矩阵见当前状态。