从低版本 macOS 升级到 Big Sur 时,卡进度条

前言

如题,这个问题笔者没有遇到,最早是一群老外 MDM 管理员发现并报告的,MDM 指的是 Mobile Device Management,是一套苹果公司针对企业推出的资产管理软件服务。打个比方,MDM 管理员相当于公司的 IT 资产管理员,可通过苹果的 MDM 系统远程管理公司的 Mac 电脑资产。

当然,无论是黑苹果还是白苹果,升级到新的 macOS 系统失败的原因多种多样各不相同,本文介绍的是其中一种概率非常高的特殊情况,主要出现在从 macOS High Sierra,macOS Mojave,macOS Catalina 升级到 macOS Big Sur 时失败,卡在第二次重启或第三次重启后的读条位置。主要影响的版本是 Big Sur 11.4 和 Big Sur 11.5,Big Sur 11.6 也有报告。

 

问题根源

当下述位置中的多个文件夹

/private/var/folders/*/*/C/com.apple.metadata.mdworker

拥有超过 2 万个文件时,升级到 Big Sur 有非常高的概率会失败。这些文件和文件夹主要和 Spotlight 功能关联,在重度 macOS 用户群体中,这些文件夹的文件总数甚至可以超过 50 万个。

 

解决方法

这里有两种情况,第一种是已经升级失败,由于有重要数据没有备份,想抢救一下的;另一种是,还没有升级,刚好看到本文,想自己也检查一下的;这里先说后一种,「提示」以下方法和步骤黑苹果和白苹果通用。

 

升级前检查

运行终端,输入以下命令:

sudo find /private/var/folders/*/*/C/com.apple.metadata.mdworker -type d | wc -l

然后输入你的开机密码(输入过程不会显示 * 号,输完直接回车),你会得到一个数字:

~ sudo find /private/var/folders/*/*/C/com.apple.metadata.mdworker -type d | wc -l
Password:
    3229

然后输入另一个命令:

sudo find /private/var/folders/*/*/C/com.apple.mdworker.bundle -type d | wc -l

你会得到类似如下结果:

sudo find /private/var/folders/*/*/C/com.apple.mdworker.bundle -type d | wc -l
Password:
    519

最后,如果你得到的总数不超过 2 万,那么升级时不会因这个原因卡住。

 

升级失败原因确认

如果升级失败了,症状和本文所述很类似,并且想找回重要数据,可以安装以下方法进行确认。「提示」以下方法黑白苹果通用。

白苹果:按住电源键强制关机,然后再开机,按住 Command + R 尝试进入恢复模式,当进入 Recovery 时,如果你启用了 FileVault2 或“查找我的 Mac”,系统可能需要你通过授权验证,验证通过后,即进入恢复模式;

黑苹果:在引导工具的系统选择界面,选择 macOS Recovery,经过短暂读条/跑码后,即进入恢复模式。如果你的界面没有 Recovery 选项,如果是 OpenCore,修改 config.plist → Misc → Boot → HideAuxiliary 改为 Disable;如果是 Clover,修改 config.plist → Gui(引导界面) → Hide Volume(隐藏卷) → 删除 Recovery。「提示」黑苹果强烈建议不要开启“查找我的 Mac”,黑果经不起苹果公司的 FMD 网络算法核验,不要自己给自己添堵。

进入 Recovery 后,打开磁盘工具,查看左侧是否已经显示了所有设备并且硬盘已经挂载。

确认硬盘已经挂载后,退出磁盘工具(左上角红色按钮),回到主界面,选择左上角菜单栏中的“工具”(Utilities)→“终端”(Terminal)。接下来在终端中执行以下命令:

「注意」很多人喜欢自己修改硬盘名称,所以在上一步磁盘卷位置那里,显示是什么名称,这里就需要改成什么名称。系统默认是 Macintosh HD - Data(中文系统是 Macintosh HD - 数据 )

find /Volumes/Macintosh\ HD\ -\ 数据/Previous\ System/private/var/folders/*/*/C/com.apple.metadata.mdworker -type d | wc -l

第二个命令:

find /Volumes/Macintosh\ HD\ -\ 数据/Previous\ System/private/var/folders/*/*/C/com.apple.mdworker.bundle -type d | wc -l

「注意」如果耗时太久,说明文件可能过多,此时可以按下 Control + C 终止执行,但终端仍然会给出一个停止前的结果。

执行结果可能如下:

-bash-3.2# ls /Volumes/Macintosh\ HD\ -\ 数据/Previous\ System/private/var/folders/*/*/C/com.apple.m
etadata.mdworker -type d | wc -1
ls: -type: No such file or directory
ls: d: No such file or directory
56715

至此,确定了升级失败极有可能是本文所述原因造成。

 

删除冗余文件

如果你还没有开始升级,那很简单,直接运行下面的两个命令:

sudo find /private/var/folders/*/*/C/com.apple.mdworker.bundle -mindepth 1 -delete

sudo find /private/var/folders/*/*/C/com.apple.metadata.mdworker -mindepth 1 -delete 

每次复制执行 1 行命令即可。如果命令正确执行,首先会要求输入开机密码,然后就结束;如果返回错误,可尝试不使用 sudo,直接 find 就行。如果你的文件很多,这个过程应该会花一些时间。

如果你不想等,也可以尝试以下方案,直接删除整个 /private/var/folders/ 下的文件夹,这是可以的,macOS 后续会自动重建它:

rm -Rf /private/var/folders/*

 

如果升级已经失败了,在恢复模式下的终端中执行:

find /Volumes/Macintosh\ HD\ -\ 数据/Previous\ System/private/var/folders/*/*/C/com.apple.mdworker.bundle -mindepth 1 -delete

sudo find /Volumes/Macintosh\ HD\ -\ 数据/Previous\ System/private/var/folders/*/*/C/com.apple.metadata.mdworker -mindepth 1 -delete

同样每次执行 1 行。如果你不想等待,也可以直接删除 /private/var/folders/ 下的文件夹:

rm -Rf /Volumes/Macintosh\ HD\ -\ 数据/Previous\ System/private/var/folders/*

删除完成后,重新启动你的 Mac,再次尝试进入升级流程。白苹果一般来说应该就会成功了,黑苹果可能还会遇到其它问题😂,不过那是另一篇文章的内容了。

 

 

0. 本站所有资源解压密码均为 heipg.cn
1. 本站资源收集于网络,仅做学习和交流使用,请于下载后24小时内删除。如果你喜欢我们推荐的软件,请购买正版支持作者。
2. 如有无法下载的链接,联系:admin#heipg.cn,或到QQ群进行反馈,我们将及时进行处理。
3. 本站发布的内容若侵犯到您的权益,请联系站长删除,联系方式:admin#heipg.cn,我们将第一时间配合处理!

黑苹果星球 » 从低版本 macOS 升级到 Big Sur 时,卡进度条

发表评论