封装与部署研究论文 企业决策研究论文_第1页
封装与部署研究论文 企业决策研究论文_第2页
封装与部署研究论文 企业决策研究论文_第3页
封装与部署研究论文 企业决策研究论文_第4页
封装与部署研究论文 企业决策研究论文_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Word-34-封装与部署研究论文企业决策研究论文前言:从Windows95到现在的WindowsVista,Windows优秀的图形界面和可操作性,赢得了目前广泛的使用人群。虽然Windows各方面性能,特殊是稳定性方面,依旧有所不及Unix、Linux这些高稳定性的系统,但是它仍旧不行否认的成为当前使用范围最广的操作系统。

但是Windows进展了整整10于个年头,虽然Windows的性能在不断增加和完善,但是系统安装的速度依旧是非常缓慢且让人头疼。虽然2022年底推出的WindowsVista凭借微软的新技术ImageX,可以在短短20分钟内安装10几G左右的文件,但是由于WindowsVista对计算机硬件要求较高,软件兼容性尚不抱负,所以未得到最好的普及,目前使用最广泛的Windows操作系统,依旧是WindowsXP。

WindowsXP的安装时间在约20~30分钟左右,这还不算更新Windows平安补丁、系统优化以及软件安装的时间,平均来算,要完全安装一个可用的(包含常用补丁和软件,以及必要的系统优化)WindowsXP操作系统,至少需要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、O。

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工具,您可以创建连续的文件并将其放在磁盘上的特定位置。

O,创建FAT32卷,该卷中的簇以某种优化方法取整,以便在以后将其转换为NTFS文件系统格式。

总体而言,随着技术的进展,可以替代Cvtarea.exe和O的工具消失了很多,Setupmgr.exe用于生成无人职守安装应答文件,Sysprep.exe是用于系统封装的主要工具。

1.2Setupmgr

获得封装好的系统映像的计算机,第一次启动时,将会自行进行系统部署,系统部署过程中,会提问用户有关产品密钥、时区、计算机名称、管理员密码等等,这个和一般的系统安装的步骤一样(当然,比一般安装快速的多),每次都去输入这些,无非会降低工作效率。

利用Setupmgr.exe,可以为系统部署创建一份自动应答文件,当系统部署时遇到各种需要用户来确认的信息时,直接去这份自动应答文件中查找预先规定好的答案,而无需提示用户输入。

Setupmgr.ex的使用方法非常简洁,安装提示一步步写下去即可。

写完后,即可单击“完成”,这样就可以完成全部有关无人职守安装模式的设定了。设定完成后,系统会自动生成Sysprep.inf文件,这个文件中记录了全部有关自动应答的答案。

部署时,sysprep.inf置于%systemdrive%Sysprep文件夹中,即可执行无人职守的部署安装。

1.3Sysprep

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还供应了允许单个设备驱动器在全部的平台上支持同样设备的例程。

封装好的系统在部署到硬件配置差异较大的计算机中时,特殊是跨平台的计算机(IntelCPUIntel主板做的映像部署到AMDCPUnVIDIA主板上时),会由于HAL的差异而造成各种各样的不稳定乃至挡机,这就和要运用封装部署方式来快速安装系统的初衷不全都了。假如不能有良好的兼容性,即使能快速安装系统也完全是徒劳。

在随后的一章里,将完善解决这个问题,让对硬件平台有依靠的系统封装部署,变为只对硬件配置没有依靠的“万能的”封装部署。

2.Unlimited万能封装与部署的实现

2.1突破硬件限制的三个问题

2.1.1计算机电源管理模式

不同计算机的电源管理是不一样的,共有Standard、ACPIUniprocessor、ACPIMultiprocessor、MPSUniprocessor、MPSMultiprocessor、CompaqSystemPro、ACPI这7种,这7种电源管理模式分别适用于7种类型的计算机。

截止WindowsServer2022的企业部署工具,运用SYSPREP有一个限制,就是仅适用于用于封装的源计算机和进行部署的目标计算机必需具有相同硬件抽象层(HAL)。

