macOS 本地挂载

在 Mac 上给 macFUSE 放行

CloudDrive2 要把云盘挂成本地磁盘,靠的是 macFUSE,而 macFUSE 要装一个内核扩展。Intel Mac 点一下「允许」就完事;Apple 芯片的 Mac 还得先进恢复模式把安全策略降一档。两条路这一页都走一遍。

先说清楚适用范围

谁需要这一页

要在 Mac 上把云盘挂成磁盘的人:官网直接下载的核心服务(含 Homebrew 装的),以及 macOS 应用的直接下载版

Mac App Store 版跑在完整沙盒里,本身就不含本地挂载,也就用不上 macFUSE——浏览、播放、传输和备份都不受影响。两版差异见 macOS 版

背景

为什么非要动系统设置

挂载要经过内核

把一块云盘变成访达里的磁盘,意味着系统每一次读目录、打开文件、写回内容,都要有人接住。macFUSE 的内核扩展就是接住这些请求的那一层,CloudDrive2 通过它把请求转成云盘 API 调用。没有它,挂载这件事在 macOS 上做不到。

其余功能都不经过它:浏览、播放、跨云复制、备份、WebDAV,没装 macFUSE 一样能用。

Apple 芯片默认不加载第三方内核扩展

Apple 芯片的 Mac 出厂是「完全安全性」,任何第三方内核扩展都不会加载,装了也不会。要让它加载,得进恢复模式把安全策略降到「降低安全性」,并勾上允许用户管理内核扩展。

Intel Mac 没有这一层,装完直接在系统设置里点「允许」即可。

「降低安全性」降的是哪一档

它只是允许加载由 Apple 认可的开发者签名的内核扩展,而且每一个扩展仍然要你在系统设置里逐个放行。它不等于关闭 SIP(系统完整性保护),也不等于关闭 Gatekeeper——这两样都不用动,macFUSE 的安装包本身就经过 Apple 签名与公证。

这套动作每台机器只做一次。做完之后,以后升级 macFUSE 或者 CloudDrive2 都不必再来。

有人会问:macFUSE 新版不是有个不用内核扩展的 FSKit 后端吗?有,但它只对 libfuse3 接口开放,挂载点还只能落在 /Volumes 下面,I/O 性能也不及内核后端。CloudDrive2 走的是内核后端,所以这一步省不掉。

第一步

先看你的 Mac 是哪种芯片

两条路差很多,先确认一下。点屏幕左上角的苹果菜单 →「关于本机」,看「芯片」那一行。

也可以在「终端」里问一句,arm64 是 Apple 芯片,x86_64 是 Intel:

uname -m

Apple 芯片

三段流程,两次重启

顺序不能换:先在系统设置里开个头,再进恢复模式改策略,回到桌面之后才轮到那个「允许」按钮。

  1. 装 macFUSE,然后按提示开个头

    macfuse.github.io 下载安装包装上。系统会弹一条「系统扩展已被阻止」,点「打开系统设置」——如果没弹,自己去「系统设置 → 隐私与安全性」,往下拉到底。

    在那里点「启用系统扩展…」,输入登录密码,然后点「关机」。这一步是在告诉系统:等下要进恢复模式改策略。

  2. 进恢复模式,把安全策略降一档

    Mac 完全关机之后,按住电源键(或触控 ID 键)不松手,直到屏幕上出现「正在载入启动选项」。点「选项」,再点「继续」,选择启动磁盘和一个管理员账号,输入密码。

    进入恢复界面后,在顶部菜单栏选「实用工具 → 启动安全性实用工具」。选中你的系统磁盘,点「安全策略…」,选「降低安全性」,勾上「允许用户管理来自被认可开发者的内核扩展」,点「好」,输入密码,重新启动。窗口长什么样见下图。

  3. 回到桌面,点那个「允许」

    重启回到 macOS,打开「系统设置 → 隐私与安全性」,往下拉,会看到一条被拦下的记录,右边有「允许」按钮。点它,输入登录密码。

    然后再重启一次。这一次之后,内核扩展才真正加载。

第 2 步里那个窗口长这样

