打补丁是很重要的工作,微软几乎每个月都会发布一些补丁程序,如果不及时打补丁,那么利用相应漏洞编写的病毒或者蠕虫爆发后都会造成严重的后果,在前两年我们已经得到多次教训了。然而这是很麻烦的事情,因为补丁程序实在是太多了。昨天我重装了Windows XP和Office 2003,包括Windows和Office的SP2在内,我需要下载的补丁程序容量竟然接近400 MB,这导致无论是对网络带宽还是时间的浪费都是很明显的。所以我们可以将补丁程序整合到Windows安装文件中,避免每次重装系统都需要重新下载并浪费时间安装。 准备工作 在继续之前,你应该准备好这些东西:
Windows XP安装文件:专业版或者家庭版都可以,按照你的实际需要选择就可以了 Service Pack 2完整安装文件:这里需要的不是那个不到1 MB的网络安装文件,而是将近300 MB的完整安装文件。简体中文版可以在这里下载到 。 其它Hotfix补丁:关于什么是Hotfix补丁,以及怎样获得Hotfix补丁的问题,我们会在稍后介绍。 足够的硬盘空间:包括以后要进行的其它操作,10 GB左右就够了 安装文件的准备 首先将Windows XP安装光盘放入光驱,为了避免光盘自动运行,可以在关闭光驱之前按下键盘上的Shift键,等到光驱上的指示灯熄灭后即可松开。
打开“我的电脑”,在你的光驱图标上点击鼠标右键,选择“打开”。选中光盘根目录下的所有文件,点击鼠标右键,选择“复制”。
用资源管理器打开拥有足够可用空间的硬盘分区(本文将会使用C盘),新建一个文件夹(名称任意,不过本文使用xpcd),然后将之前复制的所有文件粘贴到这里。
下面我们需要将补丁程序整合进去了。这是一个相当冗繁的过程,不过没办法,这也是非常必要的。你可能会想,完整的Windows XP安装文件的体积在600 MB左右,光一个SP2就已经将近300 MB了,再加上SP2之后的Hotfix补丁,难道光Windows就要占用将近1 GB空间了吗?这样对于CD刻录机用户岂不是很麻烦。
其实问题远非我们想象的。我们都知道,操作系统的每个漏洞严格说来就是组成操作系统的某些系统文件产生的漏洞,因此每个补丁程序的主要作用就是用新版本的,没有漏洞的系统文件替换老版本,有漏洞的系统文件。因此将补丁程序整合之后,这些补丁文件会替换系统中原来的老版本文件,基本上不会造成体积上的变化。因此将近300 MB的SP2整合到Windows XP的安装文件后,文件总体积的变化仅在60 MB左右,这还有一个主要原因,Windows XP的SP2中新增了很多功能,如果没有这些新功能(例如Windows 2000的SP4,仅仅是以前Hotfix的集合,没有增加太多新功能),那么体积的变化将会很不明显。不过这里需要注意,不会导致安装文件体积大幅度增大的仅仅是Service Pack,对于Hotfix补丁,因为严格说来并不是整合,只是放在一起,在安装过程中自动安装,因此这部分补丁将会占用相当于补丁安装文件大小的空间。
好了,开始整合补丁吧。 Service Pack的整合 Service Pack是相当重要的补丁,通常都可以解决上百个不同的漏洞,因此推荐安装。下载好Windows XP的SP2完整版安装文件后,将其保存在C盘的根目录下,然后打开运行对话框,运行下列命令(图1):
c:/xpsp2.exe -s:c:/xpcd
命令解释: 上面的命令中,“xpsp2.exe”就是SP2安装文件的名称,当然,这里为了版面的美观,使用了一个简化的名字,你下载回来的文件肯定不会是这个名称,不过可以自己修改。“-s”参数可以指定这是一次整合,而非安装过程,同时要在该参数后面指定整合的目标文件夹,也就是“c:/xpcd”。如果想要知道这里可以使用的其它参数,那么可以运行“xpsp2.exe /?”命令查看。
随后我们将可以看到图2和图3所示的界面。稍等片刻即可完整补丁的整合工作。
Hotfix的获取和集成 除了Service Pack,我们见过最多的还有Hotfix补丁。和Service Pack一次解决上百个漏洞不同,Hotfix补丁通常一个只能解决一个漏洞(实际上Service Pack可以理解为Hotfix补丁的组合)。
怎样才能获得操作系统所需的所有Hotfix补丁?方法有很多,但是这里只介绍一个最可靠,最保险的。
首先使用一台干净安装,不包含其它程序和补丁的Windows XP系统访问Windows Update网站(该系统中需要安装SP2,因为我们前面已经将SP2整合到了Windows中,因此这里也必须在SP2的基础上获取更新。要知道,有些比较老的Hotfix补丁在安装了最新的Service Pack之后就不必安装了),搜索更新,注意代表每个关键更新的六位数的知识库编号,例如“329441: Security Update for Microsoft Windows”。当你记下所有关键更新的编号后,使用浏览器访问 http://support.microsoft.com/kb/xxxxxx ,并把xxxxxx用实际编号替代。然后从知识库文章中提供的链接上下载更新程序,对每一个补丁重复这样的操作。
Hotfix补丁的集成有多种方法,不过下面我们会介绍历史最悠久、适用范围最广的方法。
因为实际环境的不同,因此每个人搜索和下载到的更新数量可能是不同的。当你将所有补丁都下载回来之后,在C:/XPCD/i386下新建一个名为“SVCPACK”的文件夹,并将所有下载回来的补丁程序都复制进去。
接下来需要对这些补丁重命名。微软为了能让补丁的名称更明了,往往会使用很长的名字,例如知识库编号为819696的补丁程序,针对简体中文版32位Windows XP版本的名称就是Q819696_WXP_SP2_x86_CHS.exe,通过这个名称我们立刻就可以知道该补丁适用的操作系统、语种,以及编号等信息。然而这么长的文件在安装过程中可能会遇到问题。因此我们需要将补丁程序的名称改为最保守的8.3格式(即,主文件名8个字符长度,扩展名3个字符长度),那么这个补丁就可以改名为Q819696.exe。将所有补丁程序都进行类似的改名。
接着打开Windows自带的记事本,复制进去下列内容:
[Version] Signature="$Windows NT$" MajorVersion=5 MinorVersion=1 BuildNumber=2600
[SetupData] CatalogSubDir="/i386/SVCPACK"
[ProductCatalogsToInstall]
[SetupHotfixesToRun] Q330994.exe /Q:A /R:N Q819696.exe /Q /O /N /Z KB824146.exe /Q /O /N /Z qchain.exe
命令解释: 上面的命令中,“[Version]”字段下的内容描述了操作系统的版本。例如Windows XP SP2的版本是5.1.2600,那么MajorVersion、MinorVersion和BuildNumber三个项目的数值就分别为5、1、2600。如果你使用的是Windows 2000或者Windows Server 2003,那么需要使用相应的版本号来替换。Windows 2000 SP4的版本号是5.0.2195,Windows Server 2003 SP1的版本号是5.2.3790。 “[SetupData]”字段指定了补丁程序安装文件的保存位置,建议这里不要更改。 “[SetupHotfixesToRun] ”字段下列举了所有需要安装的补丁名称以及相应的静默安装参数,你需要按照实际情况将下载回来的补丁程序都列举在这里,并添加相应的静默安装参数。最后的一个qchain.exe虽然并不是补丁文件,但也是必须的。
为什么要使用qchain.exe? 我们知道,补丁程序的主要作用就是用新版本的系统文件替换老版本有漏洞的同一个系统文件,那么可以假设这样的情况:系统中有一个文件system.dll,在原始系统中该文件的版本是1.0,有漏洞。同时我们要安装两个补丁,第一个补丁将会把system.dll文件的版本升级到1.1,但是第二个补丁会把该文件的版本升级到2.0。在我们同时安装的多个补丁中,没有注意补丁的安装顺序,把第二个补丁放在第一个补丁之前执行了,那么可想而知,最终的系统中留下的该文件的版本将会是1.1,而不是最新的2.0。为了避免这个问题,我们可以在批处理文件中的最末尾应用一下qchain.exe,该程序可以判断每个系统文件需要保留的最新版本是哪个,并帮我们自动调整。该文件可以在这里下载 ,同样需要放在SVCPACK目录下(注意,下载回来的是一个自解压文件,需要运行才能释放出真正的qchain.exe)。
将该文件以“svcpack.inf”为名保存在I386目录下。保存的时候需要注意,在记事本的保存对话框中,首先要在“文件类型”下拉菜单中选择“所有文件”,然后输入完整的文件名。注意这里不能将文件保存为“svcpack.inf.txt”。然后,删除I386文件夹中的svcpack.in_文件。
接着使用记事本打开I386目录下的DOSNET.inf文件,向其中添加下列内容:
[OptionalSrcDirs] SVCPACK
这两行内容可以告诉安装程序要到哪里去找补丁程序。 Hotfix的参数判断 前面我们已经说过,在svcpack.inf文件中,我们需要列出所有要安装的Hotfix补丁的名称以及静默安装参数。不过怎么知道每个补丁程序需要使用怎样的静默安装参数呢?简单来说,因为发布时间的不同,大部分我们接触到的补丁程序有两种样子,分别如图4和图5所示。其中类似图4的补丁需要使用“/Q /O /N /Z”参数;
而类似图5的补丁则需要使用“/Q:A /R:N”参数。
除了这些参数,大部分补丁程序还可以应用下列参数:
/U 无人值守模式,使用这种方式安装的时候不需要任何用户参与,但是你可以看到处理进程栏窗口。 /Q 静默模式,这个参数的作用和/U一样,但是不显示任何进程栏窗口。不必联合使用/Q和/U参数。 /O 不提示直接覆盖OEM文件,最近很多论坛上用户通过测试发现用这个参数可以很明显地加快Hotfix的安装速度,基本上每个Hotfix补丁可以节省一分钟左右的时间。这是因为每个Hotfix补丁在安装的时候都需要花费一定的时间搜索“第三方驱动”,每一个补丁安装的时候都需要搜索一次,使用/O就可以跳过搜索。这个参数要小心使用,因为这样可能会覆盖你安装的某些驱动程序,因为有可能带来麻烦。 /N 不备份要删除的文件,使用这个参数就可以不用创建老版本系统文件的备份,因此在添加/删除程序列表中也就不会出现使用了这个参数安装的补丁项目了。 /Z 安装结束后不重启动计算机。
基本上,Windows的补丁程序整合就是这些内容了。本期中,我们已经学会了怎样向Windows的安装文件中整合Service Pack和集成Hotfix补丁,使用通过这种方法处理过的光盘将会在安装过程中自动安装系统所需的所有补丁程序,免除了手工下载的麻烦。 |
Windows补丁的整合
最新推荐文章于 2019-08-04 20:54:45 发布