没有相同的HAL,会造成电源管理模式不能正确推断。网络中提出了不用的HAL检测解决方案,如ACPI封包、死性不改的电源模式等等。但是这些都不能做到100%的电源推断正确,而且检测会需要额外的文件,并且可能多次重启计算机,耗费了时间。

问题1,怎么让Sysprep突破不能自动检测电源管理的限制?

2.1.2计算机硬盘

计算机硬盘的进展可谓快速。容量的提升,个人计算机硬盘容量从97年以前的个位数容量,突破到2022年现在的三位数容量。硬盘接口也始终在转变,从IDE到SATA,再从SATA到SATAII,从前始终在服务器上使用的SCSI磁盘技术和RAID磁盘阵列技术也慢慢的被使用到个人计算机中。(IDE属于并口硬盘,SATA和SCSI都属于串口硬盘,RAID属于硬盘阵列技术)。

在部署过程中,由于磁盘类型不同,需要不同的硬盘驱动(一般都是关于串口磁盘和磁盘阵列的驱动)。假如部署过程中不能正确加载硬盘驱动,则会造成不能进入系统甚至不能启动。

问题2,如何突破SRS(SATARAIDSCSI)硬盘类型的限制?

2.1.3驱动残留

进行封装的源计算机假如和进行部署的目标计算机硬件差异很大,例如AMDCPUnVIDIA主板的源计算机做的系统映像部署到IntelCPUIntel主板的机器上,在源计算机上装载的驱动程序确定是在目标计算机上用不到了。即使目标计算机和源计算机硬件差异不大,但硬件技术差异很大,例如IntelCPUIntel主板的源计算机做的系统映像部署到IntelCPUIntel主板的机器上,源计算机为Intel865主板,而目标计算机为945主板,源计算机上的驱动也是铁定用不到的。

这些驱动的残留不仅仅是会留下系统垃圾的问题,假如源计算机上的驱动自动强行去识别目标计算机上的硬件,很有可能会造成系统的不稳定乃至蓝屏崩溃。

问题3,如何突破不同硬件驱动冲突的限制?

2.2突破HAL限制

2.2.1Longhorn的启示

WindowsServer2022之前,Sysprep受到“必需源计算机与目标计算机有着相同的HAL”的限制,在HAL不相同的时候,不能正确推断计算机电源管理模式。

从2022年WindowsServer2022发布到2022年底WindowsVista的发布中的3年中,微软在研发Vista的时候,发布了以内部研发编号命名的WindowsLonghorn测试版。

WindowsLonghorn与以往的Windows在启动时有着肯定的区分。

第一,NTLDR有肯定区分,供应了“/detecthal”接口;

其次,BOOT.INI也支持“/detecthal”参数,以实现与NTLDR的结合;

第三,INF文件夹中有了“dtecthal.inf”,供应各种HAL类型检测的参数说明。

有了这三个文件,可以让计算机在开机启动时即自动检测HAL,从而可以自动推断电源管理选项。

2.2.2移植Longhorn的HAL推断

现今大多数人还是以使用Windows2000/XP为主,所以,即使Longhorn的HAL推断再怎么强悍,不能移植到2000/XP中,也就不能使用。

以下是在2000/XP总移植并使用Longhorn的HAL推断的详细方法:

1从系统中提取相应的HAL文件包:(WIN2000在SP4.CAB、WINDOWSXPSP2在SP2.CAB中)

halacpi.dll

halapic.dll

halmps.dll

halaacpi.dll

halmacpi.dll

hal.dll

ntkrnlmp.exe

ntkrnlpa.exe

ntkrpamp.exe

ntoskrnl.exe

提取完毕后将hal.dll更名为halstnd.dll,ntoskrnl.exe更名为ntkrnlup.exe;

2将上述相应的HAL文件包拷贝到预备封装的系统的%Windir%SYSTEM32下;

3将Longhorn的“dtecthal.inf”拷贝到预备封装的系统的%Windir%INF下;

