关于封装与部署的深入研究

前言

从Windows95到现在的Windows Vista,Windows优秀的图形界面和可操作性,赢得了目前广泛的使用人群。虽然Windows各方面性能,特别是稳定性方面,依然有所不及Unix、Linux这些高稳定性的系统,但是它仍然不可否认的成为当前使用范围最广的操作系统。
但是Windows发展了整整10于个年头,虽然Windows的性能在不断增强和完善,但是系统安装的速度依然是十分缓慢且让人头疼。虽然2006年底推出的Windows Vista凭借微软的新技术ImageX,可以在短短20分钟内安装10几G左右的文件,但是由于Windows Vista对计算机硬件要求较高,软件兼容性尚不理想,所以未得到最好的普及,目前使用最广泛的Windows操作系统,依然是Windows XP。
Windows XP 的安装时间在约20~30分钟左右,这还不算更新Windows安全补丁、系统优化以及软件安装的时间,平均来算,要完全安装一个可用的(包含常用补丁和软件,以及必要的系统优化)Windows XP操作系统,至少需要1个小时左右的时间。
对于做硬件维护的人们来讲,系统的这个安装和调试时间无论如何都是不能被很好接受的事实。即使硬件维护人员可以勉强接受这个安装时间,很多情况下,要使用计算机来办公的人员更难接受这个漫长而浪费时间的过程。这的确和高效率的社会结构不符,和高节奏的社会工作生活更不相符。
一直在探寻一种方法,在于如何高效的进行系统的维护乃至重新安装,如何把原来近1小时才能完成的繁杂工作控制在15分钟以内完成。
为解决系统安装过于繁杂耗时的问题,我首先考虑到的是利用微软自己的所谓“封装部署工具”(Sysprep)。
所谓封装部署,是微软为大企业用户提供的一种结构化的部署操作系统的工具。可以在一台计算机上把已经做好各种调试的系统进行再封装,封装完毕的系统,可以部署到其他计算机中,部署时间相当的短,大概仅仅5~6分钟,极大的提高对计算机系统的维护效率。
但是封装部署是有条件的,即仅适用于封装的源计算机和用于部署的目标计算机必须具有相同硬件抽象层 (HAL),即不相同硬件配置的机器不能互相部署对方机器上封装好的操作系统,这样就会对当今繁杂的计算机硬件配置中进行封装和部署造成极大的障碍。
通过对微软的操作系统Longhron各内测版本进行启动过程的跟踪,发现微软在Longhron启动参数中提供了/detecthal 接口,依靠这个接口,我们可以让计算机在启动时自动检测硬件抽象层(HAL),通过了这个检测,封装完的系统在部署到不同的计算机中时,就不会出现由于硬件抽象层(HAL)的不同而造成的系统在部署过程中由于对硬件的依赖而造成的种种非正常运行。
这个研究成功后,一个被调试好的系统(包括系统补丁追加、系统优化、常用软件安装)可以在进行封装后,高效的部署到任何硬件配置的其他计算机上,极大的缩短进行计算机维护的时间,极大的提高计算机维护的效率。

1.Base 基本封装与部署的实现

1.1系统的封装与部署

系统的封装与部署,这个概念出自Microsoft(微软)。在Microsoft的Windows系列系统光盘中,包含企业部署工具(Deploy.cab),Deploy中包括了几个可供管理员和 IT 专业人士用来将 Windows 部署到组织中多台计算机上的工具。
Deploy.cab包括:Setupmgr.exe、Sysprep.exe、Cvtarea.exe、Oformat.com。
Setupmgr.exe,中文译为:安装管理器,为预安装 Microsoft 操作系统和各种应用程序自动创建和修改分布共享的向导。简单来说,这个工具主要是用来自动创建安装Windows操作系统的自动应答文件,可以让系统的安装做到“无人职守”,即在系统的安装过程中,无需任何人为的干预。
Sysprep.exe,中文译为:系统准备,准备计算机硬盘,以便进行磁盘复制、审核并交付客户。在分发前必须运行 Sysprep 以重新封装计算机。Sysprep 包含下列组件:Sysprep.exe、Setupcl.exe、Factory.exe、Sysprep.inf 和 Winbom.ini。应用程序文件(Sysprep.exe、Setupcl.exe 和 Factory.exe)是必需的,而且它们互相依存。简单来说,这个工具用于重新封装已经在计算机上安装好的系统,封装完毕的映像可以通过介质复制到其他计算机上,当获取封装好的映像的计算机启动时,Sysprep.exe将调用%Windir%System32setup.exe在获取映像的计算机中重新部署系统。这种部署类似于直接安装系统,但是速度要比正常安装快许多倍。
Cvtarea.exe,一个用于在 FAT32 或 FAT 文件系统上创建文件并分析那些文件放置情况的灵活工具。使用 Cvtarea 工具,您可以创建连续的文件并将其放在磁盘上的特定位置。
Oformat.com,创建 FAT32 卷,该卷中的簇以某种优化方法取整,以便在以后将其转换为 NTFS 文件系统格式。
总体而言,随着技术的发展,可以替代Cvtarea.exe和Oformat.com的工具出现了许多,Setupmgr.exe用于生成无人职守安装应答文件,Sysprep.exe是用于系统封装的主要工具。

