Barn 1.2.0:资源规格、根盘扩容与宿主域名
Barn 1.2.0 于 2026-11-12 发布,对应提交 90f6158。本版本新增资源覆盖、可恢复的根盘扩容、可配置生命周期并发和清单 hosts 发布。双语命令参考覆盖全部 57 个操作命令及其选项。
从 1.1.0 升级
Linux 清单未指定 CPU/内存时,默认值由 2 vCPU / 4 GiB 改为 1 vCPU / 2 GiB,已有清单也受此影响。如需保留旧默认值,请在 all.vars 中显式设置 vm_cpu: 2、vm_mem: 4GiB,保留各节点覆盖值,并在应用变更前检查 barn plan。已应用 VM 的资源会保留到显式执行资源变更操作为止。根盘与数据盘默认值仍为 64 GiB 和 128 GiB。
VM 资源规格
可使用 --cpu/-C、--mem/-M、--scale/-S、--disk/-D,并结合镜像与架构选择。对应的 BARN_* 环境变量提供默认覆盖值,命令行优先。生成清单时保存基础规格;计划、校验、状态和生命周期输出使用 1c2g 等 SPEC 标签展示有效资源,JSON 保留数值、基数、倍数与输入来源。
resize --disk/-D 可原地扩大根盘。Barn 先停止 QEMU,再扩大磁盘,进入客机核验末尾的普通 ext4/XFS 分区,并记录恢复阶段,使中断操作可以续跑。扩容保留 VM 身份、密钥和数据,并恢复操作前的运行或停止状态;缩容与不支持的布局会被拒绝。详见根盘扩容与恢复。
生命周期并发
up、start、stop、restart、reload、recreate、destroy、purge 可通过 --parallel/-p 指定节点并发。默认值为逻辑 CPU 数减二,最小为一;零表示全部所选节点并行,正数指定上限。重试建议会保留显式覆盖值。
清单宿主名称
在 all.vars.vm_hosts 中声明服务名,使用 barn hosts install -f pigsty.yml --json 预览,再用 barn hosts install -f pigsty.yml --yes 应用。清单模式无需先创建 VM;省略 -f 时继续使用已应用节点名称。相同映射按大小写不敏感规则合并,地址冲突会报错;宿主侧映射不改变 VM 身份或客机配置。详见额外 hosts 映射。
依赖与打包
源码、CI 与发行包使用 Go 1.27.4。本轮将 golang.org/x/sys 更新至 0.50.0、golang.org/x/term 更新至 0.48.0、golang.org/x/text 更新至 0.44.0、github.com/klauspost/compress 更新至 1.20.4。打包使用 GoReleaser 2.20.1、内置 nFPM 2.48.0 与 Syft 1.57.1;RPM 内容校验改为要求 SOURCE_DATE_EPOCH 时间戳。版本锁定与许可证清单保存在发行源码中。
govulncheck 未发现导入包或可达符号中的漏洞;模块级报告列出的 GO-2026-5932 位于 Barn 未导入的 golang.org/x/crypto/openpgp。
镜像目录
内置签名目录保持 revision 2026110502,包含 9 个发行版系列、17 个架构制品的 stable 版本。两个官方源均通过签名验证、全新数据根激活、内置字节比对和制品大小/可达性检查。默认镜像仍为原生架构的 Ubuntu 24.04。
发布验收
发布验收记录记录源码与打包 CI、Developer ID 签名及公证、制品核验、Linux/KVM 根盘扩容恢复、原生 Mac 生命周期,以及从公开 1.1.0 升级的测试。历史候选版记录保留原始版本和验收范围。
安装或构建
替换 Barn.app 前先停止运行中的 Mac VM,再通过 Homebrew 升级:
也可安装指定版本:
安装器核验归档 SHA-256。Darwin arm64 归档包含签名、公证后的 CLI、helper 与 Barn.app;其他归档及 Linux DEB/RPM 包包含 CLI 与配套 helper。详见安装指南和源码构建。