基于无盘工作站的多媒体教室搭建系统封装总结.docx
《基于无盘工作站的多媒体教室搭建系统封装总结.docx》由会员分享,可在线阅读,更多相关《基于无盘工作站的多媒体教室搭建系统封装总结.docx(32页珍藏版)》请在冰点文库上搜索。
![基于无盘工作站的多媒体教室搭建系统封装总结.docx](https://file1.bingdoc.com/fileroot1/2023-5/8/55f81042-0e0b-4ea1-8473-6b3796e8273d/55f81042-0e0b-4ea1-8473-6b3796e8273d1.gif)
基于无盘工作站的多媒体教室搭建系统封装总结
基于无盘工作站的多媒体
教室搭建
——系统封装总结
总结人:
电话:
目录
一.封装和部署简介3
1.封装和部署简介3
2.GHOST系统简介3
二.WinXP封装和制作映像4
1.系统安装4
2.封装系统4
三.WinXP驱动安装9
1.卸载系统自带的驱动9
2.系统部署自动安装驱动的实现10
四.WinXP自动化部署11
1.制作自动应答文件11
2.部署过程的五大接口25
五.WinXP安装镜像制作29
1.制作GHO镜像29
2.制作ISO安装镜像29
六.参考文献31
一.封装和部署简介
1.封装和部署简介
系统封装与部署技术是由微软官方提供的,是一种将源计算机中的Windows操作系统经过封装后,使用磁盘映像工具或文件映像工具制作成系统映像,再通过各种中间介质传输到一台或多台目标计算机上,并部署到目标计算机中的技术。
其中涉及三个概念:
1.系统封装:
先把系统的某些设置还原到初始状态,为以后的部署做准备。
这就像你把穿过的衣服折叠整齐放在一起,准备带这些行李外出。
2.系统映像和转移:
使用如GHOST,ImageX等工具把当前系统做成系统映像(后面会详细介绍),然后通过移动设备、网络等介质传送到目标计算机。
制作系统映像就像你把那些折叠好的衣服打包装进行李箱,转移就像你所乘坐的交通工具,目标计算机就是你的目的地了。
3.系统部署:
系统进入部署状态,适应新计算机的硬件环境、重新装载驱动、调整系统设置等,最后生成一个全新的计算机系统。
就像你到达目的后打开自己的行李拿出衣服等日用品,以备随时使用。
2.GHOST系统简介
讲到GHOST系统很多人会想到克隆系统、盗版系统等,其实封装和部署技术绝不是简单的克隆,更不是所谓的盗版系统。
克隆一般可以理解为把一个现有的计算机系统完整的备份下来,然后到另一台计算机还原,这里就像是一个文件在这压缩之后拷到另一台电脑解压,他并没有涉及到封装和部署。
至于是不是盗版,这个只能说有些GHOST系统是盗版,但封装和部署技术绝不是盗版,他是微软官方提供的,系统封装与部署的核心操作都是由微软官方软件来执行的,微软总不会教你盗版吧?
关于得到的系统的稳定性也是不容置疑的,绝对比克隆系统的稳定性要高很多,因为他是在新的环境下的重新部署,重新调整,并不是完全的拷贝粘贴。
二.WinXP封装和制作映像
1.系统安装
这里一定要使用微软官方原版系统安装,安装完成后尽量不要更改系统的初始设置,为封装做准备。
安装时一般装到第一个分区,采用NTFS格式,至于怎么装系统,这里就不细讲了哈。
提示:
(1)封装好的系统在新环境部署时,一般部署到活动分区(一般第一分区设为活动分区),否则不能正常启动,但也不是绝对不能启动,可以用Window引导修复工具修复一下即可。
至于不能启动的原因,我们可以从XP的启动过程来看:
计算机启动-->BIOS和CMOS管理-->找到硬盘上的活动分区-->加载活动分区中的NTLDR-->NTLDR通过BOOT.INI寻找系统分区-->启动系统分区中的XP-->XP启动完毕。
(2)安装好系统之后可以打上最新的补丁,还可以安装一些常用软件,这样封装出来的系统部署之后就不需要从新安装补丁和装这些软件了,当然这些也可以不做。
(3)进行一些必要的设置
a.关闭系统还原,关闭自定义通知,关闭远程连接,关闭共享和休眠
b.如果安装了输入法要在“区域和语言选项”的“高级”中应用于默认账户
c.关闭WindowsUpdate设备驱动程序搜索,忽略设备驱动程序的代码签名
2.封装系统
封装系统的工具网上可以说有N款之多,每个工具的功能也不太一样,但他们的实质都是一样,只是把一些需要手动完成的东西做成了自动完成,这样虽然使用简单,但不利于我们深入了解封装和部署技术,所以这里我们使用Window系统自带的封装工具进行封装。
(1)打开原版镜像,以此打开SUPPORT——TOOLS文件夹,里面有一个DEPLOY.CAB压缩文件,解压到一个文件夹,里面有一些工具,上文提到的deploy.chm也在这里面。
图2-2-1
其他一些常用的工具:
1.sysprep.exe、setupcl.exe和factory.exe,它们是相互依存的,且大多数时候我们用不到factory.exe(工厂模式),只需要sysprep.exe和setupcl.exe就可以了,它们是主封装程序
2.setupmgr.exe,用它来生成一个无人值守文件,用来自动应答部署过程中的各种人工选择或设定的选项,后面会讲到这个工具的使用。
(2)在C盘创建Sysprep文件夹,这个是必须的,且这个文件夹会在系统部署结束后自动化的删除,无需人为操作,十分方便。
将sysprep.exe、setupcl.exe复制到C:
\Sysprep,如果你对工厂模式有兴趣请同时将factory.exe也复制过去,但大多数时候我们只需要sysprep.exe和setupcl.exe就足够了。
图2-2-2
(3)运行C:
\Sysprep\sysprep.exe,弹出下图:
点击确定,进入Sysprepv2.0的主界面
图2-2-3
图2-2-4
(4)其中“工厂”模式和“审核”模式都不是我们需要的,我们要为最终用户提供可用的系统映像,所以只需要点击“重新封装”即可,但不着急,我们来看一下下面的几个选项:
1.不重制激活的宽限期 XP默认有30天的激活宽限期,每次封装可以重置这个激活宽限期,但每个系统只可反复封装3次,即3次重置宽限期。
如果选中这个选项就不会重置宽限期了。
2.使用最小化安装 启动一个最简的系统安装模式部署系统。
不使用的话可能会要求用户插入原版光盘以取得部分文件,或可能出现直接报错的情况。
建议使用最小化安装模式。
3.不重新产生安全标识符 安全标识符(SID)是用于唯一标识计算机的标识符,如果是对安全性要求较高的网络或需要加入“域”,建议重新生成SID。
而如果是一般的用户,可以点选这个选项去掉重新生成SID的过程。
注意,生成SID会增加额外的系统部署时间。
4.检测非即插即用硬件 默认只检查即插即用硬件,检测非即插即用硬件会进一步识别目标计算机硬件设备,但会占用额外的系统部署时间。
5.关机模式 如果封装完成后还要处理一下个别设置,选择“退出“;如果封装完成后立即制作系统映像,选择“重启”;如果封装完成后要稍等一段时间后才开始制作系统映像,选择“关机”。
上述设置随您的需要而定,没有定式的规则。
一切选择好后,单击“重新封装”按钮,封装就开始了。
图2-2-5
一般封装的过程很短暂,很快就完成了,之后就可以重启系统直接进入GHOST制作镜像了。
但这里先别急着做镜像,后面会详细讲到。
如果这里只是重启系统,那么启动之后你就会看到熟悉的安装界面咯,这里就是部署的过程,只是这里还没有加入任何其他元素,后续的讲解会让这个过程更加“迷人“^_^。
三.WinXP驱动安装
驱动程序是沟通操作系统和硬件的重要桥梁,通过驱动程序可以让操作系统识别更多的硬件,并使硬件发挥更好的性能。
然而封装系统时我们必须要处理一下源计算机的硬件驱动,毕竟你无法确定目标计算机是怎么样的硬件环境。
处理好源计算机系统中的硬件驱动,可以拓展系统可部署的范围,减少因系统残留源计算机硬件和驱动信息造成的各种不良影响。
但是驱动的处理也是一件比较麻烦的事情,这里就用最简单易懂的方式简单处理一下驱动,如果读者想学习更多更高深的东西,请认真阅读《封装志》或其他一些专业书籍,这里不做过多讲解。
1.卸载系统自带的驱动
打开“设备管理器”,展开所有项目逐一卸载就可以了,但是请注意一下几条:
(1)关于“IDEATA/ATAPI控制器” 曾经盛传需要将“IDEATA/ATAPI控制器”下凡是“某某控制器”一律改为“标准双通道PCIIDE控制器”,据说可以加强兼容性。
但经过长时间的观察与实践,结合相关理论后,发现这个说法存在一定的谬误。
需要为一个硬件安装什么驱动,是由硬件ID(HWID)来决定的。
HWID类似人的身份证一样,理论上是一种硬件的唯一编号,而我们再设备管理器中所看到的硬件设备名,都是通过驱动INF中HWID与其名称对应关系来决定的。
就像我们有同名但身份证号不同的人一样,存在着都叫做“标准双通道PCIIDE控制器”但HWID不同的硬件,且不在少数。
所以即使源计算机中改为“标准双通道PCIIDE控制器”,但如果只是和目标计算机中的控制器同名不同HWID,那么就是一种徒劳,且这样会让我们残留“IDEATA/ATAPI控制器”的驱动,可能会对目标计算机的部署造成影响。
那么我们对“IDEATA/ATAPI控制器”要做的是卸载,而不是修改!
对“IDEATA/ATAPI控制器”执行卸载操作已经经过了实践验证,未发现问题。
(2)关于“计算机”(HAL,或俗称“电源管理”、“电源”) 曾经盛传将HAL改为StandardPC可以提高兼容性,这是仅次于
(1)的一个谬误。
HAL改为StandardPC倒是还有一点根据,StandardPC是具有最高兼容性的HAL,就像一个人虽然做事做不好,但至少不会出错。
使用StandardPC如若出现HAL不匹配问题至多是计算机无法正常关机,计算机电源管理能力下降而已。
所以我们针对WinXP的HAL完全可以直接卸载。
(3)哪些驱动不需要卸载?
有些驱动经过长期实践发现是无需卸载的,如:
PS2键盘、PS2鼠标、系统设备;
(4)还有哪些需要特别注意?
1.某些驱动的卸载是有顺序的,建议按照设别管理器从下到上的顺序执行卸载,某些驱动的卸载可能触发其他驱动的安装。
2.Windows\Inf下的Oem*.inf是已安装驱动的INF文件,建议卸载驱动前删除它们,避免个别驱动在被触发搜寻驱动时使用Oem*.inf中的信息执行自动安装。
系统部署安装驱动时会自动再生成,无需担心。
3.Windows\Inf下的*.pnf,是驱动INF的预编译文件,建议全部删除,系统部署时会自动再生成,无需担心。
4.注意清理一下HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network下的{4D36E972-E325-11CE-BFC1-08002BE10318}和{6BDD1FC5-810F-11D0-BEC7-08002BE2092F}键,即删除后重建,否则部署后可能出现“本地连接2”。
5.将HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\intelppm键的Start键值改为3,即将此服务改为手动。
IntelPPM驱动是用于IntelCPU的,如果使用IntelCPU的计算机作为源计算机,此服务即会启动,而将此系统封装后部署于AMDCPU的计算机就会造成蓝屏宕机问题。
而如果使用AMDCPU的计算机作为源计算机,WinXP下将没有此服务。
6.尽可能使用硬件较少的计算机作为源计算机,这样可以最大程度的减少被安装驱动的数量。
如使用实机,建议在BIOS里关掉不必要的项目;如果使用虚拟机,则尽最大可能所需硬件的数量。
建议使用VMware虚拟机,只留下必须硬件,并在BIOS里关掉无用的硬件。
了解了上述注意事项后,现在就可以开始着手源计算机驱动程序的卸载了。
2.系统部署自动安装驱动的实现
关于系统封装和自动安装驱动的实现需要用到部署前的接口来实现,也就是在系统安装前先调用万能驱动包安装程序,扫描硬件并自动安装驱动(建议使用自由天空的万能驱动包),安装完成之后才是系统的部署和其他一些工作。
这里的接口会在下面的自动化部署里讲到,这里暂时不讲。
四.WinXP自动化部署
1.制作自动应答文件
上文已经提到了Deploy工具包,这个工具包中除了系统封装工具以外还有其他的几个软件,现在我们就使用“setupmgr.exe”来创建无人值守自动应答文件。
运行setupmgr.exe,弹出如图:
图4-1-1
单击“下一步”,会询问是“创建新文件”还是“修改现有的文件”,我们这里选择“创建新文件”:
图4-1-2
单击“下一步”,这里会询问创建哪一种自动应答文件,有三种类型:
图4-1-3
“无人参与安装”,这个一般用于实现安装版WindowsXP的无人值守安装,自动应答文件一般名为Winnt.sif,放置于WindowsXP安装光盘i386文件夹下。
“Sysprep安装”,这个即我们的封装与部署方式安装,自动应答文件一般名为Sysprep.inf,放置于C:
\Sysprep文件夹下。
Sysprep.inf一般来说是Winnt.sif的一个子集,不是所有Winnt.sif中可用的项目都在Sysprep.inf中可用。
“远程安装服务”,用的很少,这里我们不讨论。
我们既然是要为系统部署过程创建自动应答文件,那么我们选择“Sysprep安装”,然后单击“下一步”:
图4-1-4
setupmgr.exe可以创建多种系统的自动应答文件,我们要封装的是WindowsXP专业版,所以选择“WindowsXPProfessional”,单击“下一步”进入下一个界面:
图4-1-5
这里要选择是否完全自动,否则会提示最终用户点选是否同意Microsoft的许可协议,我们选择“是,完全自动安装”,单击“下一步”,完成初始设定,进入setupmgr.exe的主设置流程。
名称和单位
图4-1-6
显示设置
图4-1-7
这里设置的是系统部署完毕,进入系统后显示器的颜色、分辨率和刷新率,除非将要部署的所有计算机的显示设置均一致,否则建议保持系统默认。
如果使用的颜色、分辨率和刷新率显示器或显示适配器不支持,可能会出现黑屏的情况。
时区
图4-1-8
选择一个与系统要部署的地区相符的时区。
产品密钥
图4-1-9
自动输入密钥。
如果所输入密钥不适合要部署的系统,部署过程中仍会提示用户重新输入。
这里提供一个通用的序列号:
MRX3F-47B9T-2487J-KWKMF-RPWBY
XX也能找到很多哈。
网络设置
计算机名
图4-1-10
可以自动产生计算机名或指定一个计算机名。
如果系统将要部署到同局域网或同域内的计算机,建议使用自动生成计算机名,这样系统将在部署时自动生成一个随机的计算机名,以保证不会造成网内计算机名冲突。
管理员密码
图4-1-11
设置计算机管理员(Administrator)的密码。
默认情况下密码在自动应答文件中是明文的,可以选中“在自动应答文件中加密Administrator密码”提高安全性。
可设置系统在目标计算机中启动时自动作为计算机管理员登录的次数,以方便管理员来调试系统。
但如果系统只有Administrator账户,那么就只能使用此账户登录。
网络组件
图4-1-12
有典型设置和自定义设置两个可选项。
一般设置为“典型设置”,如需添加其他网络协议、客户端等,可以选择“自定义设置”。
工作组或域
图4-1-13
设置要加入的工作组或域的相关信息。
一般用户设置加入工作组即可。
高级设置
电话服务
图4-1-14
早就不是电话拨号的年代了,这个选项可以忽略。
区域设置
图4-1-15
设置区域值。
一般来说使用“正在安装的Windows版本的默认区域设置”即可,当然也可以指定一个区域值。
语言
图4-1-16
添加额外的语言集。
但是添加语言不代表计算机安装了对应的字体,如果浏览这些语言的文件时,可能会提示用户下载相应的语言组件。
一般只需保留系统默认的语言集即可。
安装打印机
图4-1-17
如果是在公司内部部署WindowsXP,这个功能会很有用。
输入网络打印机的名称,单击“添加”按钮,如果还有其他网络打印机,继续按此方法添加。
所有网络打印机添加完成后会生成一份列表,当系统部署完成用户首次登录时,会自动安装这些网络打印机。
当然,你得保证用户有这个权限。
运行一次
图4-1-18
设置在用户首次登陆时要运行的程序。
输入程序路径后,单击“添加”按钮,如还有程序,则逐个按此方法添加。
如图4-18中我添加了首次登录运行“C:
\Test\Test_A.exe”程序的命令。
通过“运行一次”可添加一些程序运行,如优化调整类的程序等,可减少IT工作人员的重复性工作。
如无需要调用的程序,亦可不填写任何内容。
Test_A.exe是一个运行时显示其程序名的用于测试的小程序,无实际功能,仅用于测试程序调用的有效性。
添加“C:
\Test\Test_A.exe”到“运行一次”后,系统部署完成用户首次登录时,如下图:
图4-1-19
附加命令
图4-1-20
附加命令是指在部署即将结束前、注册组件时要调用的程序。
添加方法与“运行一次”相同,都是写入要运行的程序,而后单击“添加”按钮即可。
如图4-19中我添加了注册组件时运行“C:
\Test\Test_B.exe”程序的命令。
注册组件时一般调用必须在首次登陆前完成的任务,如多核心CPU补丁、DllCache恢复、磁盘控制器驱动清理等。
Test_B.exe是一个运行时显示其程序名的用于测试的小程序,无实际功能,仅用于测试程序调用的有效性。
添加“C:
\Test\Test_B.exe”到“附加命令”后,系统部署到注册组件时,如下图:
图4-1-21
标识字符串
图4-1-22
设置一个添加到系统注册表内的值,用以标识部署的是哪个系统。
一般而言我们有很多方法来标识一个系统的特征,所以这里可用可不用,看个人喜好了。
至此,系统部署自动应答文件就制作完成了。
图4-1-23
将Sysprep.inf保存到一个其他位置,以备以后使用。
此时不管你吧Sysprep.inf保存在什么位置,这时C盘下已经生成了sysprep文件夹,并已经将sysprep.inf保存在此,且已经创建了一个名为i386的文件夹。
现在我们要把i386文件夹删除(包括里面的文件一起删除,原因可以参考《封装志》),然后打开sysprep.inf,删除删除Unattended的InstallFilesPath段和无用的SetupMgr段信息和“;SetupMgrTag”,删除后的sysprep.inf内容大致为:
[Unattended]
OemSkipEula=Yes
[GuiUnattended]
AdminPassword=*
EncryptedAdminPassword=NO
OEMSkipRegional=1
TimeZone=210
OemSkipWelcome=1
[UserData]
ProductKey=MRX3F-47B9T-2487J-KWKMF-RPWBY
FullName="微软用户"
OrgName="微软用户"
ComputerName=*
[GuiRunOnce]
Command0=C:
\Test\Test_A.exe
[Identification]
JoinWorkgroup=WORKGROUP
[Networking]
InstallDefaultComponents=Yes
下面我们再将sysprep.exe和setupcl.exe复制到C:
\Sysprep内,运行sysprep.exe执行系统封装就行了!
2.部署过程的五大接口
前面在制作自动应答文件时,我们已经提供了几个运行外部程序的接口,但遗憾的是最早的外部程序调用接口也要在系统部署即将结束时,且都在系统部署程序搜索与安装驱动后。
看到这里相信很多爱好者会产生疑问,因为在安装其他GHOST系统时会发现他们都是先扫描硬件安装驱动,然后才是系统开始部署,在部署结束之前可能还会解压缩dll文件或者还有一些解压缩一些程序,而且在首次进入系统之后还会有一些程序运行,比如调整分辨率,是否创建宽带连接等等。
而这些正是这里我们所要研究的——部署过程的五大接口。
这里只讲解了五大接口的实现,没有讲具体的每个接口所实现的功能,读者可以根据自己的需求自己定义。
在系统封装完毕后,通过对注册表项目的观察,我们发现了一系列的注册表键值的变化,根据这些变化我们总结了一些规律:
(1)WinXP的系统部署是由HKEY_LOCAL_MACHINE\SYSTEM\Setup键下Cmdline键值规定使用哪个程序执行系统部署的。
(2)HKEY_LOCAL_MACHINE\SYSTEM\Setup键下Cmdline键值是以C:
\Windows\System32为相对目录的。
即Cmdline键值所规定程序的上层目录为C:
\Windows\System32。
(3)WinXP一般情况下使用C:
\Windows\System32\setup.exe以“-newsetup-mini”参数执行系统部署。
那么我们可以自己写一个小程序,名为“Deploy_WinXP.exe”,将Deploy_WinXP.exe复制到C:
\Windows\System32下。
在封装结束后,改写Cmdline键值为“Deploy_WinXP.exe”,这样部署过程就会调用我们的Deploy_WinXP.exe来执行。
这时我们就可以对我们的Deploy_WinXP.exe下手了,我们可以让他先调用部署前要调用的外部程序(可以不止调用一个程序哦,包括后面的调用,都可以调用多个程序,但这里一般只调用驱动安装的程序,后面的调用可根据个人需求适量添加),再调用系统部署程序(WinXP的Setup.exe),最后调用部署后要调用的外部程序。
这样就成功实现了系统部署前与系统部署后外部程序调用接口,且不影响系统部署过程!
这样,算上之前讲的几个基本外部程序调用接口,我们共有了5个接口:
系统部署开始前调用接口、系统部署即将结束时调用接口、系统部署结束后调用接口、首次登录系统调用接口、进入桌面调用接口。
那么下面就让我们来看一下五大接口的具体实现:
首先做好我们的准备工作:
(1)准备好5个接口测试程序:
Test_1.exe:
部署前调用;
Test_2.exe:
部署即将结束时调用
Test_3.exe:
部署后调用;
Test_4.exe:
首次登录调用;
Test_5.exe:
进桌面调用。
全部放置于一个名为Test的文件夹中,然后复制Test文件夹复制到C:
\Test,目录。
(2)用AU3写一个部署接管程序,命名为Deploy_WinXP.au3,编译后名为Deploy_WinXP.exe。
Deploy_WinXP.au3的内容如下(%SystemDrive%表示系统根目录):
_Deploy_WinXP_Main()
Exit
Func_Deploy_WinXP_Main()
;通过读取系统变量获取系统盘盘符
Local$SystemDrive=EnvGet("SystemDrive")
;部署前调用Test_1.exe
RunWait($SystemDrive&"\Test\Test_1.exe")
;调用Setup.exe完成系统部署
RunWait($SystemDrive&"\Windows\System32\Setup.exe-newsetup-mini")
;部署后调用Test_3.exe
RunWait($SystemDrive&"\Test\Test_3.