4修改C:BOOT.INI

在预备封装的系统后面加上/DETECTHAL参数如:

[bootloader]

timeout=0

default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS

[operatingsystems]

multi(0)disk(0)rdisk(0)partition(1)WINDOWS="MicrosoftWindowsXPProfessional"/fastdetect/detecthal

5将LONGHORN版本的NTLDR拷贝到从C:,掩盖原有的NTLDR;

6删除预备封装的系统的HAL信息,删除注册表中以下键值,假如提示权限不足不能删除,则可用setacl.exe来修改权限再删除。

HKEY_LOCAL_MACHINESYSTEMControlSet001EnumACPI_HAL

HKEY_LOCAL_MACHINESYSTEMControlSet001EnumRootACPI_HAL

HKEY_LOCAL_MACHINESYSTEMControlSet002EnumACPI_HAL

HKEY_LOCAL_MACHINESYSTEMControlSet002EnumRootACPI_HAL

HKEY_LOCAL_MACHINESYSTEMControlSet003EnumACPI_HAL

HKEY_LOCAL_MACHINESYSTEMControlSet003EnumRootACPI_HAL

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumACPI_HAL

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumRootACPI_HAL

至此,突破了HAL限制的系统就已经预备完毕。由于这个技术本身就出自微软,所以对电源管理的推断几乎是100%。

突破HAL限制的系统可以部署在任何HAL环境的计算机上,不再有“源计算机和目标计算机需有相同的HAL”的限制。

2.1.1节中提出的问题完善解决

2.3突破SRS硬盘限制

确定目标计算机上可能用到的全部大量存储掌握器,对于可能存在于目标计算机上的每个大量存储掌握器,创建其硬件ID的列表。

2.3.1对于在Windows产品CD中供应的大量存储掌握器

可以创建具有以下部分的Sysprep.inf文件:

[SysprepMassStorage]

hardware_id=path_to_device_inf

其中:

hardware_id

在设备的.inf文件中指定的即插即用ID。

path_to_device_inf

.inf文件的路径,该文件中包含待安装掌握器的即插即用ID。

例如,要支持WindowsXP自带的不同IDE掌握器(PCI和Intel),该部分如下所示:

[SysprepMassStorage]

PCIVEN_8086DEV_1222="%WINDIR%infmshdc.inf"

PCIVEN_8086DEV_1230="%WINDIR%infmshdc.inf"

PCIVEN_8086DEV_7010="%WINDIR%infmshdc.inf"

PCIVEN_8086DEV_7111="%WINDIR%infmshdc.inf"

PCIVEN_8086DEV_2411="%WINDIR%infmshdc.inf"

PCIVEN_8086DEV_2421="%WINDIR%infmshdc.inf"

PCIVEN_8086DEV_7199="%WINDIR%infmshdc.inf"

2.3.2对于Windows产品CD上没有供应的大量存储掌握器

将目标计算机上的大量存储掌握器的驱动程序文件复制到您计算机上的文件夹中–例如,复制到主计算机硬盘驱动器上的%SYSTEMDRIVE%pnpdrvrsstorage中。

按以下格式向[SysprepMassStorage]部分中添加几行内容:

hardware_id=path_to_device_inf,disk_directory,disk_description,disk_tag

其中:

hardware_id

在设备的.inf文件中指定的即插即用ID。

path_to_device_inf

.inf文件的路径,该文件中包含待安装掌握器的即插即用ID。

disk_directory

第三方供应的软盘上的文件夹名称,该文件夹中包含大量存储驱动程序的副本。

disk_description

在第三方供应的Txtsetup.oem文件中指定的软盘说明。

disk_tag

在第三方供应的Txtsetup.oem文件中指定的软盘的磁盘标记。

将驱动程序文件放置到由Sysprep.inf中[SysprepMassStorage]部分指定的位置。例如,要支持新的Qlogic驱动程序,假如将文件复制到C:DriversStorage文件夹,则添加如下行:

[SysprepMassStorage]

PCIVEN_1077DEV_1080="C:DriversStorageqlogicqlogic.inf","C:DriversStorageqlogic","QlogicSoftwareDisk","C:DriversStorageqlogicqlogic2.3.3突破SRS实例

1收集需要的srs驱动,便利期间,直接下载DPS供应的massstorage驱动:

http://./DriverPacks/download.php?pag=m

2解压驱动到c:drivers。

3编辑sysprep.ini加入以下内容

InstallFilesPath=C:sysprepi386

然后在[SysprepMassStorage]段中添加需要的串口磁盘驱动,依据DPS驱动包的说明书,一般只集成Intel、nVIDIA、Uli、VIA、SiS、AMD的串口磁盘驱动即可,在对应的驱动包中的inf文件中,可以获得硬件的即插即用ID。

例如:

[SysprepMassStorage]

PCIVEN_1022DEV_7469=c:driversmamAMDEIDE.inf

PCIVEN_1002DEV_4349=c:driversmatatiide.inf

PCIVEN_10B9DEV_5215=c:driversmau1ALIIDE.INF

PCIVEN_10B9DEV_5219=c:driversmau1ALIIDE.INF

PCIVEN_10B9DEV_5229=c:driversmau1ALIIDE.INF

PCIVEN_10B9DEV_5228=c:driversmau2m5228.INF

PCIVEN_10B9DEV_5281=c:driversmau2m5281.inf

PCIVEN_10B9DEV_5287=c:driversmau3ulisata.inf

PCIVEN_10B9DEV_5288=c:driversmau4ULISATA.INF

PCIVEN_10B9DEV_5289=c:driversmau5ULISATA.INF

PCIVEN_8086DEV_2652CC_0104=c:driversmin1iastor.inf

PCIVEN_8086DEV_27C3CC_0104=c:driversmin1iastor.inf

PCIVEN_8086DEV_2682CC_0104=c:driversmin1iastor.inf

PCIVEN_8086DEV_27C6CC_0104=c:driversmin1iastor.inf

PCIVEN_8086DEV_2822CC_0104=c:driversmin1iastor.inf

PCIVEN_8086DEV_2652CC_0106=c:driversmin1iaahci.inf

PCIVEN_8086DEV_2653CC_0106=c:driversmin1iaahci.inf

PCIVEN_8086DEV_27C1CC_0106=c:driversmin1iaahci.inf

PCIVEN_8086DEV_27C5CC_0106=c:driversmin1iaahci.inf

PCIVEN_8086DEV_2681CC_0106=c:driversmin1iaahci.inf

PCIVEN_8086DEV_2821CC_0106=c:driversmin1iaahci.inf

PCIVEN_8086DEV_24DFCC_0104=c:driversmin1Oiastor.inf

PCIVEN_8086DEV_25B0CC_0104=c:driversmin1Oiastor.inf

PCIVEN_10DEDEV_008E=c:driversmNTMnvatabus.inf

PCIVEN_10DEDEV_00D5=c:driversmNTMnvatabus.inf

PCIVEN_10DEDEV_00EE=c:driversmNTMnvatabus.inf

PCIVEN_10DEDEV_00E3=c:driversmNTMnvatabus.inf

PCIVEN_10DEDEV_0036=c:driversmNTMnvatabus.inf

PCIVEN_10DEDEV_003E=c:driversmNTMnvatabus.inf

PCIVEN_10DEDEV_0054=c:driversmNTMnvatabus.inf

PCIVEN_10DEDEV_0055=c:driversmNTMnvatabus.inf

PCIVEN_10DEDEV_0266=c:driversmNTMnvatabus.inf

PCIVEN_10DEDEV_0267=c:driversmNTMnvatabus.inf

PCIVEN_10DEDEV_036F=c:driversmNTMnvatabus.inf

PCIVEN_10DEDEV_037E=c:driversmNTMnvatabus.inf

PCIVEN_10DEDEV_037F=c:driversmNTMnvatabus.inf

