我的 M4 Mac mini 平时从外置固态硬盘启动,系统是 macOS 26.4.1。升级系统时一直失败,先后报错 201、7723,最后是 MSU 1256,提示 "Failed to find SFR recovery volume"。
原因是内置盘上的系统恢复分区(disk0s3,类型 Apple_APFS_Recovery)被删掉了。macOS 升级要用到这个分区,找不到就会失败。Asahi Linux 的文档也提醒过:删掉这个分区后 macOS 就无法升级,只能用 DFU 恢复来修。
修复方法:用另一台 Mac,通过 DFU 模式把 M4 的内置盘整个重刷一遍。
注意:DFU「恢复」会抹掉 M4 的内置盘。我的内置盘上没有数据,外置盘也不受影响。如果你的内置盘上有数据,先备份。
主机
我用的是一台 M5 Pro Mac mini,系统是 macOS 27。
数据线
M4 Mac mini
我插中间这个口一次就连上了。如果你反复试都不行,再换最左边的口试试。插错口只会连不上,不会损坏机器。
一定要先按住电源键,再插电源线。
顺序反了,或者断电时间不够,M4 进入的是「恢复模式」(Recovery),不是 DFU 模式。这时状态灯同样会亮橙色,看起来像是成功了,但访达里什么都不会出现,也没法按 DFU 的流程恢复。我第一次就是栽在这里。
步骤
怎么确认进的是 DFU
不要只看状态灯。我第一次看到橙灯一闪一闪,以为成功了,其实进的是恢复模式。查到的资料说,这种闪烁是固件在报 SOS,表示需要恢复。
要在主机上确认,有两种方法:
system_profiler SPUSBHostDataType | grep -E "Apple (Mobile )?Device"| 输出 | 说明 | 怎么办 |
|---|---|---|
Apple Device (Port DFU Mode) | 进入了 DFU 模式 | 继续下一步 |
Apple Mobile Device (Recovery Mode) | 进入的是恢复模式 | 从第 1 步重来,注意按键顺序 |
| 没有输出 | 主机没识别到 M4 | 检查数据线和插口,再重来 |
如果怎么试都没有输出,可以把命令里的 SPUSBHostDataType 换成 SPUSBDataType 再试一次,较早的 macOS 用的是这个名字。
用 Apple Configurator(我用的方法)
不要选「修复」(Revive)。 修复不会重新分区,补不回被删掉的 disk0s3。只有「恢复」会抹掉内置盘,按出厂结构重建分区。
用访达(如果你的访达能显示)
访达侧边栏的「位置」下面会出现「Mac」,右边显示「Mac DFU 模式」。点「恢复 Mac…」,再点「恢复并更新」。同样,不要点「修复 Mac…」。
看不到的话,可以在「访达 → 设置 → 边栏」里勾选「CD、DVD 和 iOS 设备」再看。我的访达一直没显示,所以直接用了 Configurator。
过程和耗时
关于代理
我全程开着 Quantumult X,苹果的流量按规则走直连,恢复没有受影响。如果你的代理会把苹果的流量转发到代理服务器,或者恢复时报网络、签名相关的错误,就先关掉代理再试。
diskutil list internal输出里应该有类似这样的一行,大小约 5.4 GB:
3: Apple_APFS_Recovery 5.4 GB disk0s3
加载评论中...