全手动封装教程+SRS9.80102 文本教程(适合初学)

很多新手常常说,看了n多教程却没有一个好的思路,其实这个东西只要你按班就部的学,顺序渐进的想,在把过程的一些逻辑关系搞清楚,觉对可以学懂。 

封装系统技术经历了几年的折磨才有至今的如此完善,之前已经有不少前辈写过类似的教程,今天我(莫回首)在次写系统封装教程,教程以手动封装系统附加s&r&s98.0102电源判断工具教程. 

安装好微软的xp vol c盘格式按个人喜欢。 

使用优化工具对系统进行适当的优化 

安装常用软件,例如winrar , office ,qq,等软件。对系统增加第三方功能,等等,增强系统。 

下面是对系统进行精简,减肥,如果你不在忽大小,则可以忽略过去。 

1、关闭系统还原打开控制面板,双击“系统”。在系统属性面板里选择“系统还原”,选中“在所有驱动器上关闭系统还原”,然后点“确定”。WindowsXP的系统还原功能占用了很大的磁盘空间,所以必须关闭以减少系统体积。关闭系统还原后,系统分区根目录下的System Volume Information目录里的内容就会立即被清空,因此你也可以在关闭系统还原后再打开此功能。2、关闭系统休眠打开控制面板,双击“电源选项”,选择“休眠”,把“启用休眠”前的勾去掉,然后点“确定”。这时在系统分区C盘根目录下的页面文件hiberfil.sys就会自动删除。WindowsXP的休眠功能和系统还原一样,都占用了很大的磁盘空间,休眠功能占用系统分区的大小和物理内存的空间相当。 

3、转移虚拟内存页面文件打开控制面板,双击“系统”,在系统属性面板里选择“高级”,然后点击性能框里的“设置”,选择“高级”,点击虚拟内存框里的“更改”,选中当前系统分区C,再选“自定义大小”,将初始大小和最大值设为“0”,然后选择需存放页面文件的分区(如D:等),然后点击“设置”,“确定”。虚拟内存页面文件Pagefile.sys一般位于系统分区的根目录下,其默认设置大小是物理内存的1.5倍,是个难以删除的顽固隐藏文件,因此最好将它转移到系统分区以外的其它分区去,以此减小系统分区的体积。如使用v11.0以上版本的Ghost进行克隆系统的话,这一项其实可以不做,因为使用v11.0以上版本的Ghost在制作镜像文件时能够自动删除虚拟内存页面文件pagefile.sys。 

4、清理磁盘,删除系统和IE临时文件※运行磁盘清理程序删除系统临时文件开始—程序—附件—系统工具—磁盘清理—选择驱动器—确定—磁盘清理—选择删除文件—确定。※删除IE临时文件和历史记录打开IE—工具—internet选项—常规—删除Cookies(I)—确定—删除文件(F)—确定—删除历史记(H)—确定—确定。※删除最近使用的文档记录开始—设置—任务栏和[开始]菜单(T)—[开始]菜单—[开始]菜单(S)—自定义(C)—高级—清除列表(C)—确定。 

5、(dll文件)清除DllCache目录文件后可减少磁盘占用空间约300M左右,这个直接删了,备份没意义了,有软件可以直接在注册组件时恢复。 



一、控制Documents and Settings文件夹在24M左右 

1、C:\\Documents and Settings\\Administrator\\Application Data\\ACD Systems下的文件夹和文件均可删除。 

2、All Users帐户文件夹控制在9M左右: 

C:\\Documents and Settings\\All Users\\Application Data\\Storm\\Update文件夹下的所有文件删除,这是暴风影音安装时所产生的临时文件。 

二、控制C:\\Program Files文件夹在350M左右,视安装软件大小多少而定。 

1、C:\\Program Files\\Microsoft Office文件夹控制在80M左右,建议使用嬴政天下的OFFICE2003五合一简体中文企业版安装,选择自定义安装。 

+ Office 2003的安装特别说明一下具体的精简列表: 

Office 2003安装版本推荐嬴政天下的OFFICE2003五合一简体中文企业版,因为本身已精简一部分,而且稳定性不错。 

开始安装,首先不要选择“典型安装”,选择“自定义安装”,接着下一步 

一共有5个组件,去掉Outlook和Access两个组件,并选择下面的“选择应用程序的高级自定义”。 

