家人无法备份到 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 共享目标。这样结构更清楚,权限更稳定,也更不容易在以后维护时误伤已有备份。

Windows 无法通过 SMB 访问 Mac 共享文件夹的一次排查记录

最近在给家里的 Mac mini 做文件共享配置时,遇到一个很典型的问题:Mac 这边已经开启了文件共享,也能看到共享文件夹,但 Windows 电脑就是无法通过 SMB 正常访问。

这个问题表面上看像是“Windows 连不上 Mac”,实际排查下来,往往不是单一原因,而是 SMB 服务、共享权限、macOS 用户权限、Windows 凭据缓存和网络地址这几层叠在一起造成的。本文记录这次排查思路,方便以后遇到类似问题时按顺序检查。

问题现象

当时的目标很简单:在 Windows 电脑上访问 Mac mini 共享出来的文件夹,用它作为家庭服务器的一部分,方便在局域网内传文件、整理下载内容和访问外接磁盘。

Windows 端尝试访问的方式一般是:

\\Mac的内网地址
\\Mac的内网地址\共享名称

但实际表现可能是下面几种:

  • Windows 提示无法访问网络路径;
  • 能弹出用户名和密码输入框,但输入后仍然失败;
  • 能看到 Mac,但打不开具体共享文件夹;
  • 同一台 Windows 电脑之前能连,后来突然不能连;
  • Mac 本机看起来权限正常,但 Windows 端始终没有读写权限。

第一步:确认 Mac 的文件共享是否真正开启

先从 Mac 端开始检查,不要一上来就在 Windows 里反复输入密码。

在 macOS 里进入:

系统设置 -> 通用 -> 共享 -> 文件共享

这里要确认三件事:

  • 文件共享已经打开;
  • 目标文件夹已经加入共享列表;
  • 右侧用户权限里,准备用来登录的用户至少有“只读”或“读与写”权限。

很多时候问题就出在这里:Mac 只是开启了“文件共享”,但目标文件夹并没有加入共享列表,或者共享列表里有这个文件夹,但登录用户没有权限。

第二步:确认 SMB 已经对指定用户启用

Windows 访问 Mac 文件共享走的是 SMB。macOS 的文件共享打开以后,还需要在选项里确认 SMB 共享用户。

检查位置是:

系统设置 -> 通用 -> 共享 -> 文件共享 -> 信息按钮 -> 选项

在这里要确认:

  • “使用 SMB 共享文件和文件夹”已经打开;
  • 准备用来从 Windows 登录的 Mac 用户已经勾选;
  • 这个用户的密码是已知且可用的。

这一点很容易漏掉。共享文件夹权限里出现某个用户,并不等于这个用户已经被允许通过 SMB 登录。Windows 端输入的应该是 Mac 上已启用 SMB 的本地用户和密码。

第三步:不要只看共享权限,还要看磁盘和文件夹本身权限

macOS 文件共享有两层权限:一层是共享面板里的权限,另一层是磁盘和文件夹本身的文件系统权限。Windows 能不能访问,最终要同时通过这两层。

例如一个外接硬盘、APFS 卷或特殊用途目录,即使在共享面板里设置成了“读与写”,也可能因为文件夹本身权限、系统保护 ACL 或 Time Machine 管理状态而无法写入。

所以我会在 Mac 本机上先做一个简单验证:用同一个用户登录 Mac,直接在目标文件夹里新建一个测试文件。如果 Mac 本机这个用户都不能写入,那么 Windows 通过 SMB 也不可能正常写入。

第四步:Windows 端使用正确的登录格式

Windows 访问 Mac 共享时,用户名最好明确写成 Mac 本地用户名,不要依赖 Windows 自动补全。可以尝试下面几种形式:

Mac用户名:专用账号电脑名\Mac用户名:专用账号内网IP\Mac用户名

其中最关键的是:密码要用 Mac 这个本地用户的登录密码,而不是 Apple ID 密码,也不是 Windows 账户密码。

如果之前输错过用户名或密码,Windows 可能已经缓存了错误凭据。这种情况下即使 Mac 端已经改好了,Windows 仍然会继续用旧凭据登录,表现出来就像 Mac 还没修好。

可以在 Windows 的“凭据管理器”里删除与这台 Mac 相关的记录,然后重新连接。

第五步:优先用 IP 地址测试,不要先依赖电脑名

局域网里通过电脑名访问,有时会受 NetBIOS、mDNS、路由器或 Windows 网络发现影响。为了减少变量,排查时我更建议先用 Mac 的内网 IP 地址测试。

在 Mac 上查看当前内网 IP 后,在 Windows 资源管理器地址栏输入:

\\内网地址

如果 IP 可以访问,但电脑名不能访问,说明 SMB 服务本身大概率没问题,问题更可能在名称解析或网络发现上。后续可以再处理电脑名访问,但不要把它和 SMB 权限问题混在一起。

第六步:确认两台设备在同一个局域网

这一步看似基础,但家庭网络里很常见。Windows 电脑和 Mac mini 可能分别连到了不同网络,比如主 Wi-Fi、访客 Wi-Fi、手机热点、Mesh 的隔离网络,或者不同路由器下面的子网。

如果 Windows 和 Mac 不在同一个网段,或者路由器开启了访客网络隔离,Windows 就可能完全访问不到 Mac 的 445 端口。

排查时可以先确认两台设备的 IP 地址是否类似:

Mac:     内网地址
Windows: 内网地址