PCIVEN_10DEDEV_03F6=c:driversmNTMnvatabus.inf

PCIVEN_10DEDEV_03F7=c:driversmNTMnvatabus.inf

PCIVEN_10DEDEV_03E7=c:driversmNTMnvatabus.inf

PCIVEN_1039DEV_0181=c:driversMSI1SISRaid1.INF

PCIVEN_1039DEV_0180=c:driversMSI2SISRaid.INF

PCIVEN_1039DEV_0182=c:driversMSI3SISRaid2.INF

PCIVEN_1106DEV_3349CC_0104=c:driversMV1VIAMRAID.INF

PCIVEN_1106DEV_6287CC_0106=c:driversMV1VIAMRAID.INF

PCIVEN_1106DEV_0591CC_0104=c:driversMV1VIAMRAID.INF

PCIVEN_1106DEV_3249CC_0104=c:driversMV1VIAMRAID.INF

PCIVEN_1106DEV_3149CC_0104=c:driversMV1VIAMRAID.INF

PCIVEN_1106DEV_3164CC_0104=c:driversMV1VIAMRAID.INF

PCIVEN_1106DEV_0581CC_0104=c:driversMV1VIAMRAID.INF

PCIVEN_1106DEV_7372CC_0104=c:driversMV1VIAMRAID.INF

PCIVEN_1106DEV_4149=c:driversMV2viapide.inf

PCIVEN_1106DEV_0571=c:driversMV3vminiide.inf

PCIVEN_1106DEV_3149CC_0101=c:driversMV3vminiide.inf

PCIVEN_1106DEV_0591CC_0101=c:driversMV3vminiide.inf

PCIVEN_1106DEV_5337CC_0101=c:driversMV3vminiide.inf

PCIVEN_1106DEV_3349CC_0101=c:driversMV3vminiide.inf

PCIVEN_1106DEV_5287CC_0101=c:driversMV3vminiide.inf

PCIVEN_1106DEV_3164CC_0101=c:driversMV3vminiide.inf

PCIVEN_1106DEV_0581CC_0101=c:driversMV3vminiide.inf

PCIVEN_1106DEV_5324CC_0101=c:driversMV3vminiide.inf

PCIVEN_104BDEV_1040=c:driversMVMvmscsi.inf

4在c:sysprep名目下建立i386$oem$名目,在c:sysprepi386$oem$中建立cmdlines.txt文件,在文件中加入

[Commands]

"c:sysprepsysprep-clean"

这样就会在最小化安装的过程中禁用全部由于在目标计算机上不存在而未安装的大量存储掌握器。

至此,一个突破了SRS限制的系统映像预备完毕。

执行sysprep进行封装,在封装的过程中,系统会自动安装srs驱动。在最小化安装的时候会删除多余的驱动。

2.1.2节中的问题,这里也就已经解决了。

2.4多余驱动的卸载

做封装所用的计算机中所使用的驱动程序,在被部署的计算机上大多数不再有用(除非都被部署在相同硬件配置的计算机上)。所以,我们要一一删除源计算机中的这些驱动,以免残留的驱动造成部署的不正常。

卸载驱动,在“设备管理器”(我的电脑,属性,硬件,设备管理器)中列出全部设备,然后一一卸载。

在设备管理器中,可以看到当前正在使用的全部硬件设备。

1常规驱动的卸载

除“IDEATA/ATAPI掌握器”和“计算机”以外的其他设备,一一绽开,然后卸载即可。

2更改IDE模式

由于不同计算机的IDE掌握器差异比较大,假如消失错误的识别,将会消失不能开机的状况,所以,这里预先将IDE掌握器设置为“标准双通道”,在部署时,安装程序将自动查找和起匹配的IDE掌握器驱动程序。

3计算机电源管理

计算机电源管理分为很多种,可以适用于不同类别的计算机。假如电源管理推断不正确,将会造成计算机的不正常。在计算机识别电源管理之前,需要将电源管理设为标准模式以基本适用于全部的计算机,这种标准模式仅仅可以保证计算机正常启动,但是不能保证最高效的运行。