接着下一步,安装项目里找到“Office 工具”,不安装以下项目: 

X 文档更性工具 

X 语言设置工具 

X Microsoft Office 活页夹支持 

X Microsoft Office Document Imaging 

X Microsoft Query 

X 用户设置保存向导 

X 智能标记插件 



安装项目里找到“Office 共享功能”,不安装以下项目: 

X 转换器和过滤器 

X 快捷方式-新建和打开 Office文档 

X 校对工具 

X 主题 

X Visual Basic for Applications 



以上就是精简项目,最后选择安装完成即可。总共占据容量大概148M左右,实际C:\\Program Files下的Microsoft Office文件夹大约占80M左右的容量。 



这里还牵扯到一个Office 2003卸载的问题,我发现在安装完后可以卸载,但在封装以后就提示找不到临时文件夹下的xc_PRO11.msi文件,因为临时文件被清空了,看来关键还在它。所以在封装以前拷贝一个xc_PRO11.msi(从安装程序解压提取)到C:\\WINDOWS\\Installer下,然后右键单击xc_PRO11.msi选择安装或修复,至到出现安装、修复、卸载的界面,然后取消即可,现在封装就没有问题了,封装后也可以卸载,但这个文件不能删除。 

2、C:\\Program Files\\MSN Gaming Zone文件夹可以整体删除,为微软牌类网上游戏,但保留蜘蛛纸牌等本地游戏。 

3、C:\\Program Files\\Movie Maker文件夹可选择性删除。 

三、控制C:\\WINDOWS文件夹在1.20G左右,其中包含封装时会减肥的DLLCACHE文件,大约400M左右。 



1、如果存在C:\\windows\\assembly文件夹,可以整体删除。 

2、C:\\windows\\Driver Cache\\i386下的ntkrnlmp.exe、ntkrnlpa.exe、ntkrpamp.exe、ntoskrnl.exe四个文件均可删除。 

3、C:\\windows\\Help下保留netcfg.gid、netcfg.hlp、winwb86.cnt、winwb86.hlp四个文件删除,保留Tours文件夹,但将其每个文件夹下的文件删除。 

4、C:\\windows\\ime\\chtime\\Applets下的所有文件删除。 

5、C:\\windows\\ime\\imjp8_1文件夹下的文件全部删除,保留其下的三个文件夹,但将三个文件夹下的文件都删除,其实就是删除日文输入法。 

6、C:\\windows\\ime\\imkr6_1文件夹下的文件全部删除,保留其下的三个文件夹,但将三个文件夹下的文件都删除,其实就是删除韩文输入法。 

7、C:\\windows\\inf文件夹下的所有.PNF文件均可删除,但发现重启后又会生成,建议在封装后删除。 

8、C:\\windows\\Installer文件夹下除了一个或两个一长串文件夹保留外,其余文件可以删除。 

9、C:\\windows\\java子文件夹下的文件均可删除。 

10、C:\\windows\\pchealth\\helpctr\\batch下的所有文件删除; 

C:\\windows\\pchealth\\helpctr\\binaries下的hscsp_w3.cab和pchdt_w3.cab两个压缩包删除; 

C:\\windows\\pchealth\\helpctr\\Database文件夹下的所有文件删除 

C:\\windows\\pchealth\\helpctr\\Indices文件夹下的所有文件删除 

C:\\windows\\pchealth\\helpctr\\PackageStore文件夹下的CAB压缩包文件均可删除 

C:\\windows\\pchealth\\helpctr\\System文件夹下的所有文件和文件夹均可删除 

C:\\windows\\pchealth\\helpctr\\Vendors文件夹下的所有文件均可删除。 

11、C:\\windows\\Prefetch文件夹下的所有文件均可删除。 

12、C:\\windows\\repair文件夹下的所有文件均可删除。 

13、C:\\windows\\SoftwareDistribution\\Download文件夹下的所有文件夹删除。 

14、C:\\windows\\srchasst文件夹下的msgr3en.dll、nls302en.lex文件删除; 

C:\\windows\\srchasst\\chars文件夹下的所有文件删除。 

15、C:\\windows\\Temp的所有文件删除。 

16、C:\\WINDOWS\\system32\\CatRoot2下的tmp.ed0文件删除。 

