《2022年磁盘控制器驱动集成方略 .pdf》由会员分享,可在线阅读,更多相关《2022年磁盘控制器驱动集成方略 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、磁盘控制器驱动集成方略第一章、关于磁盘控制器Skyfree我在之前不少的教程中都提到过有关这方面的内容,不过由于之前技术水平有限,不能较为完整详细的解释这方面的内容,所以一直感到惭愧。现今,经过了相当长一段时间的学习与实践,我想现在的我应该可以把有关磁盘控制器驱动集成原理的部分较为明了的解释一下了。;h1 a 一、正确理解磁盘控制器驱动的含义很多朋友将“SATA 硬盘驱动”这个词经常挂在嘴边,Skyfree我当年也是这个样子。其实这种说法是一种从表象上看问题的说法,所以有不少的偏差。好吧,现在我要将一个概念深入人心,即“磁盘控制器与磁盘类型没有直接的关系”。当然,或许这个说法也有部分偏差,有兴
2、趣的朋友可以更为深入的研究,并可以找我讨论。“磁盘控制器驱动”是针对磁盘控制器的(似乎是废话),而不是针对磁盘(硬盘以及相关类似的存储介质,狭义的可以认为磁盘就是指的硬盘)的。磁盘控制器有主板芯片组自带的,有主板集成的第三方的,也有独立的磁盘控制器卡。磁盘控制器,就像是磁盘到计算机的一个中间介质,简单说,系统是通过磁盘控制器认识磁盘的。所以,如果系统里没有和磁盘控制器匹配的磁盘控制器驱动,是无法识别磁盘的。$1 h&A)p)K如果对这个不好理解,可以这样来想,例如我们当年的98 系统,98 系统里没有常用的 USB控制器驱动,所以我们的U盘插上后系统识别不出来,而我们现在最常用的XP中包含了大
3、量常用的USB控制器驱动,所以基本上所有的U盘插上后会自动识别出来。这里,你可以把 USB控制器看做磁盘控制器,U盘控制器驱动看做磁盘控制器驱动,U盘看做磁盘。USB控制器驱动是为USB控制器装的,而不是为U盘装的。说到这里,我们来看一下我们最常见的两种磁盘控制器:.*|!P6 u*G&u2 6 J4 Q 1、并行磁盘控制器,或者叫做ATA(PATA)磁盘控制器。1 H,%F/7 X/U.W基本上来说,这种磁盘控制器都是为IDE 接口的磁盘准备的,而并行磁盘控制器也一般只有并行工作模式。所以,一般来说,并口磁盘所使用的磁盘控制器都是工作在并行模式的并行磁盘控制器。1 L-5 h8 W;q+V4
4、 u2 Y但也由此,让许多人将这个概念照搬到了串行磁盘控制器上,造成了一些理解错误。还有一点,很多人认为IDE 的磁盘就不需要安装磁盘控制器驱动,这个也是错误的。并不是因为不需要安装,而是因为系统内已经集成了并行磁盘控制器,就像XP集成了大量常用 USB控制器驱动一样。2、串行磁盘控制器,或者叫做SATA磁盘控制器。SATA磁盘控制器,广义上讲,SATA(Serial ATA)指的是所有的串行磁盘控制器,包括普通的串行磁盘控制器、RAID磁盘控制器、SCSI磁盘控制器等等;狭义上讲,我们普遍的将 SATA磁盘控制器理解为普通的串行磁盘控制器,就像你我的计算机上正在使用的这种一样。我们在下文中,
5、都将“SATA磁盘控制器”理解为其狭义概念。0 W+i$S:(_1 o7,R5 m(N(1)串行磁盘控制器的工作模式串行磁盘控制器比较灵活,不像并行磁盘控制器一般只工作在并行模式,而是可以在BIOS里将其设置为多种工作模式,根据主板BIOS的不同,名称可能有所差别,并行工作模式有:IDE、ATA、PATA等,串行工作模式有:SATA、RAID、AHCI 等。很多二线厂或者通路商主板上的串行磁盘控制器都默认为并行工作模式,这会折损部分磁盘工作效能,但是却提高了兼容性;很多一线大厂则都是将串行磁盘控制器默认为串行名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 9 页 -工作模式,这样
6、可以发挥磁盘的最高工作效能。2$L4 s($f|$|所以,请记住,串行磁盘控制器可以在并行与串行两种工作模式间进行调换,而非只工作在串行工作模式。(2)串行磁盘控制器的接口!?:E)1 _&o1 T这好像是个白痴话题,串行磁盘控制器的接口肯定是串口(SATA接口),大多数人这么认为,当然,也包括之前的我。好吧,我们暂且排除有SCSI 的特殊接口的串口,只说说我们常见的。F _(U.V,J;M9:G4 u+l+大多数,应该是绝大多数的情况下,串行磁盘控制器的接口是串口。不过,在某些集成了第三方磁盘控制器的主板上,例如有一块945P的主板上集成了ITE 的串行磁盘控制器,它的 ITE 串行磁盘控制
7、器不仅提供用于组建RAID 的 SATA接口,同时也提供了组建RAID的IDE 接口。所以,IDE 磁盘也是有可能工作在串行模式下的,绝非IDE 磁盘一定工作在并行模式下。综上,我们可以不通过磁盘类型来看问题,也就是说,在今后研究磁盘控制器驱动时我们看到的只有磁盘控制器,至于磁盘是什么样子、什么接口,只是一个可用的参照而已,不是我们主要要观察的东西。$T,s4 B+/&_:p(|*i(q二、磁盘控制器驱动集成原理磁盘控制器驱动的集成方法是由微软提供的,当然不排除很多高人不用这个方法,但是似乎他们都挺喜欢自娱自乐,所以具体这些高人的方法是什么我们不得而知,那么我们这些菜鸟们还是专心跟着盖茨走,看
8、看微软提供了什么样的集成磁盘控制器驱动的方法。为了便于理解,我只讲最核心的方法,如果您对此有极高的兴趣,建议您阅读微软在XP原版光盘中自带的Deploy.chm 中的相关内容。4 z Q%b;d7-b5 _)j5 f微软提供了这样一种方法,即在Sysprep.inf中添加SysprepMassStorage段,SysprepMassStorage段下内容的写法是:5 P b8&|5 z0 v$,硬件 ID=硬件驱动Inf文件路径1 l,!G;p M0 Y6 K(D4 u例如:#A8(C4 h e0 F7 Y SysprepMassStorage pciven_10de&dev_0055&cc_
9、0101=D:Skyfree_MassStorageMMCP55nvata.inf pciven_10de&dev_0054&cc_0101=D:Skyfree_MassStorageMMCP55nvata.inf!Ypciven_10de&dev_0267&cc_0101=D:Skyfree_MassStorageMMCP55nvata.inf pciven_10de&dev_0266&cc_0101=D:Skyfree_MassStorageMMCP55nvata.inf7+V7 pciven_10de&dev_037f&cc_0101=D:Skyfree_MassStorageMMCP5
10、5nvata.inf pciven_10de&dev_0055&cc_0104=D:Skyfree_MassStorageMMCP55nvraid.inf pciven_10de&dev_0054&cc_0104=D:Skyfree_MassStorageMMCP55nvraid.inf pciven_10de&dev_0267&cc_0104=D:Skyfree_MassStorageMMCP55nvraid.inf7 z,r0 pciven_10de&dev_0266&cc_0104=D:Skyfree_MassStorageMMCP55nvraid.inf1 n;+pciven_10de
11、&dev_037f&cc_0104=D:Skyfree_MassStorageMMCP55nvraid.inf*m%R:其中像“pciven_10de&dev_0267&cc_0101”这类就是硬件ID,硬件ID 是每一类硬件专用的唯一的编号,注意,是每一类不是每一个。而像“D:nvata.inf”就是包含这个硬件ID 的驱动 INF 所在的位置了。好的,按照微软的说法,只要我们在Sysprep.inf里写对了 SysprepMassStorage段的列表(以下我们称为Device-InfPath列表),然后运行Sysprep.exe进行封装就可以了。这时,在运行Sysprep.exe封装时,
12、Sysprep 会根据 MassStoragel列表的内容,逐一将磁盘控制器驱动文件复制到当前系统中,并创建相应的注册表项目。,o/R3 8 O4 j6-b)p微软的这个方法具有绝对的权威性,以及相对较高的稳定性,不过读到这里您应该有很名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 9 页 -多疑问了,诸如Device-InfPath列表怎么生成等等,别着急,更详细的内容我会在下一章具体介绍。第二章、手动生成磁盘控制器驱动列表一、要有驱动简单不过的道理,如果我们要向当前系统里集成磁盘控制器驱动,那么我们就必须先得有磁盘控制器驱动。而这些驱动,从哪来,怎么收集?由于认识和习惯问题,
13、很多情况下,磁盘控制器驱动并不是单列出来的。例如VIA K8T890主板,假设它是K8T890 北桥+8237A南桥,关于K8T890 的驱动包肯定不会单独告诉你哪一部分是8237A 南桥磁盘控制器的驱动,而是告诉你整个驱动包就是关于K8T890主板的,甚至会告诉你这个驱动包是关于VIA 主板全系列的。怎么办?其实也不用过于担心,很多主板驱动包中绝大多数部分都是关于磁盘控制器的,其他的部分基本都是关于系统总线等等系统设备的,所以就算是误集成了部分系统驱动,也不会有什么影响。这个我可以用一年的实践经验来保证。好,那现在要做的,就是去驱动之家()或者硬件厂商的官方网站去下载您需要的设备的驱动了。要
14、注意的是,很多时候磁盘控制器与主板驱动是在同一个驱动包里的,所以下载时如果没有磁盘控制器驱动则可以只下载主板驱动。下载好之后,我们还有很多事情要做。很多驱动包提供给我们的是一个单个的安装包,用 7z 或类似软件将其强行解压缩,如果这个安装包有自解压的功能那么就让它自己释放,这样我们将获得一个包含着N个文件和N个文件夹的驱动文件夹。下面要做的事要很需要经验了,我们到这个驱动文件夹中,删除无用的文件(例如安装向导、图片文件等等),以及不适用于您系统的部分(例如您系统是XP,而驱动包里有关于 2K3 的部分)。我已经说了,这个很需要经验,所以不要指望自己可以一次就做的完美,这需要大量的驱动搜集实践经
15、验,可能不是一时半会能掌握的,但是却无意中可以让您掌握另一门技术驱动收集技术。如果您实在是对自己的驱动收集技术没信心,那么您可以用现成的收集好的驱动。向您推荐自由天空-自由的风驱动综合包系列和DPS驱动包系列。您可以从这两个驱动包中提取出已经收集好的主板驱动和磁盘控制器驱动,以备使用。二、要有耐心怎么忽然说耐心了?不说技术了么?不,耐心也是一种技术。随后我们要做一件可以测试我们的耐心程度的步骤生成Device-InfPath列表。(以下内容均已XP为例)1、生成微软自带磁盘控制器驱动的Device-InfPath列表(1)在 C盘创建 Sysprep 文件夹,不要怀疑,必须C盘,不要再为什么“
16、软件都要放 D盘”的概念迷惑了;(2)将XP 的“sysprep.exe”、“setupcl.exe”复 制 到C:Sysprep中,“sysprep.exe”、“setupcl.exe”可以在XP原版光盘的Deploy.cab中获取;(3)在 C:Sysprep中创建 Sysprep.inf文件,并写入“SysprepMassStorage”段的段名:SysprepMassStorage;(4)在命令提示符下运行:C:SysprepSysprep.exe bmsd 这时,回看你的Sysprep.inf,你会惊奇的发现其中的SysprepMassStorage段下有:*pnp0a00=c:wi
17、ndowsinfmachine.inf 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 9 页 -*pnp0a01=c:windowsinfmachine.inf *pnp0a04=c:windowsinfmachine.inf *pnp0a03=c:windowsinfmachine.inf pcicc_0604=c:windowsinfmachine.inf pcicc_0601=c:windowsinfmachine.inf pcicc_0602=c:windowsinfmachine.inf pcicc_0600=c:windowsinfmachine.inf pcicc
18、_0500=c:windowsinfmachine.inf rootftdisk=c:windowsinfmachine.inf rootswenum=c:windowsinfmachine.inf rootupdate=c:windowsinfmachine.inf rootmssmbios=c:windowsinfmachine.inf rootdmio=c:windowsinfmachine.inf,pcmciasony-memorystick(_8m)-9eb3=c:windowsinfmshdc.inf pcmciasony-memorystick(_16m)-d04d=c:wind
19、owsinfmshdc.inf pcmciasony-memorystick(_32m)-1766=c:windowsinfmshdc.inf pcmciasony-memorystick(_64m)-8c2c=c:windowsinfmshdc.inf pciven_1055&dev_9130=c:windowsinfmshdc.inf pcmciamicron-mtcf_-392d=c:windowsinfmshdc.inf pciven_1179&dev_0105=c:windowsinfmshdc.inf 这是一个相当长的(至少你现在认为是相当长的)Device-InfPath列表,这
20、个列表中包含了系统自带的所有磁盘控制器驱动的硬件ID 以及其驱动INF 所在位置。这些硬件ID 来源于系统的Machine.inf、Scsi.inf、Pnpscsi.inf 以及 Mshdc.inf,是正宗的系统自带驱动。这些驱动虽然不怎么新,但却是没法再稳定的驱动了。好了,现在随便找个其他地方把这个列表保存下来。不过这似乎不太需要什么耐心,而且好像没什么技术含量,哼哼,地狱还没到。2、生成第三方磁盘控制器驱动列表微软比较偏袒自家孩子,一个“C:SysprepSysprep.exe bmsd”命令,所有系统自带的磁盘控制器驱动的Device-InfPath列表就自动生成了。而大量的第三方磁盘控
21、制器驱动这些没人管的孩子,就得我们亲手来管一管了。下面我以集成我自己主板(NF550,芯片MCP55)的磁盘控制器驱动为例,讲述一下第三方磁盘控制器驱动Device-InfPath列表的生成方法。当然,首先我们还得按照刚才的方法创建Sysprep 文件夹并将需要的文件复制进去,这些我就不再赘述。我们先到驱动之家下载一份MCP55 的驱动,然后将里面我们需要的部分提取出来。我将这份 MCP55 的驱动放在了D:Skyfree_MassStorageMMCP55,注意,驱动放在D 盘是没问题的,因为所有的这些磁盘控制器驱动都会在封装阶段自动复制到C盘 System32 中。(本文的最后提供这个我提
22、取的MCP55 驱动包的下载,供大家参考和学习)整理好驱动之后,我们去哪找这个驱动里包含的硬件ID 呢?没有好的方法,我们只能一个一个INF 的看了。例如,我先打开了“nvata.inf”,阅读 INF 的全文,找到 NVIDIA段,内容如下:NVIDIA%CK804SSS%=Crush11_Inst,PCIVEN_10DE&DEV_0055&CC_0101 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 9 页 -%CK804SSS%=Crush11_Inst,PCIVEN_10DE&DEV_0054&CC_0101%MCP51S%=Crush11_Inst,PCIVEN_10
23、DE&DEV_0267&CC_0101%MCP51S%=Crush11_Inst,PCIVEN_10DE&DEV_0266&CC_0101%MCP55S%=Crush11_Inst,PCIVEN_10DE&DEV_037F&CC_0101 好的,这样我们就得到了5 个硬件 ID,那么我们在Sysprep.inf中的 Device-InfPath列表就要这样写:SysprepMassStorage pciven_10de&dev_0055&cc_0101=D:Skyfree_MassStorageMMCP55nvata.inf pciven_10de&dev_0054&cc_0101=D:Sky
24、free_MassStorageMMCP55nvata.inf pciven_10de&dev_0267&cc_0101=D:Skyfree_MassStorageMMCP55nvata.inf pciven_10de&dev_0266&cc_0101=D:Skyfree_MassStorageMMCP55nvata.inf pciven_10de&dev_037f&cc_0101=D:Skyfree_MassStorageMMCP55nvata.inf 不过要注意的是,在 Inf文件中搜索硬件ID 也是个经验至上的工作,不是所有的Inf都写的很规范,所以我们要多多尝试。不要因为我上面的nVI
25、DIA 驱动 ID 是在 NVIDIA 段中找到的,那么在做Intel的时候也去找 Intel段,这基本是不可取的,因为各个厂商写驱动 Inf的习惯是不同的,而且哪怕是同一厂商,在不同时期写Inf的风格也会不同。好了,我们按照这个方法类推,一次搜索完毕了所有的MCP55 下的 Inf文件,得到了如下一个完整的MCP55 芯片组第三方磁盘控制器驱动列表:SysprepMassStorage pciven_10de&dev_0055&cc_0101=D:Skyfree_MassStorageMMCP55nvata.inf pciven_10de&dev_0054&cc_0101=D:Skyfree
26、_MassStorageMMCP55nvata.inf pciven_10de&dev_0267&cc_0101=D:Skyfree_MassStorageMMCP55nvata.inf pciven_10de&dev_0266&cc_0101=D:Skyfree_MassStorageMMCP55nvata.inf pciven_10de&dev_037f&cc_0101=D:Skyfree_MassStorageMMCP55nvata.inf pciven_10de&dev_0055&cc_0104=D:Skyfree_MassStorageMMCP55nvraid.inf pciven_
27、10de&dev_0054&cc_0104=D:Skyfree_MassStorageMMCP55nvraid.inf pciven_10de&dev_0267&cc_0104=D:Skyfree_MassStorageMMCP55nvraid.inf pciven_10de&dev_0266&cc_0104=D:Skyfree_MassStorageMMCP55nvraid.inf pciven_10de&dev_037f&cc_0104=D:Skyfree_MassStorageMMCP55nvraid.inf gennvraiddisk=D:Skyfree_MassStorageMMCP
28、55nvraid.inf *_nvraidbus=D:Skyfree_MassStorageMMCP55nvraid.inf *nvraidbus=D:Skyfree_MassStorageMMCP55nvraid.inf pciven_10de&dev_01b4=D:Skyfree_MassStorageMMCP55nvsmbus.inf pciven_10de&dev_0064=D:Skyfree_MassStorageMMCP55nvsmbus.inf pciven_10de&dev_00d4=D:Skyfree_MassStorageMMCP55nvsmbus.inf pciven_1
29、0de&dev_0084=D:Skyfree_MassStorageMMCP55nvsmbus.inf pciven_10de&dev_00e4=D:Skyfree_MassStorageMMCP55nvsmbus.inf pciven_10de&dev_0052=D:Skyfree_MassStorageMMCP55nvsmbus.inf pciven_10de&dev_0034=D:Skyfree_MassStorageMMCP55nvsmbus.inf pciven_10de&dev_0264=D:Skyfree_MassStorageMMCP55nvsmbus.inf pciven_1
30、0de&dev_0368=D:Skyfree_MassStorageMMCP55nvsmbus.inf 这仅仅是一个nVIDIA 芯片组中的MCP55 芯片组,所以如果要收集大量的磁盘控制器驱动,工作量会十分十分的大,而且全部列表很可能有微软自带列表的5 倍长。这是一个绝对的耐心活儿,所以,别不把耐心当技术。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 9 页 -三、要有运气假定您现在已经收集好了一个2 万行 Device-InfPath列表,好吧,辛苦了。但是所有的事情到现在才刚刚开始,别晕,现在我们唯一要祈祷的是运气。由于诸多方面的原因,硬件ID 有些时候也会有问题,同一厂
31、商内部由于驱动更新、疏忽、兼容性问题,或不同厂商之间的误差,可能会造成如下的一些问题:(1)硬件 ID 冲突这个通常是由于统一厂商内驱动更新造成的,例如之前用了这个ID 标示这类设备,后来改变了做法,新旧驱动之间部分ID 不兼容。(2)硬件与当前系统不兼容这个基本是由于驱动更新较慢,或者厂商测试不够造成的。(3)硬件 ID 书写有误这个最无语,ATI 就曾经把“0”写成“o”。这些问题不是我们能左右的,所以,还是最好强化一下近期的人品,避免遇到不可解释的非自然问题。出现上述问题时,表现为以下情况:(1)Sysprep 在运行时忽然提示“某某注册表更新失败”或诸如此类的信息;(2)Sysprep
32、 的运行忽然停止响应(最好开个任务管理器在旁边监视)。出现问题后的解决方法:说实在的,这个比较困难,我也没有太好的方法。只能用最原始的排除法。将驱动列表拆分成两部分,分别测试,然后再拆分测试、再拆分测试、再拆分测试,直到找出问题所在。四、要有时间微软方法集成磁盘控制器驱动是个十分消耗时间的事情,每一次封装过程都要持续4060 分钟,所以,除非您有足够的时间和足够的兴趣以及足够的勇气,否则就不要尝试了。第三章、自动生成磁盘控制器驱动列表希望您不是按照第二章里的内容做完后才开始看第三章的,但是我强烈建议您仔细阅读并理解了第二章的内容后,并尝试了我在第二章中提供的那个MCP55 的例子后再阅读本章内
33、容,否则,您会缺失很多知识经验,以及对无数前辈努力的尊重。第二章中,我们运用“C:SysprepSysprep.exe bmsd”命令自动生成了系统自带的磁盘控制器驱动列表,微软想办法用一个简便的命令把自己家孩子Machine.inf、Scsi.inf、Pnpscsi.inf 以及 Mshdc.inf的能力快速释放了出来,这个过程仅有短短的几秒,而我们要手工收集这些,就不是短短几分钟的问题了。好吧,现在有这样一个思路,如果我们能把第三方的驱动Inf文件伪装成微软家的孩子,再用“C:SysprepSysprep.exe bmsd”命令是不是就可以实现自动生成Device-InfPath列表了?(
34、注:这个思路最早不是来自我,而是出自自由天空一个坛友,但由于时间上的推移,我已经找不到这个坛友的名字了,请您在发现这篇文章后及时的联系SKY我,以致感谢!经过多次尝试后,这个方法是可行的。Skyfree我用 AU3写了一个程序,这个程序实现了如下算法:0、创建 C:Sysprep文件夹,复制所需文件进入,并写好一份包含SysprepMassStorage段的 Sysprep.inf;1、指定一个存放所有驱动Inf 和驱动文件的根文件夹,例如D:Skyfree_MassStorage;2、遍历这个文件夹,搜索其中所有的Inf文件,并生成一份所有Inf文件位置的列表;3、将 C:WindowsIn
35、f中的 Machine.inf、Scsi.inf、Pnpscsi.inf、Mshdc.inf备份;4、根据第三方Inf文件列表,将一个第三方的Inf文件例如nvata.inf复制到名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 9 页 -C:WindowsInf中,并改名为Machine.inf;5、运行“C:SysprepSysprep.exe bmsd”,这时“C:Sysprep.inf”中就会生成关于 nvata.inf的 Device-InfPath列表;6、将这个包含nvata.inf的 Device-InfPath列表复制到其他位置保存;7、根据第三方的Inf文件列表
36、,复制下一个第三方inf到 C:WindowsInf中,进入下次循环;8%v9 r-p-R J%T9 f 8、所有第三方Inf都已经生成Device-InfPath列表后将备份的Machine.inf、Scsi.inf、Pnpscsi.inf、Mshdc.inf还原。“Creat_Device-InfPath_List.exe”我在本文最后提供下载。第四章、磁盘控制器驱动的集成与提取+T,r0 U1 q#+$h$q&/Q3 _ Q3|无论您使用的什么方法,现在应该已经有一份很长很长的Device-InfPath列表了。下面我们就要开始向系统中集成驱动了。-A/U+g;I4 L1 H2 O4 复
37、制需要的文件到C:Sysprep文件夹,将Device-InfPath列表写入Sysprep.inf的SysprepMassStorage段下,双击Sysprep.exe开始系统封装。$K0 r1 N2 w9 F X,y b8 V!K L6 U,:p&9 F D:H1 n3 s;_7 G j,怎么时间会这么长?是的,时间相当的长,Sysprep.exe正在很努力很努力的将我们 Device-InfPath列表所列出的所有磁盘控制器设备集成进当前系统。根据您的Device-InfPath列表的长度,封装时间会有所变化。但是就算仅集成微软自带的磁盘控制器驱动,也大概需要1520 分钟。如果集成了大
38、量的磁盘控制器驱动的话,这个时间可能会增至 4060 分钟。这个时间长度是让人几乎无法接受的。-r2 K7 3 G.%k&w那要怎么办才能加速这个过程呢?好吧,让我们来监控一下看看这个过程中什么被更改了。&V%u5 Y M.d下载 Total Uninstall:http:/ d%o%k这是一款监控安装程序对系统更改的软件,Total Uninstall的使用方法这里不再赘述,很简单的一个软件,自己多尝试。用 Total Uninstall创建当前系统快照,再用Total Uninstall启动 Sysprep.exe执行封装,封装技术后对比当前系统与之前的系统快照。,#J8 r#6 Z,-y
39、3 Z+e0 z+A现在要做下面的事情:0、创建以下文件夹:D:Skyfree_MassStorageSystem32 D:Skyfree_MassStorageSystem32drivers 1、将监控到的C:WindowsSystem32中的文件更改都提取出来,复制到D:Skyfree_MassStorageSystem32中;-n.Z4 x:F&S2 T 2、将监控到的C:WindowsSystem32drivers中的文件更改都提取出来,复制到D:Skyfree_MassStorageSystem32drivers中;3、将监控到的“HKEY_LOCAL_MACHINEServices
40、”中的所有注册表更改到处,保存到D:Skyfree_MassStorageService.reg;4、运行“RegEdit”,找到“HKEY_LOCAL_MACHINECriticalDeviceDatabase”名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 9 页 -键,将其中所有内容导入,保存到D:Skyfree_MassStorageCDDB.reg;8)w 3 T6$P9 j 5、将 C:SysprepSysprep.inf中的 sysprepcleanup段内容复制出来,保存到D:Skyfree_MassStoragesysprepcleanup.inf。OK,所有提
41、取的这些,就是神秘的所谓磁盘控制器驱动了!以后再进行系统封装时按照一下步骤做:;*m0 t;c3 Q j5 u X4 J 1、处理系统,例如优化、精简、装软件,卸载驱动、处理 HAL自动判定等;/|)B u3 G&a6 H)I8 i 2、运行 C:Sysprep.exe封装系统;/H:J9 w9 w:J 3、将 D:Skyfree_MassStorageSystem32中所有文件复制覆盖C:WindowsSystem32中所有文件;6-I)T u*U%N0 I*O1 Z 4、导入 CDDB.reg 和 Service.reg;5、在 C:SysprepSysprep.inf中创建 syspre
42、pcleanup段,将D:Skyfree_MassStoragesysprepcleanup.inf中的磁盘控制器清理列表复制到C:SysprepSysprep.inf的sysprepcleanup段中;6、在 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunOnce下创建 SysClean 键,键类型REG_SZ,内容“C:SysprepSysprep.exe-Clean”;7、重启备份系统。其他要注意的问题:#l*a+j9 q 3,D5 w2 u1 T *Q8 u m1、搜集驱动前最好卸载所有当前硬件设备驱动,以免在监控
43、搜集磁盘控制器驱动时形成干扰2、导入如下关于Intel部分的处理:HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesIntelIde ErrorControl=dword:00000001#f:B2 R7 Q!C-p.N Group=System Bus Extender(M$|;,_ H(a9 k;Z Start=dword:000000000 c f+i1 5 M7 O3 G6 l7 K!I Type=dword:00000001+L7 g.K6 O;G.k ImagePath=hex(2):73,00,79,00,73,00,74,00,65,00
44、,6d,00,33,00,32,00,5c,00,44;O3 Q(z1 x$R9|,A(p%a 52,00,49,00,56,00,45,00,52,00,53,00,5c,00,69,00,6e,00,74,00,65,00,6c,00,69,00,64,00,65,00,2e,00,73,00,79,00,73,00,00,00 F5 3 i:Y0 w&V,j0 R HKEY_LOCAL_MACHINESYSTEMControlSet001Servicesintelppm4%Q A4 l8 p.u8 T(S Type=dword:000000012 g)?0 t6 l;S#p Start=
45、dword:00000003 ErrorControl=dword:00000001 ImagePath=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44-e%c.K6 t9 I)$s1 R 52,00,49,00,56,00,45,00,52,00,53,00,5c,00,69,00,6e,00,74,00,65,00,6c,00,70,00,70,00,6d,00,2e,00,73,00,79,00,73,00,00,009 b)J8 b&g:|.T*s)O(g DisplayName=Intel Processor Driver 名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 9 页 -Group=Extended Base w4 W G#D V2 G$N#z,z可以避免 Intel平台中封装的系统在AMD 平台上蓝屏的问题 3、提取的 Service里关于 Eventlog 的部分,可以删除名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 9 页 -