将计算机的电源管理模式设置为StandardPC以后,在部署时,由于我们适用了Longhorn的HAL自动推断,计算机将会在启动时自动修改StandardPC为被部署计算机的电源管理模式。

至此,突破了硬件限制的系统映像也被修改了出来,系统映像可以被部署到不同硬件配置的机器中了。

2.1.3节中的问题被解决。

2.5综述

在不同硬件配置的机器中适用系统部署受到种种制约,本章分为3块解决了映像系统万能部署的3条限制。

Longhron的自动HAL推断,解决了源计算机与目标计算机在不同HAL模式时不能进行部署的问题。

SRS驱动的集成,解决了系统部署在不同硬盘模式的状况下进行部署的问题。

驱动的卸载,解决了系统部署在不同硬件配置的计算机下进行的问题。

这3条限制被突破以后,系统部署时,不必再遵循源计算机和目标计算机必需相同配置的原则,真正可以实现无限制的“万能部署”。3.Auto自动封装与部署的实现

3.1自动封装与部署的意义和理论实现

3.1.1自动封装的意义

1封装测试需要许多次的重复

封装一个可以部署的系统映象并不难,但是封装一个比较完善的可以满意各项要求的系统映象却是一个特殊花费时间和精力的工作,需要许多次的重复制作。仅上一章中所提到的各种限制的突破,假如每次测试都时候都做一次,也会消耗许多的时间。

能不能让这些手工的机械化的操作变成自动的?

2频繁的手工操作简单造成错误

即使是一个对封装非常了解的人,在多次的执行封装中,也难免会消失遗漏和失误,究竟封装的步骤一环扣一环,虽然不繁琐也难免会造成错误。

怎么让封装的流程变的自动而无需人手工参加?

3封装的普及

许多IT工并不非常了解封装与部署,却一样想做出自己的系统映象用来部署,由于工作等缘由实在没有时间去系统的学习,莫非封装只能把握在少数人手中?

怎么让封装更为普及化,让没有太多封装学问和阅历的人也能快速的进行系统封装?

3.1.2系统封装和部署的具体流程

1系统安装、补丁、软件等;

[封装]:

2在系统光盘上找到Deploy.cab,解压到%system%Sysprep;

3运行Setupmgr.exe创建无人职守部署应答文件Sysprep.inf;

4突破HAL限制,把于HAL相关的文件都放置在%windir%下相应位置,提取Longhorn的ntldr1,修改boot.ini;

5突破SRS限制,把全部串口磁盘和磁盘阵列驱动都放置在%systemdrive%Drivers下,在Sysprep.inf中的[SysprepMassStorage]段下添加磁盘驱动位置等信息;

6卸载各种驱动,修改IDE掌握器为标准双通道,修改计算机电源管理为StandardPC;

7运行Sysprep.exe进行系统封装;

8关闭封装源计算机;

9DOS模式启动封装源计算机,使用GHOST备份下封装完的系统映象;

[部署]:

10使用GHOST恢复系统映象到部署目标计算机;

11部署目标计算机,系统运行%windir%system32setup.exe来部署计算机映象。

3.1.3自动封装的理论实现

纵观流程,封装过程基本上可以分为相关文件的复制、对文件的调整、相关软件的运行、对系统的调整四部分。

相关文件的复制,简洁说,就是把应当放在哪儿的文件放在哪儿,这些文件都是特定的,进行封装必定要用到这些文件,所以,可以预先把这些文件提取出来放置在一个另外的文件夹中,然后用WinRAR压缩为自解压文件并设定解压位置,这样到用这些文件的时候直接双击自解压包,这些要用到的文件就会各自解压到自己应当在的位置上。