启动安全性实用工具的示意图 窗口标题为「启动安全性实用工具」。下方两个单选项:「完全安全性」未选中,「降低安全性」已选中。「降低安全性」下面有一个已勾选的复选框,写着「允许用户管理来自被认可开发者的内核扩展」。右下角是「好」按钮。 启动安全性实用工具 完全安全性 只允许当前系统,或 Apple 目前信任的已签名系统软件运行。 降低安全性 允许任何 Apple 曾经信任过的已签名系统软件运行。 允许用户管理来自被认可开发者的内核扩展

示意图,非截图。选「降低安全性」,勾上那个复选框,点「好」,输入密码,重新启动。

第 3 步里要找的那一条

系统设置隐私与安全性里被阻止的系统扩展示意图 窗口标题为「隐私与安全性」。中间一行写着「已阻止载入来自开发者的系统软件」,行末是一个「允许」按钮。 隐私与安全性 已阻止载入来自开发者的系统软件。 macFUSE 的开发者签名会显示在这里。 允许

示意图,非截图。这条记录在「隐私与安全性」页面靠下的位置,和「允许以下来源的应用程序」在同一区。

找不到「允许」按钮?

这个按钮只在系统刚拦下扩展之后才出现。如果那一栏是空的,回 CloudDrive2 里再试一次挂载,让系统重新拦一次,然后马上回到「隐私与安全性」看。

Intel

一次放行,一次重启

Intel Mac 不需要恢复模式,也不用改安全策略。

  1. 装 macFUSE

    macfuse.github.io 下载安装包装上。

  2. 放行

    系统弹出提示时点「打开系统设置」,在「隐私与安全性」里点「允许」。macOS 12 及更早版本在「系统偏好设置 → 安全性与隐私」,要先点左下角的锁解开才能点「允许」。

  3. 重启

    重启一次,内核扩展就加载了。

收尾

确认它真的加载了

在「终端」里跑这一句:

kmutil showloaded --list-only | grep -i macfuse

打印出一行带 io.macfuse.filesystems.macfuse 的,就说明内核扩展已经在跑了。什么都没有,说明还没放行成功,回上面对一遍步骤。

装的是哪一版 macFUSE,可以在「系统设置」侧边栏最下面的 macFUSE 一栏里看到,更新也在那里检查。

确认之后回到 CloudDrive2 的管理界面,进「挂载点」页添加一个挂载点,挂载点填一个空目录。整个流程见帮助页的挂载一节

排错

没走通的时候

启动时报 libfuse.2.dylib 缺失

macFUSE 没装。挂载功能依赖它提供这个库。到 macfuse.github.io 下载安装,再按本页的流程放行,然后重新启动 CloudDrive2。

升级 macOS 之后又挂不上了

两种可能,按顺序排查。

  1. 手里这版 macFUSE 还不认识新系统。macFUSE 是给每个 macOS 大版本单独打包一份内核扩展的——你装的那一版发布时如果还没有你现在这个系统,包里就没有对应的那一份,自然加载不了。打开「系统设置」,在侧边栏最下面找到 macFUSE 那一栏,看一眼版本号并检查更新;有新版就装上,装完重启。
  2. 启动安全策略被重置了。大版本升级有可能把它恢复成「完全安全性」,第三方内核扩展就又不加载了。按上面 Apple 芯片的流程再走一遍即可,恢复模式那一步依然只是勾回同一个选项。

动手之前先用上面那句命令确认一下扩展到底加载没有,能省掉白折腾。

想把安全策略改回「完全安全性」

可以,再进一次恢复模式,在「启动安全性实用工具」里选回「完全安全性」即可。

但改回去之后 macFUSE 的内核扩展就不再加载,本地挂载也就没有了。CloudDrive2 的其余功能不受影响。

Mac App Store 版为什么没有挂载

App Store 版运行在完整沙盒里,按规则不能加载内核扩展,所以不含本地挂载,也不需要 macFUSE。要挂载就用官网直接下载版——两版共用同一套账号,随时可以换。差异对照见 macOS 版,安装包在下载页

用 Homebrew 装的核心服务也要这一套吗

要。Homebrew 换的只是 CloudDrive2 的安装方式,macFUSE 该装还得装,该放行还得放行,流程完全一样。也可以用 Homebrew 装 macFUSE:

brew install --cask macfuse

装完仍然要按本页的流程在系统设置里放行。

还是没解决?

bug 和功能需求最好提到 GitHub issues 上,有记录也追得到。Telegram 群里平时有人在,也可以直接发邮件。