家人无法备份到 Mac 共享 Time Machine 文件夹的一次排查记录

最近在整理家里的 Mac mini 服务器时,遇到一个和 Time Machine 网络备份有关的问题:Mac mini 上已经有一块专门给自己使用的 Time Machine 磁盘,也开启了文件共享,但家人的 MacBook 无法正常把备份写入这个共享位置。

一开始看起来像是普通的 SMB 共享权限问题:共享文件夹已经加上了,用户也给了“读与写”,但客户端还是无法创建 Time Machine 备份。排查以后发现,真正的问题不在共享面板,而在这个卷本身已经被 macOS 当作本机 Time Machine 目标管理。

当时的配置

Mac mini 上已有一个 Time Machine 目标卷:

  • 名称:timemachine;
  • 类型:本地磁盘;
  • 挂载点:本机 Time Machine 目标卷;
  • 文件系统:APFS;
  • 加密状态:已加密;
  • 配额:4 TB。

这个卷是给 Mac mini 自己做 Time Machine 备份用的。因为它容量比较大,所以直觉上会觉得:既然已经有一个 Time Machine 磁盘,把它共享出来,让家人的 MacBook 也往里面备份,应该也可以。

但这个思路实际并不稳妥。

表面现象:共享权限看起来没问题,但就是写不进去

在 macOS 的“文件共享”里,可以给某个共享目录设置用户权限,比如“只读”或“读与写”。如果只看这一层,很容易误判为:只要给家人的用户设置了“读与写”,对方就应该能备份。

但 Time Machine 网络备份不是普通文件复制。客户端需要在目标位置创建备份包,并持续写入大量快照数据。只要底层目录不允许创建文件或文件夹,哪怕 SMB 共享面板显示“读与写”,备份也会失败。

关键原因:Time Machine 卷根目录有系统保护 ACL

排查时发现,本机 Time Machine 目标卷 根目录存在一条系统 ACL,大意是禁止添加文件、删除文件、添加子目录、删除子项和修改属性。

deny add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown

这条规则很关键。它意味着这个卷根目录不是一个普通的数据目录,而是被 macOS 按 Time Machine 目标卷来保护。即使是管理员账号,也会受到这条规则影响。

所以这次问题的核心结论是:共享面板里的“读与写”只是 SMB 共享层权限,不能覆盖 APFS 卷根目录上的 Time Machine 保护 ACL。

为什么不建议共用同一个 Time Machine 卷

把 Mac mini 自己正在使用的 Time Machine 卷再共享给家人的 MacBook,有几个问题:

  • 这个卷已经被 Mac mini 本机 Time Machine 服务管理;
  • 卷根目录有系统保护规则,不适合作为普通共享目录;
  • 多个设备混用同一个目标位置,后续容量、权限和故障排查都会变复杂;
  • 如果误操作删除或修改内容,可能同时影响 Mac mini 自己的备份。

Time Machine 备份目标最好职责单一。Mac mini 自己用一个目标,家人的 MacBook 用另一个目标。即使它们在同一块物理硬盘上,也应该通过不同 APFS 卷或专用文件夹隔离开。

推荐方案:给家人单独建一个 APFS 卷

更稳妥的方案,是保留当前 timemachine 卷只给 Mac mini 自己使用,然后在同一块外置硬盘或同一个 APFS 容器里,新建一个单独给家人使用的 APFS 卷。

例如可以新建一个卷:

卷名:家人专用备份卷
用途:家人 MacBook 的网络 Time Machine 备份目标

然后按下面方式配置:

  1. 不要把这个新卷添加为 Mac mini 自己的 Time Machine 目标;
  2. 在“系统设置 -> 通用 -> 共享 -> 文件共享”里共享这个新卷;
  3. 给家人的本地用户设置“读与写”;
  4. 进入共享项目的选项,开启“共享为时间机器备份目的位置”;
  5. 按实际磁盘空间设置备份大小上限,比如 1000 GB 或 1500 GB;
  6. 在家人的 MacBook 上重新选择这个网络备份目标。

这样做的好处是很直接:Mac mini 自己的备份和家人的网络备份互不干扰,权限也更清楚,后续如果要扩容、限制容量或排查问题,也不会互相牵连。

如果不想新建 APFS 卷怎么办

如果暂时不想新建 APFS 卷,也可以在普通数据卷里创建一个专用文件夹,只把这个文件夹共享为 Time Machine 目的位置。

但我更倾向于独立 APFS 卷。原因是 APFS 卷更适合做容量隔离,也更容易看懂用途。尤其是家庭服务器长期运行后,目录和共享项会越来越多,清晰的卷名比藏在某个普通文件夹里的备份目录更容易维护。

排查时还遇到的权限提示

这次排查过程中,命令行读取某些备份目录时还出现过 macOS 权限拦截,例如 Operation not permitted。这类提示通常和 macOS 隐私权限、完全磁盘访问权限、Time Machine 后台服务状态有关。

如果只是配置家人的网络备份,优先不要陷入这些系统级问题。先把备份目标拆分清楚:Mac mini 自用卷归 Mac mini,自家人备份卷归网络 Time Machine 共享。结构清楚以后,再去处理具体服务报错会简单很多。

我的检查顺序

以后再遇到家人无法备份到 Mac 共享 Time Machine 文件夹,我会按这个顺序检查:

  1. 确认共享目标是不是 Mac mini 自己正在使用的 Time Machine 卷;
  2. 确认目标目录是否存在 Time Machine 保护 ACL;
  3. 不要只看 SMB 共享面板里的“读与写”;
  4. 检查该用户在 Mac 本机是否能真正创建文件和文件夹;
  5. 给家人单独准备 APFS 卷或专用文件夹;
  6. 在共享选项里启用“共享为时间机器备份目的位置”;
  7. 设置合理的备份容量上限;
  8. 在家人的 MacBook 上重新选择新的网络备份目标。

小结

这次问题的教训是:Time Machine 目标卷不是普通共享文件夹。即使 SMB 共享层显示“读与写”,底层 APFS 权限和 Time Machine 保护规则仍然可能阻止客户端创建备份。

家庭服务器里的备份配置,最好从一开始就分清用途。Mac mini 自己的 Time Machine 卷只给本机使用;家人的 MacBook 单独使用一个网络 Time Machine 共享目标。这样结构更清楚,权限更稳定,也更不容易在以后维护时误伤已有备份。