本文将介绍Windows10及以上版本的系统更新功能,涵盖Windows更新的设计、四种更新的类型、执行更新的步骤、可能出现的部分错误及相应的解决方法。
从Windows10开始,位于设置面板中的Windows更新成为了集Windows系统本体、微软应用和硬件驱动分发补丁和新功能的统一途径。Windows作为操作系统级别软件,既要及时推送安全补丁和新功能以保障系统的安全可靠,也要将更新流程对用户的影响最小化。
为了及时推送更新,Windows被设定为自动下载安装大部分更新。用户可以延迟但不能用正常手段关闭这一策略。这些更新要么非常紧急,用于修补不久前被公布的安全漏洞,要么已经经过三重公开内测,没有大的稳定性问题。
而为了减少对日常使用的影响,Windows更新有三种设计:模块化、累积式和分类管理。
在用户可感知的层面,微软还期望借助一些独立的包和MicrosoftStore更新某些应用。打开设置面板中的系统信息界面,读者可能会发现在Windows规格>体验一栏中有WindowsFeatureExperiencePack的版本信息,它包含一些独立的应用,如画图,微软可单独推送它的更新。同样的,系统的一些预装应用,如语言包,还能在MicrosoftStore中进行更新。这些设计都有助于模块化管理和维护,优化用户的下载安装体验。
累积式更新的设计是为了解决如下问题:在4-9月有六个Windows更新,那么如果用户在9月安装了Windows,岂不是要将六个更新逐一安装?实际情况则是用户只需要安装最后一个月的更新——因为Windows本体的更新是累积式的,我们能在更新历史记录中看到许多条目后面的「累积更新」或「CumulativeUpdate」字样,这些更新会包括上一次更新的全部内容。
举例来说,Windows21H1版本于7月6日获得的更新涉及了52,750个文件,而五天之后的更新则涉及了53,196个文件,从数量上不难发现,后一次更新建立在前一次的基础之上。
累积更新会导致另一个问题:对于及时安装了以往更新的用户而言,难道每一次都要下载所有更新的内容吗?当然不是这样,Windows在下载更新时,会尝试使用增量安装的方式,仅下载上次更新以来更改的项目,这些项目被称为更新的快速版本(Expressversion)。当无法使用增量安装的方式时,Windows才会下载全量更新版本(Full-fileversion)。
在设置面板的更新历史记录界面中,微软将更新分类为四种:定义更新、驱动程序更新、质量更新和功能更新。在这四种之外,还有一些更新被放在了其他类别中,恶意软件删除程序和前文提到的WindowsFeatureExperiencePack都在此之列,这些更新大多不涉及系统的关键功能,因此不做过多介绍。
下面从最简单的定义更新开始讲起。
定义更新是为Windows内置的安全软件WindowsDefender而设计,Defender借此升级最新的病毒库,维护系统安全。这和第三方防病毒程序的「自动更新病毒库」功能是类似的,只不过它被整合进了系统中。
值得注意的是,除了版本号之外,这些定义更新名称之后跟着一个以KB开头的编码。在后文要介绍的质量更新中,KB编码会更加多变且重要。
定义更新后的KB编码都是一样的,说明它们都共享同一个帮助文档。
像它的名字所揭示的那样,驱动更新可用于更新硬件的驱动程序。驱动程序由微软和设备制造商合作提供,并且经过微软的测试和签名。
在以往,这项任务一般由用户自己完成,因而会有设备制造商提供驱动下载页面,也有第三方的驱动商城。将驱动更新整合进系统显然安全方便了不少。
除了负责任的厂商定期推送外,用户能在以下两种情况下收到这类更新。其一是全新安装时,微软的ISO镜像仅提供基本的功能,显示器、CPU等硬件的驱动会在Windows启动后通过系统更新自动安装。其二是检测到新设备时,例如插入数位板,在AndroidBootloader模式下连接电脑,此时用户可手动点击「检查更新」,可选的驱动列表会出现在更新界面。
质量更新是Windows最重要的一类更新,更新内容包括小的Bug和大的安全漏洞的修复,以及UI、功能方面的微小改动。每一个质量更新都有单独的KB编码,也即,拥有一个单独的描述页面可供查阅。
质量更新是三类更新的统称:OOB更新,月度累积更新和月度更新预览。前两种为自动安装的更新,最后一种为可选更新。三类更新都是累积式的。
月度更新预览和月度累积更新关系密切,它是下一个月的将要推送月度累积更新的提前释出版本,也叫C更新。月度更新预览是考虑到一些IT管理员需要提前测试更新内容,确认生产环境能够正确运行而设计的。因此它是可选更新,用户可以自行选择安装与否。
质量更新负责维护Windows大版本更新后的系统体验,这也是Windows即服务口号下微软对更新做出的重要改动——以每月推送的质量更新、半年或一年推送一次的功能更新,取代以往数年一次的大版本更新。质量更新介绍完后,我们来介绍功能更新。
上一小节提到,质量更新也会涉及到系统功能,例如通知栏中的新闻与兴趣就是通过质量更新推送的。但功能更新影响的功能与设计更为重磅:1607周年更新引入了暗色模式,1903版本推出了WindowsSandbox和改进的游戏录制栏……
除可选更新需要用户手动操作外,Windows会自动扫描、下载并安装更新内容。对于定义更新这类小型项目,用户一般不会感知到其存在。但当Windows更新需要访问正在运行的某些系统组件时,它会在一切准备完毕后,弹出重启选项,这可能是用户对Windows更新感知最强烈的时候。
此外,当出现错误,无法安装更新时,莫名奇妙的错误代码可能也会让一些用户抓狂。想要理解这两种情况,了解Windows执行更新的基本步骤是必要的。
一次完整的更新会经过四个流程:下层阶段,SafeOS阶段,首次启动和全新启动阶段。大部分情况下更新会在第一阶段结束,只有功能更新这样的大版本升级才会完整走完这四个流程,也正因为这种情况下的复杂性,重启才有必要,错误才会发生。
这一阶段在将要更新的旧系统中进行。首先,系统根据用户设定的更新策略,连接服务器,扫描并评估更新是否适用于设备。一些「优化」指南中使用组策略、服务的方式禁用自动更新实际上就是影响了这一步。
一旦确定有更新可用,Windows会下载更新内容到临时文件夹。然后比较设备信息和下载的内容,确定如何安装这些更新。此时,更新程序会创建名为「操作列表」的文件,告诉安装程序如何处理这些更新。
对于大部分更新,安装将直接进行且不会对正在运行的程序有影响,更新到此结束。
而如果更新涉及了内核等重要组件,则必须要在Windows系统之外进行更新的部署。Windows为此需要进入独立的SafeOS。这种情况下,下层阶段最后的任务是准备好必要的文件,设定系统下一次重启的首选项为SafeOS,然后等待用户确认重启操作以继续更新流程。
SafeOS阶段会进入WindowsPE环境,不过此阶段首先做的是准备系统回滚文件,以防更新出错。之后如果出现任何问题,系统都会卸载更新,然后使用SafeOS生成的回滚文件确保设备仍能正常开机。
留好后路之后,SafeOS就会着手安装更新文件,替换旧系统的组件。并设定启动首选项为新的系统,再次重启。
告别SafeOS后,Windows会在新环境中进行各种初始配置,识别设备的硬件。此过程称为首次启动。首次启动之后Windows会第三次重启,正式「开箱」进入新系统,所以此阶段还被称为OOBE(Outofboxexperience)阶段。
经过这四个阶段,Windows更新程序既完成了对旧系统的备份,也部署了新的更新。成功进入新系统之前,最多会重启三次。整个过程如果有任何意料之外的情况发生,更新就会失败:下层阶段出现的问题会导致更新无法继续,后面三个阶段发生的错误则会导致系统回滚。
如果设备原来的Windows系统运行正常,用户没有安装意图不明的软件,也没有删改某些系统文件,那么Windows更新大概率不会失败。但由于Windows运行的硬件软件环境难以预料,遇到更新问题也并不罕见。本文将给出一些常见的错误及其解决方法。
下载错误发生在执行更新的下层阶段,错误大概率可归咎于网络。用户需要做的是等到网络环境良好时再进行更新。之后可以先清除原先下载的更新文件,即手动删除C:\Windows\SoftwareDistribution\Download下的所有文件,再检查更新。
当然,如果由于各种原因无法通过内置的更新功能下载内容,微软提供了变通的方法。
驱动程序更新则可通过设备制造商的官网获得。
此类错误经常表现在安装的下层阶段和最终的启动阶段。由于系统的某些组件损坏,Windows无法找到或者修补原文件导致更新发生错误。至于系统组件损坏的原因,大概率是不知情的用户删除了某些关键系统文件,或者某些恶意软件作祟。
好在Windows自带了修复的工具,以管理员权限运行PowerShell,键入DISM.exe/Online/Cleanup-Image/RestoreHealth,这会使用Windows更新作为源文件,尝试修复损坏的系统组件。如果手上有Windows镜像,也可以在命令后加/Source:C:\……/LimitAccess告诉DISM使用该镜像作为源文件。
这类错误发生在重启至SafeOS阶段,原因大概率是第三方的磁盘加密软件阻止系统进入SafeOS。解决方法是提前解密。
在首次和全新启动阶段,新系统会进行配置的初始化,如果此时碰到没有驱动程序支持的硬件,更新也会出现错误。
如果在这两个阶段出现问题,那么用户可能需要提前清理一些不必要的外设,例如风扇、手柄等。在安装功能更新前总是保证驱动程序最新也是很好的习惯。
如果确认更新失败并非由以上四种问题引发,那么下面这两个方法值得一试,它们能解决或定位绝大多数更新错误。
In-PlaceUpgrade是解决各种由于系统组件和设置造成的更新问题的最好方式。它修复系统的方式是对原系统进行一次原地更新:用镜像设置替换原系统的组件和设置,还原系统纯净的环境。这会初始化所有的系统设置,但不会丢失任何的应用及文件。
此方法本质上是不丢失文件和应用的还原操作,和设置面板中提供的「全新启动」类似。但当系统的某些问题已经导致无法安装更新时,「全新启动」功能很可能也会出现问题,采用镜像修复的方式更加稳妥。
微软一直在优化Windows更新的体验。它如此耗费心力的目的很显然不是如一些「指南」所暗示的那样拖慢用户的系统,而是最大程度上保证自家产品的安全性,毕竟除了是市场占有率最高的桌面系统,Windows也占有20%的服务器市场。
目前,排除OOB这类紧急更新,Windows重要的(可能需要重启的)更新频率仅为每月一次,重启前会请求用户确认,用户亦可以择时自行重启,因而本文并不建议用户采用非正常手段关闭自动更新以减少这必要的打扰。即使需要延迟进行更新,也建议采用将某网络设置为按流量计费的方式,或使用暂停更新选项。