卸载与清理
3 分钟阅读
Barn 分别独立管理 Linux 实验环境与 macOS 虚拟机。barn purge 仅删除 Linux 部署,不会删除任何 Mac 虚拟机。 在完成虚拟机、宿主集成、镜像缓存和宿主网络的清理前,请先保留 barn 命令行程序。
选择清理范围
| 目标 | 命令 |
|---|---|
| 停止运行中的虚拟机并保留磁盘 | barn stop;Mac 虚拟机使用 barn mac stop --all |
| 删除单个 Linux 节点 | barn destroy <node> |
| 删除 Linux 实验环境,保留持久数据盘 | barn destroy |
| 删除 Linux 实验环境、持久数据盘与密钥 | barn purge(默认直接删除,--ask 开启确认) |
| 删除指定的 Mac 虚拟机 | barn mac destroy <name...>(需输入确认词) |
执行删除前,请先通过 barn status(Linux 节点)和 barn mac ls(Mac 虚拟机)核对名称,并将需要保留的文件备份到宿主。
完整清理步骤
-
销毁 Linux 与 Mac 虚拟机
清空整套 Linux 实验环境(含已保留的持久数据盘与部署密钥):
默认立即删除;如需先查看虚拟机列表与清理范围,改用
barn purge --ask,输入y/yes确认或n/no取消,不接受--yes、-y或--force。如果还创建过 macOS 虚拟机,先查看列表再按名称逐一销毁: -
移除 SSH 与
/etc/hosts集成整套销毁 Linux 部署时会自动移除默认的
~/.ssh/barn_config集成。若曾安装过自定义名称的 SSH 片段、/etc/hosts主机名条目或 Mac SSH 集成,请依次清理:以上命令仅清理 Barn 写入的受管配置块,不会影响你原有的
~/.ssh/config和/etc/hosts条目。 -
清理镜像缓存
预览并删除本地缓存的 Linux 与 macOS 镜像文件:
-
卸载 Linux 宿主网络
先销毁 Linux 实验环境(只要还有 Linux 虚拟机在运行,该命令就会中止),再预览并卸载多用户共享的 Linux 宿主网络(Mac 虚拟机的私有网络会随虚拟机停止自动释放,无需单独卸载):
宿主网络由 systemd-networkd 管理时,如果存在其他宿主网络接口或无法确认由 Barn 独占,卸载会保留全局 networkd 单元状态;计划中会报告
preserve_networkd,执行结果在checks.networkd中说明原因。 -
卸载 Barn 程序与剩余文件
通过包管理器安装的 Barn 可直接用对应命令卸载:
HomebrewDebian / UbuntuRHEL / Fedora- 用户态安装脚本(
install.sh):删除~/.local/bin下的barn、barn-hosts-helper、.barn-current、.barn-releases/与.barn-install.lock,并移除 Shell 配置文件中的PATH设置。 - 手动归档或源码构建:停止全部 Mac 虚拟机后,删除解压后的发行目录、
bin/mac或单独复制出去的Barn.app(0.9.0版本为Barn Mac.app),以及保存窗口位置的~/Library/Preferences/com.pgsty.barn.plist(0.9.0版本为io.pgsty.barn.mac-runner.plist)。 - 手动安装的 hosts helper:若曾手动安装
/opt/barn/libexec/barn-hosts-helper,在完成barn hosts uninstall --yes且确认本机无其他用户使用 Barn 后即可删除。
- 用户态安装脚本(
请务必在销毁全部 Linux 和 Mac 虚拟机之后再删除 ~/.barn(或自定义 BARN_HOME)。 ~/.barn 同时存放两类虚拟机的运行状态、密钥、持久数据盘与基础镜像;若仍有虚拟机目录残留或 destroy 报错,请先通过 barn status / barn mac ls 排查原因,切勿直接递归强删目录。