搭载 Apple 芯片的 Mac 电脑 DFU 模式全新安装 macOS Ventura
请访问原文链接:https://sysin.org/blog/apple-silicon-mac-dfu/,查看最新版。原创作品,转载请保留出处。
作者主页:www.sysin.org
Mac computers with Apple silicon,简称 Apple silicon Mac,中文翻译为 “搭载 Apple 芯片的 Mac 电脑”。
2023.02.07 更新,增加了新机型 MacBook Pro(14、16 英寸,M2 Pro/M2 Max,2023 年)和 Mac mini (M2/M2 Pro 2023 年)。
2022.08.17 更新:增加了新机型 Mac Studio(2022 年)、MacBook Pro(13 英寸,M2,2022 年)和 MacBook Air(M2,2022 年)。
2021.11.28 更新:增加了新机型 2021 款搭载 Apple 芯片的 14 英寸或 16 英寸 MacBook Pro。
2021.05.25 更新:增加了新机型 iMac (24 英寸, M1, 2021 年) 相关内容。
本文最初基于 2020 年搭载 Apple M1 芯片的 Mac 写作,新版硬件相关特性可能有所变更,若有不当之处请指正,谢谢。
与基于 Intel 处理器的 Mac 相比,搭载 Apple 芯片 Mac 在系统和固件方面有一定的变化。
本任务适用以下搭载 Apple 芯片的 Mac 电脑:
从 2020 年末推出的某些机型开始,Apple 开启了 Mac 电脑从 Intel 处理器到 Apple 芯片的过渡。
搭载 Apple 芯片的 Mac 电脑:
在搭载 Apple 芯片的 Mac 电脑上,“关于本机”会显示一个标有“芯片”的项目并跟有相应芯片的名称:

