跳转到主要内容

Barn 0.9.0

Linux 实验环境、原生 macOS 虚拟机,以及更清晰的诊断与中断恢复。

Barn 0.9.0 用同一套命令行工具管理 Linux 实验环境与原生 macOS 虚拟机, 同时改进错误提示和中断操作的恢复体验。

安装 0.9.0 · 下载发行包 · 完整变更记录

Apple Silicon 上的 macOS 虚拟机

barn mac 创建命名的 macOS 27 虚拟机,提供原生桌面、SSH、共享目录与文本剪贴板。 首台机器从经过校验的 Apple 恢复镜像安装基础系统,之后的机器通过克隆复用它, 各自保有独立的可写磁盘、凭据与私有子网。

barn mac up
barn mac open
barn mac ssh

Mac 客机需要 Apple Silicon、macOS 27+ 与原生组件 Barn Mac.app。 Mac 教程说明组件的安装方式,以及使用 Xcode 27 从发行标签构建的方法。0.9.0 发行归档提供 CLI;使用 macOS 客机需通过 Xcode 27 从标签构建 Barn Mac.app。Apple 允许同时运行两台 macOS 虚拟机,包含其他工具启动的机器。 Mac 状态独立于 Linux 主机清单,Linux 的 destroy 和 purge 会保留它们。

更顺畅的 Linux 环境恢复

重复 barn up 即可继续未完成的初始化。首次启动失败后,修正配置可以直接重试; 中断的销毁操作也可以继续。宿主重启后,即使原 QEMU PID 已被无关进程复用,Barn 也能识别原虚拟机已经停止,不会向无关进程发送信号。

并发修改命令最多等待十分钟,并说明哪个操作正在持有锁;状态和访问命令保持可用。 计划会逐项列出节点的数据盘,包括默认挂载到 /data 的 128 GiB 数据盘。

能指向下一步的诊断

配置错误会尽可能给出规则、取值和行号,并对误拼的 vm_* 字段提供建议。 外部命令失败时保留 stderr 末尾的有效信息;JSON 失败结果使用统一分类, 并按需给出 reason 与 next。

宿主准备会在请求管理员权限前说明软件包与网络变更。链接形式的 SSH 配置保持原样, Barn 会打印需通过 dotfile 管理器添加的 Include 行。

更新的 Linux 镜像

本版内置镜像目录 2026093001,包含 9 个系列、41 个镜像文件。 Debian 12/13 与 Rocky Linux 8/9 使用经过 Barn 规范化的镜像;Debian 带有 XFS 工具与 en_US.UTF-8,默认 locale 保持为 C.UTF-8。Rocky Linux 8 使用已有的 chrony 配置和 chronyd 服务,并在制镜时完成 SELinux 标签处理,避免首次启动全盘重标记。 Ubuntu 保留 Canonical 原始镜像,Ubuntu 24.04 继续作为默认客机系统。

barn image list
barn update

barn update 只刷新 Linux 镜像目录,不升级 Barn 程序,也不替换已有虚拟机的磁盘。

升级注意事项

  • 命令为 barn,优先配置文件为 barn.yml,状态位于 ~/.barn,环境变量统一使用 BARN_*。
  • 移除会直接删除环境的 rm 别名。确实要丢弃整套 Linux 部署、持久盘和密钥时,请显式使用 purge。
  • 自动化脚本需注意:recreate_required、nodes_removed 是 error: "conflict" 下的 reason;resource_conflict 改为 resource。缺少配置和未知镜像返回 usage/2,详见退出码参考。
  • stop 和 start 保留磁盘;recreate 替换根盘与非持久数据盘。Linux 持久数据盘的文件系统无法识别或确认损坏时,仍可能被清空重建,使用前请阅读存储规则。

从 Linux 快速上手或 macOS 教程 开始。报告问题时,请在 GitHub Issues 附上命令、Barn 版本、宿主平台与相关日志。