ITECN专栏

时间:2022-04-09 02:26:29

“ITECN专栏”是《个人电脑》联合ITECN Blog在2006年新推出的栏目,全部内容由微软最有价值专家提供。在此

>> 专栏 常见问题解答 当前所在位置:l

本文提到的DropMyRights,可以到以下网站下载:

/download/f/2/e/f2e49491-efde-4bca-9057-adc89c476ed4/DropMyRights.msi

创建操作系统无人值守安装光盘

文/刘晖

通常安装操作系统都需要花很长时间,因为除了系统本身,我们还需要安装所有设备的驱动、平时要用到的应用程序,给系统打补丁,并对系统和程序进行设置,以便符合我们的使用习惯。这一趟下来,可能要花费好几个小时,很不方便。还有些人,经常需要给亲人朋友修理电脑,有时候如果问题比较大,就免不了要重装系统,同样,整个系统和所有程序安装设置下来,也要花好几个小时。

有没有更简便的方法呢?如果有这样一张光盘,放入光驱后我们就什么都不用管了,光盘会自动为我们安装好操作系统、输入所需信息、安装补丁程序和应用软件,并应用我们习惯的设置。如果真的有这样的光盘,那么重装系统就成了一件很愉快的事情了。其实这样的光盘我们完全可以DIY出来。

实现思路

这样的光盘听起来很神奇,其实制作上非常简单。微软为了方便企业管理员在企业内大范围部署操作系统,在Windows中提供了很多高级安装选项,我们利用的就是这些选项。整个实现方法的思路是这样的:

首先创建一个操作系统无人值守应答文件,该文件中包含了安装系统过程中可能要用到的所有信息,例如你的用户名、机器名、操作系统序列号、操作系统的安装位置等等,同时该文件中还可以包含其它要运行的命令,例如脚本或者批处理文件,这样我们就能利用脚本和批处理文件来安装其它应用程序、驱动程序或者更改注册表设置了。至于操作系统的补丁程序,也很简单,我们可以将其直接整合到操作系统的安装文件中。这样安装系统的时候就已经被应用了补丁程序,免除了日后的安装以及额外的硬盘空间占用。

当然,这些只是最基本的做法,如果你想要实现更高级的应用,我们还可以利用一些现成的程序。例如通过使用某些程序,安装操作系统的过程中就会出现一个对话框,让我们选择所有希望安装的其它应用程序;我们还可以自定义安装过程中的界面,例如将默认的介绍性文字更换成我们自己希望看到的内容,或者更改安装界面的背景图案。

虽然看起来很复杂,不过实际操作起来还是很简单的,只不过步骤非常多。因此我们会以连载的形式在杂志上向你介绍。同时为了便于你的操作和熟悉,经过安排,每期杂志上连载的内容都将可以帮助你完成至少一个目标。

同时有一点需要注意,我们可能会向该光盘中放入尽可能多的程序,例如Office 2003、Windows和Office的补丁、硬件驱动程序,甚至大量其它应用程序。这些东西的体积已经远远超过CD光盘的700MB容量,因此你最好有DVD刻录机,反正现在这东西也不贵了。当然,如果你仍然在使用CD刻录机,也可以实现一些变通,例如一张CD保存Windows安装文件,一张CD保存Office安装文件,另一张或者多张CD保存驱动程序和应用程序。

另外就是本文将以Windows XP专业版为例向你介绍,其实这里的大部分操作也可以用于Windows 2000、Windows XP家庭版以及Windows Server 2003,只不过在细节上有所不同,大家可以自己研究一下。

下面就是我们本期的目标了:将Service Pack和Hotfix补丁程序整合到Windows安装文件中。

Windows补丁的整合

打补丁是很重要的工作,微软几乎每个月都会一些补丁程序,如果不及时打补丁,那么利用相应漏洞编写的病毒或者蠕虫爆发后都会造成严重的后果,在前两年我们已经得到多次教训了。然而这是很麻烦的事情,因为补丁程序实在是太多了。昨天我重装了Windows XP和Office 2003,包括Windows和Office的SP2在内,我需要下载的补丁程序容量竟然接近400MB,这导致无论是对网络带宽还是时间的浪费都是很明显的。所以我们可以将补丁程序整合到Windows安装文件中,避免每次重装系统都需要重新下载并浪费时间安装。

准备工作

在继续之前,你应该准备好这些东西:

Windows XP安装文件:专业版或者家庭版都可以,按照你的实际需要选择就可以了;

Service Pack 2完整安装文件:这里需要的不是那个不到1MB的网络安装文件,而是将近300MB的完整安装文件。简体中文版可以在这里下载到:/downloads/details.aspx?FamilyID=049c9dbe-3b8e-4f30-8245-9e368d3cdb5a&DisplayLang=zh-cn;

其它Hotfix补丁:关于什么是Hotfix补丁,以及怎样获得Hotfix补丁的问题,我们会在稍后介绍;

足够的硬盘空间:包括以后要进行的其它操作,10GB左右就够了。

安装文件的准备

首先将Windows XP安装光盘放入光驱,为了避免光盘自动运行,可以在关闭光驱之前按下键盘上的Shift键,等到光驱上的指示灯熄灭后即可松开。

打开“我的电脑”,在你的光驱图标上点击鼠标右键,选择“打开”。选中光盘根目录下的所有文件,点击鼠标右键,选择“复制”。

用资源管理器打开拥有足够可用空间的硬盘分区(本文将会使用C盘),新建一个文件夹(名称任意,不过本文使用xpcd),然后将之前复制的所有文件粘贴到这里。

下面我们需要将补丁程序整合进去了。这是一个相当冗繁的过程,不过没办法,这也是非常必要的。你可能会想,完整的Windows XP安装文件的体积在600MB左右,光一个SP2就已经将近300MB了,再加上SP2之后的Hotfix补丁,难道光Windows就要占用将近1GB空间了吗?这样对于CD刻录机用户岂不是很麻烦。

其实问题远非我们想象的。我们都知道,操作系统的每个漏洞严格说来就是组成操作系统的某些系统文件产生的漏洞,因此每个补丁程序的主要作用就是用新版本的,没有漏洞的系统文件替换老版本,有漏洞的系统文件。因此将补丁程序整合之后,这些补丁文件会替换系统中原来的老版本文件,基本上不会造成体积上的变化。因此将近300MB的SP2整合到Windows XP的安装文件后,文件总体积的变化仅在60MB左右,这还有一个主要原因,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”。当你记下所有关键更新的编号后,使用浏览器访问 /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,该程序可以判断每个系统文件需要保留的最新版本是哪个,并帮我们自动调整。该文件可以在这里下载:/downloads/details.aspx?amp;displaylang=en&familyid=3C64D889

-74F1-490B-A2FB-F15671A3B60C&display

lang=en ,同样需要放在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补丁,使用通过这种方法处理过的光盘将会在安装过程中自动安装系统所需的所有补丁程序,免除了手工下载的麻烦。下期我将会向你介绍如何将Office的补丁程序整合到系统,以及如何自定义Office的安装过程。

上一篇:刘克丽――直觉2007 下一篇:Guy Kewney――混合动力PC