APP下载

当心更新出问题!

2015-06-17

CHIP新电脑 2015年6期
关键词:驱动程序补丁错误

正常情况下,更新补丁应该是修复系统已知漏洞的,但是更新补丁同时也可能产生新的问题,更新补丁也可能存在缺陷,近半年以来微软的更新补丁经常出现状况,因此,我们有必要制定相应的应急计划。

在2014年12月11日,AMD全球技术营销主管罗伯特 · 哈洛克在Twitter上发布信息,指出最新的Windows更新补丁KB3004394存在严重的缺陷,该更新将阻碍AMD显示卡驱动程序的安装,而且哈洛克建议应该立即卸载KB3004394。第二天,哈洛克再次发布信息,指出该更新将可能影响Windows 7下任何驱动程序的安装,与此同时,微软也宣布撤回更新补丁KB3004394,Windows 7用户将无法通过Windows的更新功能安装该更新补丁。

过去的6个月里,每一个Windows用户都不得不被迫面对类似的窘境,自2014年8月以来,微软不得不宣布撤回的更新补丁已经多达10个,KB3004394只是持续了几个月的一系列错误事件的高峰事件。一直以来,及时安装更新补丁、修复已知缺陷、确保Windows安全无忧可以说是一条金科玉律。然而,现如今人们不得不重新考虑这样做是否正确以及制定更新失败的应急计划。事实上,最近一段时间以来,并不只是微软公司的更新补丁频繁出现问题,Google和苹果公司在近半年来也同样遭遇类似的问题,他们分别在2014年秋天和冬天发布了智能手机操作系统的新版本,但是对于新版本、新功能感到兴奋不已的用户很快就发现自己像是在参加beta测试。

致命的Windows补丁

每月的第二个星期二对于希望通过更新确保系统安全的Windows用户来说是一个重要的日子,这一天微软将为各种不同版本的Windows操作系统提供最新的安全更新和系统补丁。为了第一时间修复系统存在的问题,以往开启系统的自动更新功能,以便系统能够自动下载并安装更新补丁是值得推荐的做法。但是从2014年夏天开始,这已经不再是一个正确的做法。那一段日子以来,微软已经多次撤回存在错误的更新补丁,同时,还有许多更新补丁存在的问题没有得到解决。虽然以往微软偶尔也有个别没能真正发挥作用的更新补丁,但是过去的6个月里几乎是每一个微软更新补丁发布日都会出现有问题的补丁。

大多数出问题的更新补丁用于修补安全漏洞或优化Windows的架构,2014年8月的4个更新补丁也是如此。微软原本希望使用这几个补丁修复Windows 7和Windows 8中一个操纵字体文件获得更大权限的漏洞,但是这些补丁没有正常工作,却导致字体文件夹权限异常以及系统崩溃出现蓝屏错误提示。而10月另一个出问题的内核驱动程序补丁(KB3000061)则相对没有什么危害,它只是无法正常安装。

紧接着在第四季度出现错误的3个补丁则是用于更新加密架构的,在斯诺登事件后,众所周知,操作系统和程序必须使用更先进的加密算法,以确保数据和系统的安全。由于安全散列算法SHA-1已经被认为是不安全的,因而,微软希望通过更新补丁KB2949927在Windows 7上测试SHA-2,但是该补丁和另外一个驱动补丁KB3000061一样,更新补丁在安装之后重新启动操作系统的过程中被自动卸载,然后又再被安装到系统上,并且在此之后新的加密程序没有能够正常地工作,Windows服务器在尝试通过TLS 1.2保护浏览器和服务器之间的HTTPS连接时无法实现或者服务器速度异常缓慢。其次,由于微软的更新打乱了系统中安装的根证书,所以系统出现驱动程序和许多软件(例如Windows Defender)未能通过证书验证而无法安装或启动的问题。在这种情况下,微软不得已只能撤回相关的更新,放弃新的安全算法,这导致在今年年初的混沌通信大会(Chaos Communication Congress,简称CCC)上,Windows的安全架构被密码专家吕迪格·韦斯裁定为不及格。

更新失败的应急措施

当Windows的更新出现问题时,其表现可能是千奇百怪的。根证书和内核模式驱动程序的补丁出现故障很可能导致Windows无法启动。在这种情况下,我们需要系统的安装光盘或者之前准备的系统恢复盘,以便启动电脑并修复或恢复系统。因为Windows会自动保存每次更新之前的系统数据,因而可以通过系统还原工具尝试恢复到安装更新前的状态,还原工具包含在上面所说的启动介质中。如果恢复失败,那么微软建议我们手动完成这一工作,我们需要在命令提示符的状态下键入“DISM /image:C\/cleanup-image /revertpendingactions”(假设C盘为系统安装Windows系统的盘符)。

