macOS 系统回退指南

记一次惨痛的教训

October 30, 2022 via CLOUDUH

macOS 系统回退指南

Abstract

本文主要讲述了如何将升级后的macOS进行回退,并讲述了本人在回退时遇到的各种坑,供各位像我一样一时手贱升级到新版本但无法忍受各种BUG最终决定回退的朋友参考。

前排提示:数据无价,任何操作之前务必进行数据备份。

Mac备份和恢复的逻辑

如果您有一台NAS或者移动硬盘,一直进行时间机器的备份,那您就可以放宽心,虽然还会折腾一番,但是您回丝毫不差地回到你的原本版本中。macOS时间机器的备份中不包含系统,只包含数据,因此您不能只通过时间机器回退到低版本系统中。

简而言之:回退=重新安装低版本系统+通过迁移助理恢复数据

虽然时间机器的数据是不包含系统的,但是这也使得您在新系统上的数据更改也可以一同恢复到老版本系统上,当然这是未考虑所使用的软件在不同版本上的兼容性问题。

举个例子:10月1日您在MacOS12上完成了工作A,10月2日您升级了新系统MacOS13,10月3日您在MacOS上完成了工作B,10月4日您进行系统回退,最终得到了在MacOS12上的工作A和工作B的数据文件。

如果您希望回退之后的系统保留您所有的数据、软件等,那就请您去找一个大容量的硬盘,使用Mac自带的磁盘工具格式化为APFS(Mac专用格式),然后打开时间机器,进行备份。第一次使用时间机器进行备份的时间很长,还请耐心等待。

一切数据都备份好之后,请进行下一步

回退系统

回退系统可能是整个流程中最为麻烦的步骤,主要分为三种情况:

  • 升级了Beta版系统——无需其他介质/Mac辅助。
  • 通过一台Mac制作macOS 安装器。
  • 通过一台Mac连接雷电接口辅助安装系统(本文不做介绍)

Beta系统

首先请接受我的批评:您的电脑是您当前的主力机,升级Beta的行为无异于把自己的饭碗丢掉。对于Beta版系统,mac在启动助理可以直接重新安装老版本的,因此方法很简单:启动选项——抹掉磁盘——安装老版本。

进入启动选项的方法:Apple芯片Mac开机后长按开机键,直到屏幕出现启动选项屏幕。 官方支持页面:Mac 的启动组合键 - 官方 Apple 支持 (中国)

通过磁盘工具将当前磁盘抹掉,然后重新安装系统即可

制作macOS安装器

官方文档:如何创建可引导的 macOS 安装器 - 官方 Apple 支持 (中国)

  1. 格式化U盘:保证您所使用的U盘有足够的空间,首先使用磁盘工具将U盘格式化为Mac OS 拓展格式,然后将U盘插在电脑上不要拔下来。
  2. 下载安装macOS系统:打开App Store,搜索您要回退的系统,然后点击安装。

这里经常会出现无法获取管理员权限的问题,需要进入安装模式才能安装成功。

  1. (如果2不成功)进入安全模式:如何在 Mac 上使用安全模式 - 官方 Apple 支持 (中国)
  2. 命令行创建安装介质:打开终端,输入以下命令行,注意命令行中的系统版本和您的安装介质名字不同,请自行修改。sudo /Applications/Install\ macOS\ Monterey.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
  3. 根据终端出现的提示确认操作,然后输入密码。

  1. 开机安装:在Mac开机之前,插入U盘,然后长按开机按钮进入启动选项,找到U盘对应的卷宗,然后就可以开始Mac的安装。

安装系统大概需要1个小时左右,请耐心等待。

迁移数据

安装完macOS之后,这就相当于一个新电脑了,您需要首先设置安装向导,把最基础的系统设置完成,才能使用迁移助理进行数据迁移。

这部分可能会花费大量的时间,而且预估的时间也是不可靠的,我90万多的的文件恢复了大概4个小时。

迁移完成之后,您的数据就全部回来了。

回退完成后的问题

启动台乱了

启动台的数据并未恢复,又需要自己一个一个地把启动台的软件进行归类。

部分破解软件失效

任何来源未打开

  1. 终端输入:sudo spctl –master-disable
  2. 去设置-安全与隐私-通用-允许从以下位置下载的应用

破解软件签名失效

  1. 终端输入:xcode-select --install
  2. 等待Xcode安装完成
  3. 终端输入:sudo codesign --force --deep --sign - /Applications/XXX.app
  4. 重新打开

x86软件意外退出

这个是我花了一整天的功夫才发现的,很多软件都打不开,包括Zotero、Steam、Easy Connect,而且都是在官网上下载的。后来我才意识到,这些软件都没有对ARM做原生适配,打开活动监视器一看,发现确实所有正在运行的软件中没有Intel类别,最终确定的问题所在:

Rosetta转译失效

  1. 终端输入:softwareupdate --install --rosetta
  2. 安装完成