对文件的调整,主要是替换Longhorn的ntldr,以及修改boot.ini,这个我们可以用命令行修改系统自身的ntldr为ntldr.bak,修改系统自身的boot.ini为boot.ini.bak,然后把Longhorn的ntldr和修改好的boot.ini复制到原系统ntldr和boot.ini的位置。当系统部署完毕后再把原始的ntldr和boot.ini替换回来,虽然替换回原有的不是必需的,但是个人认为,保持原系统的原始性肯定程度上有利于系统的稳定性。

相关软件的运行,这个主要是Sysprep,假如每次要为Sysprep设置相同的执行方式,那么Sysprep供应许多的运行参数,添加参数运行Sysprep,就免去了每次都要去点击封装选项的问题。

对系统的调整,主要是卸载驱动以及调整计算机电源管理和IDE掌握器。虽然这个可以使用自动化实现,但是个人认为这个手工还是比较保险。

3.2实现自动封装与部署

3.2.1文件的自动复制

建立如下名目,以D:ES文件夹为例:

D:ESSysprepcvtarea.exe

D:ESSysprep

D:ESSysprepSetupcl.exe

D:ESSysprepSysprep.exe

D:ESSysprepSysprep.inf

D:ESSysprepSetACL.exe

D:ESSysprepAutoSysprep.cmd

D:ESSysprepcmdline.reg

D:ESWINDOWSinfdtecthal.inf

D:ESWINDOWSsystem32

D:ESWINDOWSsystem32halaacpi.dll

D:ESWINDOWSsystem32halacpi.dll

D:ESWINDOWSsystem32halapic.dll

D:ESWINDOWSsystem32halmacpi.dll

D:ESWINDOWSsystem32halmps.dll

D:ESWINDOWSsystem32halstnd.dll

D:ESWINDOWSsystem32mscomctl.ocx

D:ESWINDOWSsystem32ntkrnlmp.exe

D:ESWINDOWSsystem32ntkrnlpa.exe

D:ESWINDOWSsystem32ntkrnlup.exe

D:ESWINDOWSsystem32ntkrpamp.exe

D:ESWINDOWSAllUsrRun.cmd

D:ESDrivers

D:ESbootL.ini

D:ESntldrL

说明:

1ES文件夹模拟C盘根名目,全部文件排布和此后要复制到C盘中的排布是一样的;

2Sysprep中的全部文件在第一章中介绍过,Sysprep文件夹将在系统部署最小化安装时自动删除,SetACL.exe是提升权限以修改注册表的工具,AutoSysprep.cmd是自动进行封装所用的批处理,cmdline.reg将在3.2.3中具体说明;

3inf和system32文件夹中的各文件在其次章中介绍过,用于Longhorn的自动HAL推断;

4AllUsrRun的用处后面具体介绍;

5bootL.ini是为HAL自动推断所写好的boot.ini文件,内容为:

[bootloader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS

[operatingsystems]

multi(0)disk(0)rdisk(0)partition(1)WINDOWS="MicrosoftWindowsXPProfessional"/fastdetect/detecthal

6ntldrL是Longhorn的系统引导文件,同样用于自动HAL推断。

7Drivers中放置串口磁盘和磁盘阵列驱动

文件打包:

选择最常用的压缩工具WinRAR来进行打包ES文件夹中的全部文件,设定默认解压缩路径为C:并且设置解压模式为“隐蔽启动对话框”和“掩盖全部文件”,这几个选项的设定可以保证文件不会复制到错误的位置。

3.2.2自动封装的实现

AutoSysprep.cmd的内容如下(以封装XP系统为例):

rem自动封装,静默模式、最小化、不重置激活大事、清空大事查看器日志、不重启计算机

start/waitc:sysprepsysprep.exe-quiet-mini-activated-reseal-noreboot

rem导入cmdline.reg键值(3.2.3中介绍)

start/waitregedit.exe/sc:Sysprepcmdline.reg

rem取消XP的ntldr权限,改名为ntldrXP,再恢复其权限

attribc:ntldr-h-s-r

renc:ntldrntldrxp

attribc:ntldrxphsr

rem取消Longhron的ntldrL的权限,改名为ntldr,再恢复其权限

attribc:ntldr1-h-s-r

renc:ntldr1ntldr

attribc:ntldrhsr

rem取消XP的boot.ini权限,改名为bootXP.ini,再恢复其权限

attribc:boot.ini-h-s-r

renc:boot.inibootxp.ini

attribc:bootxp.inihsr

rem取消Longhron的bootL.ini的权限,改名为boot.ini,再恢复其权限

attribc:boot1.ini-h-s-r

renc:boot1.iniboot.ini

attribc:boot.inihsr

rem进入Sysprep文件夹内

cd

cdsysprep

rem使用SetACL来取消有关源计算机HAL的注册表信息的权限,以便随后的修改

setaclMACHINESYSTEMControlSet001EnumACPI_HAL/registry/granteveryone/full

setaclMACHINESYSTEMControlSet001EnumRootACPI_HAL/registry/granteveryone/full

setaclMACHINESYSTEMControlSet002EnumACPI_HAL/registry/granteveryone/full

setaclMACHINESYSTEMControlSet002EnumRootACPI_HAL/registry/granteveryone/full

setaclMACHINESYSTEMControlSet003EnumACPI_HAL/registry/granteveryone/full

setaclMACHINESYSTEMControlSet003EnumRootACPI_HAL/registry/granteveryone/full

setaclMACHINESYSTEMCurrentControlSetEnumACPI_HAL/registry/granteveryone/full

setaclMACHINESYSTEMCurrentControlSetEnumRootACPI_HAL/registry/granteveryone/full

rem删除源计算机的HAL注册表信息

regdeleteHKEY_LOCAL_MACHINESYSTEMControlSet001EnumACPI_HAL/f

regdeleteHKEY_LOCAL_MACHINESYSTEMControlSet001EnumRootACPI_HAL/f

regdeleteHKEY_LOCAL_MACHINESYSTEMControlSet002EnumACPI_HAL/f

regdeleteHKEY_LOCAL_MACHINESYSTEMControlSet002EnumRootACPI_HAL/f

regdeleteHKEY_LOCAL_MACHINESYSTEMControlSet003EnumACPI_HAL/f

regdeleteHKEY_LOCAL_MACHINESYSTEMControlSet003EnumRootACPI_HAL/f

regdeleteHKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumACPI_HAL/f

regdeleteHKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumRootACPI_HAL/f

rem以下用于IntelCPUIntel主板的源计算机,Intel的这两组键值简单造成部署到非Intel硬件计算机中的蓝屏事故

rem使用SetACL来取消有关当前Intel主板的注册表信息的权限,以便随后的修改

setaclMACHINESYSTEMControlSet001ServicesIntelIde/registry/granteveryone/full

setaclMACHINESYSTEMControlSet002ServicesIntelIde/registry/granteveryone/full

setaclMACHINESYSTEMControlSet003ServicesIntelIde/registry/granteveryone/full

setaclMACHINESYSTEMCurrentControlSetServicesIntelIde/registry/granteveryone/full

rem使用SetACL来取消有关当前IntelCPU的注册表信息的权限,以便随后的修改

setaclMACHINESYSTEMControlSet001Servicesintelppm/registry/granteveryone/full

setaclMACHINESYSTEMControlSet002Servicesintelppm/registry/granteveryone/full

setaclMACHINESYSTEMControlSet003Servicesintelppm/registry/granteveryone/full

setaclMACHINESYSTEMCurrentControlSetServicesintelppm/registry/granteveryone/full

rem删除有关Intel主板的注册表信息

regdeleteMACHINESYSTEMControlSet001ServicesIntelIde/f

regdeleteMACHINESYSTEMControlSet002ServicesIntelIde/f

regdeleteMACHINESYSTEMControlSet003ServicesIntelIde/f

regdeleteMACHINESYSTEMCurrentControlSetServicesIntelIde/f

rem删除有关IntelCPU的注册表信息

regdeleteMACHINESYSTEMControlSet001Servicesintelppm/f

regdelet

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论