且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

玩转操作系统之系统封装部署初探!!

更新时间:2022-09-23 19:05:12

很早以前就想DIY自己的OS了.一直没时间,也没静下心来学习.马上有个项目可能需要用到这些东西,要大规模的去部署OS,刚好.就这机会学习下..给自己充电!!UP TO!!
虽然Windows的性能在不断增强和完善,但是系统安装的速度依然是十分缓慢且让人头疼。虽然2006年底推出的Windows Vista凭借微软的新技术ImageX,可以在短短20分钟内安装10几G左右的文件,但是由于Windows Vista对计算机硬件要求较高,软件兼容性尚不理想,(虽然sp1的发布,会改善些问题)所以未得到***的普及,目前使用最广泛的Windows操作系统,依然是Windows XP。 
Windows XP 的安装时间在约20~30分钟左右,这还不算更新Windows安全补丁、系统优化以及软件安装的时间,平均来算,要完全安装一个可用的(包含常用补丁和软件,以及必要的系统优化)Windows XP操作系统,至少需要1个小时左右的时间。经常让我很头痛.有时候在虚拟机里做试验,来是忘记用什么UNDO盘,或者快照之类的..在从新装的时候很麻烦.
为解决系统安装过于繁杂耗时的问题,我首先考虑到的是利用微软自己的所谓“封装部署工具”(Sysprep)。 
所谓封装部署,是微软为大企业用户提供的一种结构化的部署操作系统的工具。可以在一台计算机上把已经做好各种调试的系统进行再封装,封装完毕的系统,可以部署到其他计算机中,部署时间相当的短,大概仅仅5~6分钟,极大的提高对计算机系统的维护效率。 
但是封装部署是有条件的,即仅适用于封装的源计算机和用于部署的目标计算机必须具有相同硬件抽象层 (HAL),即不相同硬件配置的机器不能互相部署对方机器上封装好的操作系统,这样就会对当今繁杂的计算机硬件配置中进行封装和部署造成极大的障碍。 
通过Longhorn PE2.0的研究,发现微软在Longhorn启动参数中提供了/detecthal 接口,依靠这个接口,我们可以让计算机在启动时自动检测硬件抽象层(HAL),通过了这个检测,封装完的系统在部署到不同的计算机中时,就不会出现由于硬件抽象层(HAL)的不同而造成的系统在部署过程中由于对硬件的依赖而造成的种种非正常运行。 
这样,一个被调试好的系统(包括系统补丁追加、系统优化、常用软件安装)可以在进行封装后,高效的部署到任何硬件配置的其他计算机上,极大的缩短进行计算机维护的时间,极大的提高计算机维护的效率。
系统的封装与部署,这个概念出自Microsoft.在Microsoft的Windows系列系统光盘中,包含企业部署工具,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%\System32\setup.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以后的版本中,系统可以以“欢迎使用”方式安装,也可以使用经典的模式即“最小化安装”模式进行安装,一般选中“使用最小化安装”。 
“不重新产生安全标识符”,即不重新产生SID,以当前系统的SID为准,这会一定程度的加快封装部署速度,但是会令部署后的系统产生不稳定,不建议选中。 
“检测非即插即用硬件”,这会令系统强行检测非即插即用硬件,不建议选中。 
“关机模式”,用来设定执行完封装以后要执行什么,有“关机”、“重新启动”和“退出”三种模式。 
选择完毕后,单击“重新封装”,Sysprep将当前系统自动封装为系统映像。 
系统映像封装完毕后,无论是自动还是手动,重启计算机后,直接用带GHOST工具的光盘由光盘直接启动计算机,使用GHOST备份当前C盘系统磁盘映像。 
备份完毕后,我们就得到了可以用来部署在其他计算机上的系统映像了。使用光盘或者网络等介质,将这个磁盘映像再次使用GHOST恢复在其他计算机的C盘上,被恢复的计算机启动时会自动开始部署系统。
写说这么多...空了继续!!!
本文转自许珈毓的技术思考博客51CTO博客,原文链接http://blog.51cto.com/jiayu/63959如需转载请自行联系原作者

BabyXc