如何在 Mac 上卸载 Multipass
Multipass 靠一个系统级后台服务创建和运行 Ubuntu 虚拟机,App 只是前端界面,所以先备份要留的实例数据,再决定删除并清空实例和移除应用。这份指南覆盖 Canonical GitHub Releases 上的官方 pkg 安装包和 Homebrew cask multipass。这次记录的 Mole 测试只从 pkg 里拷出了 App,没有跑安装器,所以当时并没有下面说的后台服务。
先备份工作文件,再删除实例
先用 multipass list 列出实例,逐个核对还要的工作文件、数据库和其他资料,复制到宿主机或另一份备份,再打开副本确认能用。下面的命令删除全部实例,purge 会彻底销毁磁盘数据,无法撤回。
multipass list
multipass delete --all
multipass purge
multipass delete 只是把实例标记为待删除,在运行 multipass purge 之前还能用 multipass recover 找回,purge 才会彻底销毁所有已标记的实例,参考 delete 命令 和 purge 命令。用你自己的账号跑,不要加 sudo,继续之前先确认 multipass list 已经空了。
退出、移除 App
菜单栏里还有 Multipass 的话先退出,在「活动监视器」里确认没有 multipass 进程,再把 Multipass 从「应用程序」拖进废纸篓。
如果你跑过完整的 pkg 安装器,它还装了系统级后台服务 multipassd、/usr/local/bin/multipass 这个命令行工具和安装记录,直接把 App 拖进废纸篓一样都碰不到,这部分交给 Canonical 的卸载脚本:
sudo sh "/Library/Application Support/com.canonical.multipass/uninstall.sh"
这个脚本也会尝试删除虚拟机实例,GitHub 上有报告说以 root 身份跑时这一步会报认证错误,上面已经清空过实例的话,这个报错就没什么可删的了,参考 issue #4484。另一份报告提到旧版脚本会留下 /Library/Application Support/multipass-client-certificate 和 /Library/LaunchAgents/com.canonical.multipass.gui.autostart.plist,跑完之后顺手看看这两个还在不在,参考 issue #2692。
Multipass 的数据放在哪里
后台服务卸载完成、应用退出后,在访达按 Shift + Command + G 打开下面仍存在的用户数据路径,先备份还要的界面设置,再只把不再需要的 Multipass 项目移到废纸篓,系统文件留给官方脚本或 Homebrew,不移除整个 Application Support 或 Preferences。
| 位置 | 里面是什么 | 如何处理 |
|---|---|---|
~/Library/Application Support/com.canonical.multipassGui |
bundle id 下的应用数据 | 默认勾选 |
~/Library/Application Support/multipass、~/Library/Application Support/multipass-gui |
以显示名命名的应用数据 | 核对勾选,符合条件且未共用时默认勾选 |
~/Library/Preferences/multipass |
偏好设置文件夹 | 核对勾选,符合条件且未共用时默认勾选 |
~/Library/Saved Application State/com.canonical.multipassGui.savedState |
窗口恢复状态 | 默认勾选 |
~/Library/LaunchAgents/com.canonical.multipass.gui.autostart.plist |
登录时启动菜单栏 App,Homebrew zap 清单里有这一项 | Multipass 不用了就移除,也去「系统设置 › 通用 › 登录项与扩展」看一眼 |
/Library/Application Support/com.canonical.multipass |
完整安装器装的后台服务系统文件和卸载脚本 | 留给 Canonical 的脚本处理 |
/usr/local/bin/multipass |
完整安装器装的命令行工具 | 由 Canonical 的脚本或 Homebrew 移除 |
检查结果
pgrep -il multipass
multipass list
ls -d ~/Library/Application\ Support/com.canonical.multipassGui
launchctl list | grep -i multipass
pgrep没有输出,说明没有名字带 Multipass 的进程在跑。multipass list报「command not found」,说明命令行工具已经不在了,列出实例说明还有没删掉的。ls -d打印出路径说明文件夹还在,提示「No such file or directory」说明已经不在了。launchctl list有输出,说明当前会话里还加载着 Multipass 的登录项或代理。
用 Homebrew 安装时
Mole 会先检查 zap 清单,涉及未勾选的数据、共用的文件或无法确认的内容时不执行 --zap,已勾选的残留仍由 Mole 清理。
multipass 这个 cask 走的是同一个 pkg,所以 brew uninstall --cask multipass 不管加不加 --zap,都会先跑它的卸载步骤,卸载 multipassd、清掉安装记录,再删除 /Library/Application Support/com.canonical.multipass、/Library/Logs/Multipass、/usr/local/bin/multipass 和 shell 补全文件。它的 zap 清单另外会碰到 ~/Library/Application Support/com.canonical.multipassGui、multipass、multipass-gui、登录项 plist、~/Library/Preferences/multipass 和窗口恢复状态,全部在你自己的 ~/Library 里。multipass、multipass-gui 和偏好设置文件夹符合条件且未共用时默认勾选,存在的行保持未勾选会阻止 --zap,涉及的数据全部选中且通过检查,Mole 才可能加上 zap。
brew uninstall --cask multipass
Mole 会列出什么
~/Library/Application Support/com.canonical.multipassGui和窗口恢复状态默认勾选。~/Library/Application Support/multipass、~/Library/Application Support/multipass-gui和~/Library/Preferences/multipass符合条件且未共用时默认勾选,要保留数据可取消勾选或使用「取消全选」,先备份还要的界面设置,再核对这些行。- 程序指向 Multipass.app 里面的登录项 plist 会列出,默认勾选。
- 跑过完整安装器的话,Mole 还可能列出系统级的 Multipass 文件夹,默认不勾选,这部分留给 Canonical 的卸载脚本或 Homebrew,它们会顺带停掉后台服务。
这次检查覆盖了什么
2026 年 9 月 19 日,从官方 pkg 的 Payload 里拷出 App,没有跑安装器,所以当时没有后台服务和命令行工具,当天用 Mole Preview 277 卸载,bundle id 对应的 Application Support 文件夹作为默认勾选的一行被移除。完整安装器、正在运行的虚拟机实例、Canonical 的卸载脚本和 Homebrew cask 都不在这次测试范围内,后台服务和卸载脚本相关的内容来自 Homebrew cask 和两份公开的 GitHub 报告,是 2026 年 9 月 27 日核对的。