17、C:\\WINDOWS\\system32\\oobe下,保留oobeinfo.ini文件,并打开将其内容清空后保存,其他文件和文件夹均可删除。 

18、C:\\WINDOWS\\system32\\spool\\drivers\\w32x86\\3下的所有文件。 



1、卸载硬件驱动 

(1)卸载网络适配器。(2)卸载通用串行总线控制器。(3)卸载声音、视频游戏控制器。(4)卸载监视器。(5)卸载显示卡( 卸载显卡是为了防止Ghost到别的机上时出现蓝屏现象)。卸载硬件驱动时如系统提示要重新启动,则选择“否”不启动。注:我们先卸载和更改里面的驱动:注意是有顺序的!!先卸载网络适配器,和通用串行总线控制器,和声音,视频游戏控制器,监视器,显示卡(出现按显卡卸载后,还在是很正常的,不是你操作问题),卸载时按右键,点卸载就行了。系统提示你要重新启动,都按否,不启动!!(卸载显卡是为了防止GHOST到别的机上可能会出现的蓝屏现象)一般情况下是卸载到没有可卸载删除的硬件。2、(关键)更改计算机电源管理模式 Advanced Configuration Power Interface(ACPI) 为 Standard PC打开设备管理器,右键点击“计算机”下的“Advanced Configuration Power Interface(ACPI)”,选择“更改驱动程序”,在弹出的“硬件更新向导”对话框中选择“从列表或指定位置安装(高级)”,点击下一步,再选择“不要搜索,我要自己选择要安装的驱动程序”,再点击下一步,选中“Standard PC”,再点击下一步,硬件管理器会自动安装Standard PC的驱动,之后电脑会提示重新启动,则选择“否”不启动,完成OK。更改说明:若新机与母机不是同类型的ACPI,则你新克隆的机器就无法实现电脑的软关机或出现系统崩溃,因此必须更改为兼容的Standard PC模式。一般比较老的电脑只有Standard PC选项,而现在大多数的电脑都是Advanced Configuration Power Interface(ACPI),2003年后新出的电脑则为 acpi uniprocessor pc。3、(关键)更改IDE ATA/ATAPI控制器为“标准双通道 PCI IDE 控制器”打开设备管理器,右键点击“IDE ATA/ATAPI控制器”下的,例如“Intel(r)82801BA Bus Master IDE Controller”(注:不同的主板其显示会不同),选择“更改驱动程序”,在弹出的“硬件更新向导”对话框中选择“从列表或指定位置安装(高级)”,点击下一步,再选择“不要搜索,我要自己选择要安装的驱动程序”,再点击下一步,选中“标准双通道 PCI IDE 控制器”,再点击下一步,硬件管理器会自动安装标准双通道 PCI IDE 控制器的驱动,之后电脑会提示你重新启动,则选择“否”不启动,完成OK。更改说明:这一步为主要关键步骤,若不做,则Ghost到别的机器上时就会造成系统无法启动的问题,因此为了适应各种不同的主板,必须将 IDE 控制器改成“标准的双通道 PCI IDE控制器”。(其实,更改ide现在我觉得已经没意义了!必竟磁盘控制器驱动已经那么完善了!可以把他当普通驱动卸载掉了!不相信的朋友试试!当然这个做法只能在你导入大量的磁盘控制器驱动时才执行!据体做法下面我将做详细说明,不理解“磁盘控制器驱动”的请阅读我所写的《“srs驱动”初级解说》) 

二、部署与封装。 

为了方便管理员把系统部署到组织中多台计算机,微软提供了,部署工具deploy.cab,这个工具包位于xp原版系统的,support\\tools目录下,解开此包后可得到数个文件,而我们只需要其中的Sysprep.exe,setupcl.exe,factory.exe,setupmgr.exe,然后在c盘根目录下建立一个Sysprep文件夹,把上述的文件复制到'sysprep'文件夹里。 

setupmgr.exe这个用于创建自动应答语'sysprep.inf',其中包括可修改的区域,组织,分辨率等,是为了让部署恢复时更加自动,当然不管你用什么方法完成'sysprep.inf',然后把他放在C:\\sysprep目录下,那么在部署的时候,系统会根据'sysprep.inf'的内容完成原来需要手动来操作的步骤! 

