# Barn 0.9.0

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

---

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

---

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

[安装 0.9.0](/zh/docs/start/installation/) · [下载发行包](https://github.com/pgsty/barn/releases/tag/v0.9.0) · [完整变更记录](https://github.com/pgsty/barn/blob/v0.9.0/CHANGELOG.md)

## Apple Silicon 上的 macOS 虚拟机

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

```bash
barn mac up
barn mac open
barn mac ssh
```

Mac 客机需要 Apple Silicon、macOS 27+ 与原生组件 `Barn Mac.app`。
[Mac 教程](/zh/docs/start/macos/#install)说明组件的安装方式，以及使用 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
继续作为默认客机系统。

```bash
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，详见[退出码参考](/zh/docs/reference/cli/#退出码)。
- `stop` 和 `start` 保留磁盘；`recreate` 替换根盘与非持久数据盘。Linux 持久数据盘的文件系统无法识别或确认损坏时，仍可能被清空重建，使用前请阅读[存储规则](/zh/docs/start/storage/)。

从 [Linux 快速上手](/zh/docs/start/tutorial/)或 [macOS 教程](/zh/docs/start/macos/)
开始。报告问题时，请在 [GitHub Issues](https://github.com/pgsty/barn/issues)
附上命令、Barn 版本、宿主平台与相关日志。
