为什么macOS/iOS的升级需要这么长时间?

2025-11-27 08:16:52

标签列表为什么macOS/iOS的升级需要这么长时间?macosiosupgradesoftware-update13即使在 iMac Pro 上,升级操作系统仍然需要一些时间(可能是 15 分钟)(在下载完成后)。在此期间,我无法使用计算机。

为什么会这样?它实际上在做什么?为什么这个过程不只是简单的重启?

请注意,我并不是在问为什么需要重新启动。作为软件开发者,我非常清楚为什么需要重新启动。

还请注意,升级需要很长时间的一个明显原因是文件系统迁移(例如从 HFS+ 迁移到 APFS)。Apple 甚至在正式发布之前做了一些测试迁移。然而,据我所知,大多数操作系统升级并不涉及文件系统的更改。

这个问题类似于关于其他升级过程需要很长时间的 Why does the OS X Software Update check take so long? 的问题。在回答这个问题时,值得考虑 macOS 和 iOS 的特定情况。例如:它们都随附了适用于所有支持的系统的驱动程序。

- user29320266我投票关闭这个问题,根据发布的问题指南,认为它是“不相关的”。问关于为什么苹果公司做了或没做、能够或不能够做某事的问题都不适合在这个论坛上讨论。因为这些问题无法得到本组的回答。 - fsb7典型的过度管理使人们对这些网站失去兴趣。 - user2932023我没有为了“过度管理”而这样做。您最初编辑之前提出的问题方式是在问苹果为什么需要重新启动。我认为这个问题与主题无关。关闭一个问题需要不止一个人的投票,需要4个投票。这些网站通过确保问题可以得到准确答案来帮助许多人。请参阅[ask]以获取如何提出能够获得良好答案的问题的技巧。 - fsb1@fsb 在编辑之前很清楚。"为什么操作系统升级不只是重新启动?"并不是"为什么操作系统升级需要重新启动?"然后我提到了"为什么这个过程不是一个简单的重新启动?"然后我又提到了"然后重新启动"你误读了原始问题,但没关系。 - user293202@fsb 为什么我的问题被认为是离题的,而这个问题显然不是?https://apple.stackexchange.com/questions/31495/why-does-the-os-x-software-update-check-take-so-long?rq=1 - user2932027这是一个完全有效的问题。这不是一个“为什么苹果会做X、Y或Z”的问题,而是一个关于“为什么一个过程需要这么长时间”的技术性问题。提议重新开放讨论。 - Allan2个回答4这个过程为什么不是一个简单的重启呢?

总的来说,答案是“这取决于”。它很大程度上取决于需要做什么。你对系统所进行的更新可能与我对系统的更新截然不同。所涉及的更新可能只需要重新启动服务,或者可能需要对实际内核进行更新。

为什么不能使用电脑呢?

通常情况下,原因和你不能使用正在升级的应用程序(如Word、Excel、Numbers、iTerm、Adobe Photoshop等)是一样的。文件必须关闭、读取、分析,适当的补丁/更新被复制并重新启动应用程序。

当操作系统升级时,同样的事情必须发生,而且通常(尤其是在内核级别升级时)是在单用户模式下进行的。

通常情况下,你会看到更新下载后,系统会开始关机,应用更新,重新启动,然后进行更新的“最后处理”,最后进行正常的启动。在此期间你不能使用电脑。

它实际上在做什么?

这取决于情况。可能是修补配置文件,也可能是刷写某种固件。

如果系统在/System目录下,为什么不直接创建一个/NewSystem来进行操作系统升级呢?

首先,/System目录受到SIP的保护,所以要禁用它,实际上需要从不同的挂载点启动。其次,你现在的想法就像是在旧房子旁边建一座新房子,然后告诉人们直接搬进去一样。这不是正确的做法。

许多事情都需要发生,其中最重要的是创建还原点(以防备份失败)。因此,这意味着会创建一个工作系统的副本,应用更新,检查更新,如果一切正常,则删除还原点。

在固件更新的情况下,需要验证图像(即不希望在Mac Pro上使用Mac mini的固件),验证校验和、备份图像、应用、验证、删除旧图像并重新初始化系统。再次强调,所有这些操作都不能在您登录时完成,也不能简单地将文件“扔”到一个目录中。