接下来是我们以后玩封装系统都要接触的,'sysprep.exe'当我们运行他,会看到一个简单的界面里,有着3种模式:'工厂'审核'重新封装',其中审核模式是在工厂模式下测试安装时使用的。这不是我们常使用的。而'重新封装'才是我们用户最常用的。在看看几个可选可不选的, 

第二项“使用最小化安装”也就是常说的mini,无残留驱动安装项正是我们需要的,因此必须要选上。第一项“不重置激活的宽限期”,而我们所用的是免激活版,因此这项选与不选无所谓(不过还是建议勾选上)。 

第三项“不重新产生安全标识符” 

安全标示符(SID)是每台计算机独一无二的标示,那么系统会在部署的时候生成一个SID,如果选中了此项则与源计算机的一样,计算机的域很重要,如果要让计算机加入域就不要选中此项,当然这个过程也要暂用一定的时间。 

第四项“检测非即插即用硬件” 

这个如果选中了,那么在部署的时候会检测非即插即用硬件,也就是说系统默认的是检测即插即用硬件,当然这也要暂用一定时间 

。*关机模式可以根据需要选择 

建议选择“退出”其他的不用我多说了吧。 

然后我们选择“重新封装”…好了,自动退出sysprep.exe。然后在设置你所需要的操作,然后重起计算机,用ghost磁盘映像备份!也就是我们常用的ghost 11.0,兴奋吧,简单的封装系统就这样完成了。 

以下请务必认真阅读,有的人曾在此成为学过一段时间封装系统的人。 

封装系统的进阶,也就是突破hal限制,Srs限制,调式驱动的完成以及部署注册组件运行的程序和首次桌面运行的程序。



1.突破HAL限制(本步骤必须在执行sysprep.exe封装后才操作的,否则会蓝屏等问题。) 

HAL限制,被微软所限制,而突破方法也是来自微软的方法,正所谓,羊毛出自羊身上,此方法有一定的权威性和稳定性。被部署的目标计算机的硬件抽象层(hal)必需与源计算机的相同,否则计算机会不稳定或者蓝屏死机等问题。 