如果一个是 192.168.1.x,另一个是 192.168.50.x,就要先回到路由器和网络连接上排查。

第七步:重启 SMB 服务或重新开关文件共享

当权限、用户和网络都确认无误后,如果 Windows 仍然连不上,可以在 Mac 上关闭“文件共享”,等待几秒后再重新打开。必要时重启 Mac。

这一步不是玄学。SMB 共享配置、用户启用状态、外接磁盘挂载状态发生变化后,服务端有时需要重新加载配置。对家庭服务器来说,重启前最好确认没有正在进行的文件复制或备份任务。

我最后采用的检查顺序

以后再遇到 Windows 无法访问 Mac SMB 共享,我会按下面顺序处理:

  1. 确认 Mac 文件共享已开启;
  2. 确认目标文件夹已加入共享列表;
  3. 确认共享用户有读写权限;
  4. 确认 SMB 选项里已勾选这个用户;
  5. 在 Mac 本机验证该用户能否读写目标文件夹;
  6. Windows 端删除旧凭据后重新登录;
  7. 优先用 Mac 内网 IP 访问,而不是电脑名;
  8. 确认 Windows 和 Mac 在同一个局域网;
  9. 重新开关文件共享,必要时重启 Mac。

小结

Windows 无法通过 SMB 访问 Mac 共享文件夹时,不要只盯着用户名密码。真正稳定的排查方式,是把问题拆成四层:Mac 是否开启 SMB、用户是否允许通过 SMB 登录、目标文件夹本身是否允许访问、Windows 是否用了正确凭据和正确地址。

对家庭服务器来说,文件共享最好保持简单清晰:固定 Mac 的内网 IP,使用专门的本地共享用户,只共享必要目录,并避免把系统保护目录或 Time Machine 目标卷直接当作普通共享目录使用。这样后续 Windows、Mac 和其他设备访问起来都会更稳定。

远程桌面登录macos

系统偏好设置——》网络

手动或者自动指定本机的局域网IP地址,如果选择手动的话DNS也是需要自己输入,可以填公共DNS,比如114.114.114.114,119.29.29.29之类。

系统偏好设置——》共享

此图像的alt属性为空;文件名为image-1.png

将“远程管理”打勾

点击远程管理里的“电脑设置”,将三个选项都打勾,并且设置VNC密码

下载“VNC Viewer”,新建一个连接,

VNC Server处填写一开始设置的局域网IP地址,直接OK即可。

之后会跳出窗口让输入Macos的登录名和密码。就可以登录了。

ESXI虚拟机安装MacOS

虚拟机上安装macos比物理机上安装限制少的多,也简单的多。

本文是在esxi6.7 update3版本上安装的Macos Catalina 10.15.6 。安装流程总的来说分三步,

  1. 是制作ISO虚拟光盘。由于光盘的制作需要用到白苹果机器和制作软件,我更推荐直接下载别人提供的ISO文件。
  2. 给esxi打补丁。(我已将补丁文件放至文末,回复后可下载)
  3. 安装macos

一,制作ISO虚拟安装光盘

这一部分大家可以自行网上搜索,略过。

二,给esxi打补丁

存储——》数据存储浏览器——》创建目录,比如命名hackintosh——》将ISO和补丁文件都上传到这个目录。

管理——》服务——》右键点击启动TSM-SSH

用putty或者finalshell之类的ssh软件登录ESXI的后台

进入补丁安装包的目录位置。一般来说在/vmfs/volumes/目录下会有自己硬盘名字(其实是一个link)

以我自己这个为例,先

cd /vmfs/volumes/

然后,进入我的硬盘,samsung_850_evo

cd samsung_850_evo

最后再进入刚才建立的hackintosh目录

cd hackintosh

解压缩补丁包

tar xvf esxi-unlocker-master.tar.gz

进入解压缩后的文件夹

cd esxi-unlocker-master

执行安装包的安装文件

./esxi-install.sh

显示“success – please now restart the server!” 说明安装成功。重启esxi

三,安装MacOS

创建新虚拟机

名称随便填

客户机操作系统系列选Mac OS

客户机操作系统版本选择最新的,或者对应ISO版本的。

CD/DVD驱动器里选择 数据存储ISO文件,也就是刚才上传的macos ISO文件。

CPU和内存可以根据自己的实际情况给。

全部完成就可以开机这台虚拟机进入Macos安装界面

先进入磁盘工具,对硬盘做一下格式化。

选择VMware Virtual SATA Hard Drive Media进行“抹掉”。

这里要注意的是如果你是用的SSD固态硬盘,格式可以选择APFS,也就是apple file system,这是苹果对ssd硬盘优化过的文件格式。

完成之后就可以开始安装macOS了。

选择将系统安装在刚才格式化后的硬盘上。然后按照提示一步步走就行了,整个安装大约需要20-30分钟。

安装完毕后就可以设置系统,选择区域,语言之类

个人来说不建议用自己的apple ID登录黑苹果,万一被查出来封了宝贵的账号得不偿失,再说不登录一样可以使用。所以直接点“稍后设置”。

进入到系统,查看macos版本,和硬件配置。处理器频率和内存都显示正常,但是虚拟机下macos默认只能开启非常低的分辨率并且在系统界面中无法修改,这要借助其他工具。

然后还有个弊端就是操作非常卡顿。除了将显卡直通外,能稍微改善的方法就是远程桌面登录了。这个也将在其他文章中展开说。