要打开“关于本机”,请选取苹果菜单 >“关于本机”。
在搭载 Intel 处理器的 Mac 电脑上,“关于本机”会显示一个标有“处理器”的项目并跟有 Intel 处理器的名称。搭载 Intel 处理器的 Mac 也称为基于 Intel 的 Mac。
![]()
Apple Silicon Mac 启动管理器
Apple Silicon System Recovery 是除了 macOS Recovery 之外的一个新的隐藏恢复选项。如果由于某种原因 macOS Recovery 损坏,System recovery 将与 macOS Recovery 相同的方式加载 (sysin)。您可以使用它重新安装 macOS 和 macOS Recovery。
如果 macOS 和 System Revovery 都被破坏:如果您的 Mac 在启动时出现一个圆圈围绕的感叹号
对比:
Apple 芯片:不存在
Intel 处理器:
Option-Command-R: 通过互联网从 macOS 恢复启动。使用此按键组合来重新安装 macOS 并升级到与您 Mac 兼容的最新版本 macOS。
Option-Shift-Command-R: 通过互联网从 macOS 恢复启动。使用此按键组合来重新安装随 Mac 预装的 macOS 版本或仍可用的最接近版本。
注意:建议使用雷雳 3 或雷雳 4 连接线,否则速度堪忧 (sysin)。
Apple 芯片:长按电源键进入 “选项” > 进入恢复模式 > 菜单 “实用工具” > “共享磁盘”。
链接:在搭载 Apple 芯片的 Mac 和另一台 Mac 之间传输文件
用 USB、USB-C 或雷雳线缆将两台电脑连接起来。
在搭载 Apple 芯片的 Mac 上,选取苹果菜单 > “关机”。
按住电源按钮直至 “正在载入启动选项” 出现。
点按 “选项”,然后点按 “继续”。
如有要求,请输入管理员帐户的密码。
Mac 将以恢复模式打开。
选取 “实用工具” > “共享磁盘”。
选择要共享的磁盘或宗卷,然后点按 “开始共享”。
在另一台 Mac 上,打开 “访达” 窗口,然后点按边栏中的 “网络”(在 “位置” 下方)。
在 “网络” 窗口中,连按含共享磁盘或宗卷的 Mac,点按 “连接身份”,在 “连接身份” 窗口中选择 “客人”,然后点按 “连接”。
传输文件。
文件传输完成后,推出另一台 Mac 上的磁盘。
Intel 处理器:同时按住电源键和 T 键。
用 FireWire 或雷雳线缆将两台电脑连接起来。
在要以目标磁盘模式用作磁盘的 Mac 上,请执行以下一项操作:
如果电脑关闭,则在按住 T 键的同时启动它。
如果电脑已开机,请选取苹果菜单 > “系统偏好设置”,点按 “启动磁盘”,然后点按 “目标磁盘模式”。
当电脑启动后,就会在另一台电脑的桌面上出现一个磁盘图标。
您可以将文件拖入或拖出磁盘来传输它们。
将磁盘图标拖移到废纸篓,将其推出。
在拖移时,废纸篓图标会变为 “推出” 图标。
在用作磁盘的 Mac 上,按下电源按钮将它关闭,然后断开电缆连接。
操作方式如下 (sysin):
以安全模式启动搭载 Intel 芯片的 Mac
在 Mac 上,选取苹果菜单 > “关机”。
Mac 关机后,等待 10 秒钟。
重新启动 Mac,然后立即按住 Shift 键。
看到登录窗口时松开 Shift 键。
以安全模式启动搭载 Apple 芯片的 Mac
在 Mac 上,选取苹果菜单 > “关机”。
Mac 关机后,等待 10 秒钟。
按住电源按钮直至启动磁盘和 “选项” 出现。
按住 Shift 键,然后在安全模式中点按 “继续”。
参看:
Apple 芯片:在搭载 Apple 芯片的 Mac 上更改安全性设置。
Intel 处理器:打开 “启动安全性实用工具”
没错,就像 iOS,Apple silicon Mac 可以通过 ipsw 文件进行固件恢复和更新(通过 Apple Configurator 2)。
DFU 的全称是 Device Firmware Upgrade,即 iOS 固件的强制升降级模式。Apple silicon Mac 同样可以启动到 DFU 模式。
如何启动到 DFU 模式,将在下文 “步骤 2:准备目标 Mac” 描述 (sysin)。
Apple silicon Mac 的 macOS 版本仍然可以降级。
默认启用 “完整安全性”(等于 iOS),需要将安全策略设置为 “降级安全性”,详见:在搭载 Apple 芯片的 Mac 上更改启动磁盘的安全性设置。
对比参看:关于搭载 Apple T2 安全芯片的 Mac 上的“启动安全性实用工具”
相比搭载 Apple T2 安全芯片且基于 Intel 的 Mac 电脑,搭载 Apple 芯片的 Mac 除了少了 Internet Recovery,其他恢复方式是类似的,但是可以手动下载 ipsw 进行修复或者恢复,这样可以指定版本。
本文用于描述使用 Apple Configurator 2 恢复系统。
一台额外的 Mac,我们这里称之为 “主 Mac” (sysin),配备 Type-C 接口,Intel 处理器和 Apple 芯片的机型都可以。
系统版本 macOS Catalina 10.15.6 及以上(建议当前最新版)。
下载 macOS ipsw 格式软件。
Apple Configurator 2 将自动下载最新版 ipsw 固件(类似 iOS),推荐手动下载到本地(可以指定版本),直接拖拽到 Apple Configurator 2 中进行恢复。
USB-C to USB-C Cable:支持的 USB-C 转 USB-C 充电线,如 由 Apple 售卖的产品。雷雳连接线 更佳。
线缆的连接:“主 Mac” 可以任意 C 口,目标 Mac(要被恢复的 Mac)必须是指定 C 口(详见下文描述)。
确保 “主 Mac” 已插入电源或者电池电量充足,有效的互联网连接。
确保您的 “主 Mac” 已插入电源且已开机,连接 Type-C 线缆(任意口)。
插入 USB-C 线缆到目标 Mac(要被恢复的 Mac)的指定 C 口。
搭载 Apple 芯片的 14 英寸或 16 英寸 MacBook Pro 的左侧,显示靠后的两个雷雳 4 (USB-C) 端口,其中高亮标记了最左侧的端口。
![]()
搭载 Apple 芯片的 Mac mini 的背面,显示两个雷雳 3 或 4 (USB-C) 端口的展开视图,其中高亮标记了最左侧的端口。
![]()
MacBook Air(M2,2022 年)的左侧,显示靠后的两个雷雳 3 (USB-C) 端口,其中标出了最左侧的端口。
![]()
搭载 Apple 芯片的 MacBook Pro(13 英寸)的左侧,显示靠后的两个雷雳 4 (USB-C) 端口,其中标出了最左侧的端口。
![]()
Mac Studio(2022 年)的背面,显示靠后的四个雷雳 4 (USB-C) 端口,其中标出了最右侧的端口。
![]()
iMac(24 英寸,M1,2021 年)的背面,显示靠后的两个雷雳 3 (USB-C) 端口,其中标出了最右侧的端口。
![]()
iMac(24 英寸,M1,2021 年)的背面,显示靠后的四个雷雳 3 (USB-C) 端口,其中标出了最右侧的端口。
![]()
图像显示用户应该选择与搭载 Apple 芯片的 MacBook Air 左侧显示器距离最近的端口。
![]()
在 “主 Mac” 上启动 Apple Configurator 2。
![]()
按下电源按钮。
按住电源按钮的同时,按下以下所有三个按键大约 10 秒钟:
10 秒钟后,立即松开这三个按键但继续按住电源按钮,直至 Apple Configurator 2 中出现 DFU 图标。
【注】在您要修复或恢复的 iMac(24 英寸,M1,2021 年)上不会出现任何屏幕活动。
插入显示器以便查看恢复过程何时完成。
断开 Mac mini 的电源至少 10 秒钟。
按住电源按钮。
在按住电源按钮的同时重新连接电源。
松开电源按钮。
状态指示灯应该呈琥珀色。
【注】Mac mini 不会出现任何屏幕活动。
按下电源按钮。
按住电源按钮的同时,按下以下所有三个按键大约 10 秒钟:
10 秒钟后,立即松开这三个按键但继续按住电源按钮,直至设备出现在 Apple Configurator 2 中。
【注】在您要尝试修复或恢复的 MacBook Air 或 MacBook Pro 上不会出现任何屏幕活动。如果 MacBook Pro 使用 MagSafe 接口,则没有 LED 充电指示灯。
事实证明,让 Apple Silicon Mac 进入 DFU 模式并不那么容易。往往需要按照 Apple 的描述多尝试几次,如果无法进入 DFU 模式需要重新开始,以下几个要点请参考:
目标 Mac 必须关机才能开始。
同时按住 电源键、右 Shift 键、左 Control 键 和 左 Option 键 10 秒(看着打开 Apple Configurator 2 的画面计数,可以让电脑显示秒数)然后松开除电源键以外的所有键 (sysin)。继续按住电源按钮 8 秒,整个过程 18 秒。如果计数超过 20 秒并且没有看到 DFU 图标,需要重新尝试该过程。
当目标 Mac 正确启动到 DFU 模式时,Apple Configurator 2 中显示一个大的 DFU 图标(如下图)。此时可以松开电源按钮。
在 “主 Mac” 的 Apple Configurator 2 状态变化如下:
(1)目标 Mac 尚未启动到 DFU 模式,显示如下:
![]()
(2)目标 Mac 已经正确启动到 DFU 模式
![]()
(3)目标 Mac 线缆连接正确,已经启动到了恢复模式选择窗口(仅供参考,这里不需要启动到该模式)
![]()
这里描述的是退出 DFU 模式的方法,并非需要此操作步骤。操作成功后会自动退出 DFU 模式。
在 DFU 图标上点击右键,菜单 “高级”,选择 “重新启动设备” 或者 “关闭设备”
![]()
上述操作如果无效,长按电源按钮(超过 4 秒)即可关闭设备并退出 DFU 模式。
恢复操作成功后会自动退出 DFU 模式。
请将下载的 macOS ipsw 文件拖拽到 DFU 图标上开始恢复。
![]()
拖拽 macOS ipsw 文件后,会弹出提示框,选择 “恢复”(“Restore”) 将抹掉磁盘重新安装 macOS,整个过程大约需要 15 分钟。
![]()
弹出提示画面,选择 “恢复”(“Restore”),还原至出厂设置。(当然也可以点击 “修复”,保留所有内容和设置)
如果你没有下载 ipsw(或者不知道哪里手动下载 ipsw),直接查看下面的 “替代步骤 3”
此方式对网络要求较高,另外下载的是最新版,无法指定版本,不推荐。
在 Apple Configurator 2 的设备窗口中,选择要修复其芯片固件并将其 recoveryOS 更新到最新版本的 Mac。
![]()
请执行以下一项操作:
选取 “操作” > “高级” > “修复设备”,然后点按 “修复”。
按住 Control 键点按所选设备并选取 “高级” > “修复设备”,然后点按 “修复”。
【注】如果在此过程中任意一台 Mac 电量耗尽,请再次开始修复过程。
等待过程完成。在此过程中,Apple 标志会出现和消失。
修复过程完成后,Mac 会重新启动。
【重要事项】 修复固件时,必须确认已成功修复,因为 Apple Configurator 2 可能不会提醒您。
退出 Apple Configurator 2,然后拔下任何适配器和线缆。
在 Apple Configurator 2 的设备窗口中,选择要恢复的 Mac。
请执行以下一项操作:
选取 “操作” > “恢复”,然后点按 “恢复”。
![]()
按住 Control 键点按所选设备并选取 “操作” > “恢复”,然后点按 “恢复”。
【注】如果在此过程中任意一台 Mac 电量耗尽,请再次开始恢复过程。
![]()
等待过程完成。在此过程中,Apple 标志会出现和消失。
恢复过程完成后,Mac 会重新启动。
【重要事项】 恢复 Mac 时,必须确认已成功恢复,因为 Apple Configurator 2 可能不会提醒您。
如果恢复成功,将显示 macOS 设置助理。
退出 Apple Configurator 2 并拔下任何适配器和线缆。
使用 Apple Configurator 修复或恢复基于 Intel 的 Mac 的差异:
目标 Mac 使用右侧的 USB-C(Apple 芯片 Mac 笔记本使用左侧端口,台式机使用右侧端口)。
默认仅有 “修复” 选项,将固件(T2 芯片固件)更新到最新版本(但有一个例外如下)。
仅限 Mac Pro(2019 年):恢复固件、抹掉所有数据并重新安装最新版本的 recoveryOS 和 macOS。
下表列出了修复或恢复 iOS 及衍生系统设备与 Mac 的差异 (sysin)。
| 设备 | 修复 | 恢复 |
|---|---|---|
| iPhone 和 iPod touch | 可能保留用户数据(如果可恢复)。 | 抹掉用户数据。抹掉并重新安装最新版本的 iOS。 |
| iPad | 可能保留用户数据(如果可恢复)。 | 抹掉用户数据。抹掉并重新安装最新版本的 iPadOS。 |
| Apple TV | 可能保留用户数据(如果可恢复)。 | 抹掉用户数据。抹掉并重新安装最新版本的 Apple tvOS。 |
| 搭载 Apple 芯片的 Mac | 将 sepOS 和 recoveryOS 更新到公开发布的最新版本。可能保留用户数据(如果可恢复)。 | 抹掉用户数据。抹掉并重新安装 sepOS、recoveryOS 和 macOS 公开发布的最新版本。 |
| 搭载 Apple T2 安全芯片且基于 Intel 的 Mac | 仅更新 T2 芯片固件。可能保留用户数据(如果可恢复)。 | 抹掉用户数据。仅抹掉并重新安装 T2 芯片固件。必须使用“互联网恢复”重新安装 recoveryOS 和 macOS。 |
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende
给定一个复杂的对象层次结构,幸运的是它不包含循环引用,我如何实现支持各种格式的序列化?我不是来讨论实际实现的。相反,我正在寻找可能会派上用场的设计模式提示。更准确地说:我正在使用Ruby,我想解析XML和JSON数据以构建复杂的对象层次结构。此外,应该可以将该层次结构序列化为JSON、XML和可能的HTML。我可以为此使用Builder模式吗?在任何提到的情况下,我都有某种结构化数据-无论是在内存中还是文本中-我想用它来构建其他东西。我认为将序列化逻辑与实际业务逻辑分开会很好,这样我以后就可以轻松支持多种XML格式。 最佳答案 我最
了解Rails缓存如何工作的人可以真正帮助我。这是嵌套在Rails::Initializer.runblock中的代码:config.after_initializedoSomeClass.const_set'SOME_CONST','SOME_VAL'end现在,如果我运行script/server并发出请求,一切都很好。然而,在我的Rails应用程序的第二个请求中,一切都因单元化常量错误而变得糟糕。在生产模式下,我可以成功发出第二个请求,这意味着常量仍然存在。我已通过将以上内容更改为以下内容来解决问题:config.after_initializedorequire'some_cl
我经常迷上ruby的一件事是递归模式。例如,假设我有一个数组,它可能包含无限深度的数组作为元素。所以,例如:my_array=[1,[2,3,[4,5,[6,7]]]]我想创建一个方法,可以将数组展平为[1,2,3,4,5,6,7]。我知道.flatten可以完成这项工作,但这个问题是作为我经常遇到的递归问题的一个例子-因此我试图找到一个更可重用的解决方案。简而言之-我猜这种事情有一个标准模式,但我想不出任何特别优雅的东西。任何想法表示赞赏 最佳答案 递归是一种方法,它不依赖于语言。您在编写算法时要考虑两种情况:再次调用函数的情
这应该是一个简单的问题,但我找不到任何相关信息。给定一个Ruby中的正则表达式,对于每个匹配项,我需要检索匹配的模式$1、$2,但我还需要匹配位置。我知道=~运算符为我提供了第一个匹配项的位置,而string.scan(/regex/)为我提供了所有匹配模式。如果可能,我需要在同一步骤中获得两个结果。 最佳答案 MatchDatastring.scan(regex)do$1#Patternatfirstposition$2#Patternatsecondposition$~.offset(1)#Startingandendingpo
我想开始使用“Sinatra”框架进行编码,但我找不到该框架的“MVC”模式。是“MVC-Sinatra”模式或框架吗? 最佳答案 您可能想查看Padrino这是一个围绕Sinatra构建的框架,可为您的项目提供更“类似Rails”的感觉,但没有那么多隐藏的魔法。这是使用Sinatra可以做什么的一个很好的例子。虽然如果您需要开始使用这很好,但我个人建议您将它用作学习工具,以对您来说最有意义的方式使用Sinatra构建您自己的应用程序。写一些测试/期望,写一些代码,通过测试-重复:)至于ORM,你还应该结帐Sequel其中(imho
执行rvmlist后,我得到以下输出:rvmrubiesgems[missingbin/ruby]=*ruby-2.0.0-p645[x86_64]ruby-2.1.6[x86_64]ruby-2.2.1[x86_64]gems[missingbin/ruby]是什么意思?gems是某种系统gemset吗?它不是我创建的,我不知道我是否可以或应该删除它。 最佳答案 在我跑完之后:rvmfix-permissions然后我能够卸载具有[缺少bin/ruby]的版本。 关于ruby-如何修复
有没有一种方法可以自动生成种子数据文件并创建种子数据,就像您在下面链接中的Laravel中看到的那样?LaravelDatabaseMigrations&Seed我在另一个应用程序上看到在Rails的db文件夹下创建了一些带有时间戳的文件,其中包含种子数据。创建它的好方法是什么? 最佳答案 我建议你使用Fabrication的组合gem和Faker.Fabrication允许您编写一个模式来构建您的对象,而Faker为您提供虚假数据,如姓名、电子邮件、电话号码等。这是制造商的样子:Fabricator(:user)dousernam