首先我们在任意xp版本系统中的sp3.cab提取以下文件(这个文件好像位于i386里,如果是xp sp2则是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\"然后将这些文件拷贝到windows\\system32 并覆盖已存在的!并将dtecthal.inf复制到windows\\inf下,(dtecthal.inf这个文件可以在别人封装好的ghost里提取)。接下来先复制一份c:\\NTLDR存到其他盘下,呆会我们会用到他,要去掉系统隐藏属性才可见。(切记:在以下所有操作做完后,在复制覆盖回原C盘下原有的ntldr)去掉c盘下的boot.ini的只读属性,并将其打开,添加/detechal 

[Operating Systems] 

multi(0)disk(0)rdisk(0)partition(1)\\WINDOWS=\"Microsoft Windows XP Professional\" /noexecute=optin /fastdetect /detechal 

然后保存修改回属性。 

打开注册表,删除以下键值,需要添加权限,对Acpi_HAL右键-权限-Everyone的权限 “完全控制”勾上-确定退出。这样就可以删除了 

HKEY_LOCHL_MACHINE\\SYSTEM\\Controlset001\\Enum\\Acpi_HAL 

HKEY_LOCHL_MACHINE\\SYSTEM\\Controlset001\\Enum\\Root\\Acpi_HAL 

HKEY_LOCHL_MACHINE\\SYSTEM\\Controlset002\\Enum\\Acpi_HAL 

HKEY_LOCHL_MACHINE\\SYSTEM\\Controlset002\\Enum\\Root\\Acpi_HAL 

HKEY_LOCHL_MACHINE\\SYSTEM\\Controlset003\\Enum\\Acpi_HAL 

HKEY_LOCHL_MACHINE\\SYSTEM\\Controlset003\\Enum\\Root\\Acpi_HAL 

HKEY_LOCHL_MACHINE\\SYSTEM\\Currentcontrolset\\Enum\\Acpi_HAL 

HKEY_LOCHL_MACHINE\\SYSTEM\\Currentcontrolset\\Enum\\Root\\Acpi_HAL 

完成上述步骤,就能解决,目标计算机必须与源计算机的hal相同。 
  
1.1设置Longhorn的ntldr 电源判断文件。 
去掉系统隐藏属性,将c:\  下原来的ntldr 文件改名成为ntldr_XP,然后将我们准备好的ntldr文件复制要c:\ 下保留。如果没有这个文件请到别人的.gho提取。这个步骤必须做。不做这个步骤想折磨自己的就试试吧。 

2.突破Srs驱动限制。(微软方法,本步骤必须在执行SYSPREP.EXE前操作) 



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

http://www.driverpacks.net/DriverPacks/download.php?pag=m 

2>解压驱动到c:\\drivers 。 

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

InstallFilesPath=C:\\sysprep\\i386 

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

例如: 

[SysprepMassStorage] 

PCI\\VEN_1022&DEV_7469=c:\\drivers\\m\\am\\AMDEIDE.inf 

PCI\\VEN_1002&DEV_4349=c:\\drivers\\m\\at\\atiide.inf 

PCI\\VEN_10B9&DEV_5215=c:\\drivers\\m\\au\\1\\ALIIDE.INF 

PCI\\VEN_10B9&DEV_5219=c:\\drivers\\m\\au\\1\\ALIIDE.INF 

PCI\\VEN_10B9&DEV_5229=c:\\drivers\\m\\au\\1\\ALIIDE.INF 

PCI\\VEN_10B9&DEV_5228=c:\\drivers\\m\\au\\2\\m5228.INF 

PCI\\VEN_10B9&DEV_5281=c:\\drivers\\m\\au\\2\\m5281.inf 

PCI\\VEN_10B9&DEV_5287=c:\\drivers\\m\\au\\3\\ulisata.inf 

PCI\\VEN_10B9&DEV_5288=c:\\drivers\\m\\au\\4\\ULISATA.INF 

PCI\\VEN_10B9&DEV_5289=c:\\drivers\\m\\au\\5\\ULISATA.INF 

PCI\\VEN_8086&DEV_2652&CC_0104=c:\\drivers\\m\\in\\1\\iastor.inf 

PCI\\VEN_8086&DEV_27C3&CC_0104=c:\\drivers\\m\\in\\1\\iastor.inf 

PCI\\VEN_8086&DEV_2682&CC_0104=c:\\drivers\\m\\in\\1\\iastor.inf 

PCI\\VEN_8086&DEV_27C6&CC_0104=c:\\drivers\\m\\in\\1\\iastor.inf 

PCI\\VEN_8086&DEV_2822&CC_0104=c:\\drivers\\m\\in\\1\\iastor.inf 

PCI\\VEN_8086&DEV_2652&CC_0106=c:\\drivers\\m\\in\\1\\iaahci.inf 

PCI\\VEN_8086&DEV_2653&CC_0106=c:\\drivers\\m\\in\\1\\iaahci.inf 

PCI\\VEN_8086&DEV_27C1&CC_0106=c:\\drivers\\m\\in\\1\\iaahci.inf 

PCI\\VEN_8086&DEV_27C5&CC_0106=c:\\drivers\\m\\in\\1\\iaahci.inf 

PCI\\VEN_8086&DEV_2681&CC_0106=c:\\drivers\\m\\in\\1\\iaahci.inf 

PCI\\VEN_8086&DEV_2821&CC_0106=c:\\drivers\\m\\in\\1\\iaahci.inf 

PCI\\VEN_8086&DEV_24DF&CC_0104=c:\\drivers\\m\\in\\1\\O\\iastor.inf 

PCI\\VEN_8086&DEV_25B0&CC_0104=c:\\drivers\\m\\in\\1\\O\\iastor.inf 

PCI\\VEN_10DE&DEV_008E=c:\\drivers\\m\\N\\TM\\nvatabus.inf 

PCI\\VEN_10DE&DEV_00D5=c:\\drivers\\m\\N\\TM\\nvatabus.inf 

PCI\\VEN_10DE&DEV_00EE=c:\\drivers\\m\\N\\TM\\nvatabus.inf 

PCI\\VEN_10DE&DEV_00E3=c:\\drivers\\m\\N\\TM\\nvatabus.inf 

PCI\\VEN_10DE&DEV_0036=c:\\drivers\\m\\N\\TM\\nvatabus.inf 

PCI\\VEN_10DE&DEV_003E=c:\\drivers\\m\\N\\TM\\nvatabus.inf 

PCI\\VEN_10DE&DEV_0054=c:\\drivers\\m\\N\\TM\\nvatabus.inf 

PCI\\VEN_10DE&DEV_0055=c:\\drivers\\m\\N\\TM\\nvatabus.inf 

PCI\\VEN_10DE&DEV_0266=c:\\drivers\\m\\N\\TM\\nvatabus.inf 

PCI\\VEN_10DE&DEV_0267=c:\\drivers\\m\\N\\TM\\nvatabus.inf 

PCI\\VEN_10DE&DEV_036F=c:\\drivers\\m\\N\\TM\\nvatabus.inf 

PCI\\VEN_10DE&DEV_037E=c:\\drivers\\m\\N\\TM\\nvatabus.inf 

PCI\\VEN_10DE&DEV_037F=c:\\drivers\\m\\N\\TM\\nvatabus.inf 

PCI\\VEN_10DE&DEV_03F6=c:\\drivers\\m\\N\\TM\\nvatabus.inf 

PCI\\VEN_10DE&DEV_03F7=c:\\drivers\\m\\N\\TM\\nvatabus.inf 

PCI\\VEN_10DE&DEV_03E7=c:\\drivers\\m\\N\\TM\\nvatabus.inf 

PCI\\VEN_1039&DEV_0181=c:\\drivers\\M\\SI\\1\\SISRaid1.INF 

PCI\\VEN_1039&DEV_0180=c:\\drivers\\M\\SI\\2\\SISRaid.INF 

PCI\\VEN_1039&DEV_0182=c:\\drivers\\M\\SI\\3\\SISRaid2.INF 

PCI\\VEN_1106&DEV_3349&CC_0104=c:\\drivers\\M\\V\\1\\VIAMRAID.INF 

PCI\\VEN_1106&DEV_6287&CC_0106=c:\\drivers\\M\\V\\1\\VIAMRAID.INF 

PCI\\VEN_1106&DEV_0591&CC_0104=c:\\drivers\\M\\V\\1\\VIAMRAID.INF 

PCI\\VEN_1106&DEV_3249&CC_0104=c:\\drivers\\M\\V\\1\\VIAMRAID.INF 

PCI\\VEN_1106&DEV_3149&CC_0104=c:\\drivers\\M\\V\\1\\VIAMRAID.INF 

PCI\\VEN_1106&DEV_3164&CC_0104=c:\\drivers\\M\\V\\1\\VIAMRAID.INF 

PCI\\VEN_1106&DEV_0581&CC_0104=c:\\drivers\\M\\V\\1\\VIAMRAID.INF 

PCI\\VEN_1106&DEV_7372&CC_0104=c:\\drivers\\M\\V\\1\\VIAMRAID.INF 

PCI\\VEN_1106&DEV_4149=c:\\drivers\\M\\V\\2\\viapide.inf 

PCI\\VEN_1106&DEV_3149&CC_0101=c:\\drivers\\M\\V\\3\\vminiide.inf 

PCI\\VEN_1106&DEV_0591&CC_0101=c:\\drivers\\M\\V\\3\\vminiide.inf 

PCI\\VEN_1106&DEV_5337&CC_0101=c:\\drivers\\M\\V\\3\\vminiide.inf 

PCI\\VEN_1106&DEV_3349&CC_0101=c:\\drivers\\M\\V\\3\\vminiide.inf 

PCI\\VEN_1106&DEV_5287&CC_0101=c:\\drivers\\M\\V\\3\\vminiide.inf 

PCI\\VEN_1106&DEV_3164&CC_0101=c:\\drivers\\M\\V\\3\\vminiide.inf 

PCI\\VEN_1106&DEV_0581&CC_0101=c:\\drivers\\M\\V\\3\\vminiide.inf 

PCI\\VEN_1106&DEV_5324&CC_0101=c:\\drivers\\M\\V\\3\\vminiide.inf 

PCI\\VEN_104B&DEV_1040=c:\\drivers\\M\\VM\\vmscsi.inf 

………… 

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

[Commands] 

\"c:\\sysprep\\sysprep -clean\" 

这样就会在最小化安装的过程中禁用所有因为在目标计算机上不存在而未安装的大量存储控制器。 

至此,一个突破了S&R&S限制的系统映像准备完毕。 

执行sysprep进行封装,在封装的过程中,系统会自动复制.sys驱动到drivers下。在最小化安装的时候会禁止多余的驱动。 
以上步骤有省略。 
(注意:我推荐你用别人收集好的磁盘控制器驱动,减少不必要的错误和麻烦,这里我推荐自由天空的作品现在最新的是2.7,采用别人整理好的磁盘控制器驱动的话,以上突破SRS驱动步骤全部省略掉了,记住导入别人的磁盘控制器驱动必须在执行sysprep.exe 后才导入。) 


3.为了让驱动能在首次进去桌面能装好只要按照如下做法即刻(这个步骤不管在执行封装前后都可以操作的,也就是说不限制逻辑。) 

在开始\\运行窗口输入“gpedit.msc\"打开组策略: 
找到“计算机配置——管理模板——系统” 
启用“关闭 Windows Update 设备驱动程序搜索” 
找到“计算机配置——管理模板——系统——Internet 通信管理——Internet 通信设置” 
启用“关闭 Windows Update 设备驱动程序搜索” 
找到“用户配置——管理模板——系统” 
启用“配置驱动程序搜索位置” 钩上:不搜索软盘、Windows Update(光驱不要选) 
忽略“设备驱动程序的代码签名” 
启用“关闭 Windows Update 设备驱动程序搜索” 
右健点桌面“我的电脑”打开“系统属性——硬件” 
找到“驱动程序签名”选择“忽略,安装软件不用征求我的同意” 并钩上“将这个作为系统的默认值”——确定。 
找到“Windows Update”选择“从不在update搜索驱动”——确定。 

还有要注意的是:sysprep.inf 里的 

[Unattended] 

DriverSigningPolicy=Ignore 

NonDriverSigningPolicy=Ignore 

OemSkipEula=Yes 

OemPreinstall=Yes 

UpdateInstalledDrivers=Yes 

请务必添加进去这段,不然上面操作的只是白白操作。至于为什么我就不加说明了。 



4.注册组件调试, 

HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce 

其实只要在这里添加运行程序就可以了。 

例如我的DLL.exe 是放在c:\\sysprep 则 

添加多个程序的话,在部署恢复时系统会按顺序运行程序。在\\RunOnce的右边新建‘字符串值’然后在 

数值数据(v): 

c:\\sysprep\\DLL.exe ;那么程序在部署时就会运行dll.exe并且在下次电脑重起后自动删除这个键值 
注意:以上步骤必须在执行sysprep.exe封装以后才操作,否则在执行sysprep.exe 注册表就被加载了。 


5.首次进去桌面运行程序。 
C:\Documents and Settings\All Users\「开始」菜单\程序\启动    只要在这里放第一次要运行的程序就行了。我给大家一段AU3代码:  我把代码简单化了这样看得容易懂。 

RunWait("c:\windows\yxrun\分辨率智能设置.exe") 
RunWait("c:\windows\yxrun\清除任何显卡生成的桌面右键多余菜单.cmd","c:\windows\yxrun\",@SW_HIDE) 
RunWait("c:\windows\yxrun\自动关闭空闲的IDE通道.bat","c:\windows\yxrun\",@SW_HIDE) 
RunWait("regedit /s c:\windows\yxrun\后期优化处理.reg") 
大家可以自行添加 
DirRemove("c:\windows\yxrun",1) ;删除程序目录否则别人会说你的系统有残留垃圾。 
Run(@ComSpec&' /c ping 127.0.0.1 -n 3&del /q "'&@ScriptFullPath&'"',@ScriptDir,@SW_HIDE) ;这段是删除自我的代码大家不必了解其原理。  为什么要删除自我,否则下次启动电脑还是会运行这个程序。然后编译一下就行了 

6. 准备接管部署过程的文件 

如何调试驱动包了,看下面,下面需要涉及到一个 编程工具 autoit 或者其他的编程工具 

既然我们知道系统部署过程是由 Windows\\System32\\Setup.exe 触发的,那么系统是怎么知道在第一次启动时运行 Windows\\System32\\Setup.exe 的呢?经过无数前辈们的探索,发现了 CMDLine 这个键值。HKEY_LOCAL_MACHINE\\SYSTEM\\Setup\\CMDLine 键,在 封装后此键值为“ Setup.exe–newsetup -mini”,这也就是说在系统第一次启动时运行 Setup.exe 并加载“–newsetup –mini”参数。(如果封装时没有选最小化部署这里不会有“mini” 

参数)我们可以据此断定,之所以目标计算机第一次运行时会运行 Setup.exe 来部署系统,是由这个键值控制的。那么,如果我们把这个键值更改一下,让目标计算机第一次启动时运行我们所需的程序,不就能够控制部署过程了吗?因此我们用AU3脚本写一个代替“CMDLine” 这个键值“setup.exe” 

我的是mohuishou.exe(可以随便命名),AU3代码如下: 

FileSetAttrib("C:\NTLDR","-RSH");去掉属性 这个是我们准备好的电源判断文件,否则回出现文件损坏现象 
FileDelete("C:\NTLDR ");删除准备的电源判断文件, 
FileSetAttrib("C:\NTLDR_XP","-RSH");去掉属性 
FileMove("C:\NTLDR_XP","c:\ntldr") ;将原来的电源判断文件更名,这个是系统原来有的,在封装前必须改这个名字NTLDR_XP 
FileSetAttrib("C:\NTLDR ","+RSH");加属性 
;大家回想上述步骤1.1 就知道为什么要那样操作了。以上代码步骤就是为了删除电源判断文件,将我们改名后的NTLDR_XP,改回原来的名字。 
FileSetAttrib("c:\boot.ini","-RSH") 
IniWrite("c:\boot.ini","operating systems","multi(0)disk(0)rdisk(0)partition(1)\WINDOWS",'"Microsoft Windows XP Professional" /noexecute=optin /fastdetect');为了去掉 /detecthal 
FileSetAttrib("c:\boot.ini","+RSH") 
RegDelete("HKEY_LOCAL_MACHINE\SYSTEM\setup","cmdline") ;没有这个也行,有这个比较保险 
RegDelete("HKEY_LOCAL_MACHINE\SYSTEM\setup","cmdline") 
RunWait("c:\sysprep\drivers\drvs2.0.exe") ;这是调用skyfree的驱动选择工具,根据自己修改 
RunWait("setup.exe -newsetup -mini",@SW_HIDE) ;这里和原来的原理是一样的。 

然后将这个文件编译成.exe然后放到windows\system32 下 然后将 

HKEY_LOCAL_MACHINE\\SYSTEM\\Setup\\CMDLine 键,键值“ Setup.exe–newsetup -mini” 

修改为“mohuishou.exe” 那么这样在部署的时候就会运行mohuishou.exe。 



好了到这里为止你们是否学会了呢? 逻辑关系是否搞清楚了? 

现在我还解析下龙帝国的 s&r&s9.80102 这个电源判断工具,这个工具代替了我们要突破hal限制所要操作的步骤,还有就是准备接管部署过程的文件,也就是说我们要重新编写一个程序来接口驱动程序,而s&r&s9.80102 是采用ini 文件的形式来配制接管部署过程的,你们准备一个 s&r&s9.80102 并将他安装了,C:\\Sysprep 找到 msprep.ini在找到 

============================================================================================ 

Ext=1;这里我们把他设置成1 

Extimeout=10 

;定义外部接口(启用:=1),从[Extend]中进行具体的设置.等号左边是文本标题,注意等号右边的值不要包 

;含盘符,例1:恢复DLL Cache=Windows\\dllcachemanager.exe /Restore /autodelete,0(这里的,0表示不 

;等待Dllcachemanager执行完毕,这样的效果是可以使Dllcache恢复和Mini Setup同步进行,减少恢复时间) 

;例2:设置boot菜单选择时间=Windows\\Stime.exe,1,1(最后面的,1表示程序在Mini Setup结束之后运行) 

在向下移动看到 

[Extend] 

解压驱动集成包= 

这里就是接口我们的驱动程序,例如:解压驱动集成包=sysprep\\driver\\drvs2.0.exe 

这样就完成了驱动的接口了,如果决得全手动的很麻烦的,可以采用s&r&s9.80102 这个电源判断工具,这个是个不错的封装工具。其他的操作就和全手动封装的步骤差不多了!
posted @ 2009-10-06 08:46  与时俱进  阅读(2460)  评论(1编辑  收藏  举报
友情链接:同里老宅院民居客栈