跳转到主要内容

Farrow 0.8.0:恢复更顺畅,镜像更新

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

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 和显式 锁定的镜像版本继续使用原基础镜像。仓库与更新行为见镜像参考。

安装或升级

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。其他安装方式见快速上手。

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 则明确报告限制。完整的带日期验证矩阵见当前状态。