升级是一个过程,所有这些都需要时间。

* SIP是为了保护系统而设计的,防止对操作系统进行更改。允许操作系统动态更改系统将使其所尝试实现的安全性失去意义。

- Allan7谢谢你的回答,Allan。好的,所以作为根用户,我可以在不违反SIP的情况下创建一个系统目录的备份(刚刚尝试过)。是的,如果/NewSystem已经建立,你需要禁用SIP才能切换到新的系统目录,但这不会花费太多时间。 - user293202这不是它的工作方式。此外...安装可能需要半个小时甚至更长时间,从技术上讲,那只是复制文件而已。更新所做的远不止复制文件这么简单。 - Allan再说了,你登录的情况下什么都做不了。为什么呢,具体来说? - user293202你可以在应用程序正在运行时更新一个应用程序吗?相同的概念,但要复杂得多。你的操作系统正在运行(文件被打开和保护)。你需要停止进程,解除保护(不仅仅是运行 "sudo" 命令),并修补系统。如果是内核更新,你必须关闭一切,因为将不会写入任何内容。 - Allan不,但是你可以在应用程序运行时完成大部分更新工作。也就是说:解压缩、应用差异更新以构建新的目录结构,并进行校验和。我认为操作系统的更新并没有显著不同。我们可以深入讨论这个问题。 - user293202我并没有觉得操作系统的更新有多大不同。就像我说的...这取决于情况。当涉及到内核更新(如答案中所述),它不能简单地写入/System,因为SIP在这里是一个重要因素。要禁用SIP,您需要从不同的挂载点启动。在系统运行时,您根本无法做到这一点。此外,我们讨论的是一个操作系统,而不是一个应用程序的单个实例。 - Allan让我们在聊天中继续这个讨论。 - user293202回答链接3重启计算机以进行一些操作系统的更新/升级对于所有操作系统都是必需的,不仅仅是macOS。

实际上,在更新的情况下,有时候在更新过程中仍然使用重启是不必要的,但这只是为了让大多数用户更容易接受而采取的措施。例如,某些系统更新会对网络服务等内容进行更改,虽然你可以只重新启动该服务而不是整个计算机,但对于大多数用户来说,重新启动比经历重新启动网络服务的步骤更容易。

然而,在大多数需要重启的情况下,这是因为确实有必要这样做。许多操作系统资源被应用程序(包括第三方应用程序)使用,而在用户登录状态下更新这些资源并不容易,并且实际上可能导致文件损坏等问题。

此外,在固件更新的情况下,重启绝对是必需的。此外,几年前,苹果开始自动将固件更新(如果需要)包含在macOS的更新/升级中,因此很难检查哪些设备在更新/升级中包含了固件更新。无论如何,固件更新都需要重启,没有其他办法。

另一个例子是更新使用硬件所需的资源。在某些情况下,需要重新启动,而在其他情况下则不需要。

最后,关于您最后一个问题,为什么不只是创建一个新系统,然后在下次重新启动后使其生效,虽然从技术上讲这是可能的,但实际上并不实用。系统目录的大小为几个GB,并且这样做会花费更长时间,并且需要更大量的空闲空间在引导卷上。

- Monomeeth22我的问题不是“为什么操作系统不能在不重启的情况下升级?”而是为什么这个过程需要这么长时间并且让用户无法使用?此外,硬链接(https://en.wikipedia.org/wiki/Hard_link)可以用来大幅减少升级所需的时间和空间。(注:我是一名软件开发人员) - user2932022关于OTA iOS更新,它们以差异补丁的形式传递,并需要应用到现有文件上。iOS的OTA和非OTA更新仍然存储在加密设备上,并且在安装过程中需要进行加密。加密需要时间。我所知道的唯一能完全确定为何做出这些决定的人是库比蒂诺的开发团队。 - Scottmeup回答链接相关问题3 为什么启用“重新登录时打开”后,加载登录项目需要这么长时间?3 为什么OTA更新需要这么多空间?12 为什么iOS设备需要这么长时间才能重新开机?29 为什么OS X软件更新检查要花这么长时间?13 为什么我的MacBook Pro休眠需要这么长时间?22 为什么我的主机名解析需要这么长时间?© 2023 根据CC BY-SA 4.0 许可证授权京ICP备19056307号-1

最新发表
友情链接