1.2 Setupmgr

获得封装好的系统映像的计算机,第一次启动时,将会自行进行系统部署,系统部署过程中,会提问用户有关产品密钥、时区、计算机名称、管理员密码等等,这个和普通的系统安装的步骤一样(当然,比普通安装快速的多),每次都去输入这些,无非会降低工作效率。
利用Setupmgr.exe,可以为系统部署创建一份自动应答文件,当系统部署时碰到各种需要用户来确认的信息时,直接去这份自动应答文件中寻找预先规定好的答案,而无需提示用户输入。
Setupmgr.ex的使用方法十分简单,安装提示一步步写下去即可。
写完后,即可单击“完成”,这样就可以完成所有有关无人职守安装模式的设定了。设定完成后,系统会自动生成Sysprep.inf文件,这个文件中记录了所有有关自动应答的答案。
部署时,sysprep.inf置于%systemdrive%Sysprep文件夹中,即可执行无人职守的部署安装。

1.3 Sysprep

1.3.1系统封装部署基本流程
一般流程为:
1>常规安装Windows到被设置为启动的硬盘的第一分区(一般为C盘);
2>对系统做应有的系统补丁添加、驱动安装、系统优化调整、常用软件安装等;
3>在C盘根目录下创建Sysprep文件夹,放入企业部署工具(Deploy.cab)中的相应各文件;
4>使用Setupmgr.exe创建自动应答文件;
5>运行Sysprep.exe来封装当前系统为系统映像;
6>关闭计算机,利用第三方软件复制下这个系统映像(C盘全部),一般使用GHOST;
7>利用网络或其他介质(光盘)复制该映像到其他计算机进行部署。

1.3.2 系统封装
做完上节中步骤的前4步,就可以进行对系统的封装了,运行C盘根目录下创建Sysprep文件夹中的Sysprep.exe,进入一下界面:

这是一个很简洁的界面,背后却包含着很高的技术含量。
“不重置激活的宽限期”,将以当前系统的激活剩余时间为主,做封装的系统是如果是免激活的Windows,这一项应选中。
“使用最小化安装”,在XP以后的版本中,系统可以以“欢迎使用”方式安装,也可以使用经典的2000模式即“最小化安装”模式进行安装,一般选中“使用最小化安装”。
“不重新产生安全标识符”,即不重新产生SID,以当前系统的SID为准,这会一定程度的加快封装部署速度,但是会令部署后的系统产生不稳定,不建议选中。
“检测非即插即用硬件”,这会令系统强行检测非即插即用硬件,不建议选中。
“关机模式”,用来设定执行完封装以后要执行什么,有“关机”、“重新启动”和“退出”三种模式。
选择完毕后,单击“重新封装”,Sysprep将当前系统自动封装为系统映像。
系统映像封装完毕后,无论是自动还是手动,重启计算机后,直接用带GHOST工具的光盘由光盘直接启动计算机,使用GHOST备份当前C盘系统磁盘映像。
备份完毕后,我们就得到了可以用来部署在其他计算机上的系统映像了。使用光盘或者网络等介质,将这个磁盘映像再次使用GHOST恢复在其他计算机的C盘上,被恢复的计算机启动时会自动开始部署系统。

1.4 综述
本章主要陈述了关于Windows操作系统的基本封装与部署的实现,微软的企业部署工具的效率和自动化程度相当高,封装和部署过程都比较简单。
但现在有一个很重要的问题,按照微软企业部署工具中Deploy.chm中的简述,企业部署工具对于源计算机和目标计算机需要有相同HAL(硬件抽象层)。
所谓HAL,是由硬件制造商提供的一种薄层软件,为操作系统高层隐藏或抽象硬件差异。通过 HAL 提供的筛选器,不同类型的硬件看起来与操作系统其余的硬件很相似。这样允许操作系统从一个硬件平台移植到另一个硬件平台。HAL 还提供了允许单个设备驱动器在所有的平台上支持同样设备的例程。
封装好的系统在部署到硬件配置差异较大的计算机中时,特别是跨平台的计算机(Intel CPU+Intel主板做的映像部署到AMD CPU+nVIDIA主板上时),会由于HAL的差异而造成各种各样的不稳定乃至挡机,这就和要运用封装部署方式来快速安装系统的初衷不一致了。如果不能有良好的兼容性,即使能快速安装系统也完全是徒劳。
在随后的一章里,将完美解决这个问题,让对硬件平台有依赖的系统封装部署,变为只对硬件配置没有依赖的“万能的”封装部署。

发表评论

电子邮件地址不会被公开。 必填项已用*标注