如果更新失败后Windows能够启动,那么有更多修复方案可以供我们选择。最简单也是最有效的方法是马上通过搜索引擎查找更新补丁以KB开头的编号,这个号码可以通过查看更新历史记录找到。通常,我们可以找到一些用户提供的修复方案或者微软相应知识库文章的最新信息。如果无法在线查找到任何解决办法,那么卸载更新补丁或许将是唯一的选择。另外,如果在线搜索并没有发现其他人安装该更新补丁会出现异常,那么极有可能是系统更新功能本身出现问题了,而不是更新补丁存在缺陷,为了重置Windows更新组件,微软特意发布了一个修复工具(support.microsoft.com/zh-cn/kb/971058),只需简单地下载并运行它即可。

如果更新补丁仍然经常出现问题,那么我们应该考虑停止自动更新。在“Windows更新”中选择“更改设置”,修改设置为“下载更新,但是让我选择是否安装更新”,这样我们可以在更新发布后确定其没有问题后再手动进行安装。

用户成为beta测试员

微软的更新补丁出现错误的频率和集中度都显得有点诡异,而相对于普通的更新补丁来说,对于系统更新,特别是系统版本更新换代(如Windows 10、iOS 8、Android 5)的更新,我们需要更加小心。

目前,微软的Windows 10正在测试中,微软希望能够通过安装技术预览版的用户进行更多的测试。由于微软已经宣布,Windows 8等早期版本的系统可以免费升级Windows 10,因而许多人都对Windows 10的测试感兴趣。仅2014年,世界各地已经有超过150万的测试者安装了Windows 10预览版,其中更有45万用户使用Windows 10处理日常工作。通过这些使用不同硬件的免费测试员,微软已经成功地消除了约1300个漏洞。但即便如此,Windows 10的更新补丁问题同样困扰着这些用户:2014年12月微软发布了一个用于解决explorer.exe文件问题的补丁KB3020114,和此前Windows 7和Windows 8的更新补丁KB3000061一样,用户的系统陷入了一个更新循环。两天后,微软发布公告说明并纠正了这个问题,并发布了一个新的补丁KB3025096。

不能打电话的iOS 8.0.1

手机操作系统的更新问题同样令人不安:苹果的iOS和Google的Android系统都在近期更新换代。苹果公司iOS系统出现了各种难以解释的问题,在iOS 8发布一个星期后,该系统马上发布了8.0.1版本,然而新的系统不仅没有更稳定,反倒问题不断:最严重的是用户出现移动网络中断、无法打电话、甚至连指纹扫描仪都拒绝工作。但是,截止到目前为止,苹果公司并没有提供详尽的解释,没有说明为什么在内部测试中没有检测到8.0.1版本所存在的问题。iPhone的营销主管格雷格发出的唯一声明则否认出现的问题是一个软件错误。这也难怪许多iPhone用户对于是否要切换到新的版本仍举棋不定,尤其是当苹果的问题似乎有更深层次的原因时,新的MacOS X同样出现问题,WLAN错误困扰了用户很长一段时间。知名开发商马尔科·阿莫认为,苹果出于营销的目的坚持每年推出操作系统的一个新版本,时间过于紧张,设置最后期限的做法对于软件开发来说也是不切实际的。

Android 5因为一个错误推迟了交付日期:许多Nexus 5一直无法使用无线局域网。另外,还有一些智能手机和平板电脑经常过一段时间就从待机模式激活,这大大缩短了电池的使用寿命。Google已经在Android 5.0.1版本纠正了这个问题,但更严重的是一个内存错误:一些Nexus设备更新后出现应用程序无法释放所使用的内存,最终内存完全补占用,导致应用程序崩溃。目前,Google已经关闭了相关的Bug跟踪,这表示该问题已经解决,补丁将在下一次更新时进行安装,不过,Google尚未公布相关的信息。

此外,Google似乎忽略了Android开放源代码的部分。自定义ROM的开发人员通过Android开源项目(Android Open Source Project,简称AOSP)的代码开发自定义的ROM,例如CyanogenMod。一位化名为Pulser_G2的著名定制ROM开发商曾经在2013年通过AOSP开发Nexus7的自定义ROM,他认为Google似乎没有采取任何质量保障措施,也就是说,使用Google发布的AOSP开发的自定义ROM,用户或许将遭遇被迫充当beta测试员的境遇。

猜你喜欢

驱动程序补丁错误
在错误中成长
健胃补丁
绣朵花儿当补丁
计算机硬件设备驱动程序分析
补丁奶奶
大病医保期待政策“补丁”
基于MPC8280的CPU单元与内部总线驱动程序设计
《错误》:怎一个“美”字了得
可爱的错误等
妙用鼠标驱动