欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

在WinPE安装SATA驱动的方法

程序员文章站 2022-07-07 12:32:26
这篇文章主要介绍了在WinPE安装SATA驱动的方法,需要的朋友可以参考下... 14-10-18...
小编关于安装配置文件txtsetup.sif的简单说明:

[winntdirectories]这个字段是用代码表示文件拷贝的目标文件夹,其根目录为%windir%即安装指定的windows文件夹。[sourcediskfiles]根据前面设定的代码表示文件拷贝的具体细节,下面三段为集成sata/scsi等驱动时所用。[hardwareidsdatebase] — 硬件标识[scsi.load] — scsi驱动加载[scsi]?? — scsi设备说明

添加srs驱动实例:在winpe系统中添加sata/raid驱动的方法(这里以intel matrix storage manager driver为例,以便于说明,以下描述的驱动文件名只基于本实例,实际操作中的具体的文件名称以需要添加的具体驱动为准)

1、准备材料:

a、原版sata驱动文件
b、从winpe中提取的txtsetup.sif文件;

2、从winpe中提取txtsetup.sif文件:先将winpe中的winpe.is_重命名为winpe.cab,然后用winrar解压出winpe.iso,用ultraiso打开它,将txtsetup.sif提取出来,并用记事本打开备用;

3、修改txtsetup.sif文件:a、打开sata驱动包,里面有一个扩展名为“.inf”或“.oem”的小文件,如“oemsetup.inf”或者“txtsetup.oem”等(本例中为“txtsetup.oem”),用记事本打开备用;b、在txtsetup.sif中查找[sourcedisksfiles]字段,在其下添加iastor.sys=1,,,,,,4_,4,1,,,1,4;c、查找[scsi.load]字段,在其下添加iastor=iastor.sys,4;d、切换到刚才打开的txtsetup.oem,查找hardwareids关键字,将该字段下的代码全部拷贝到txtsetup.sif文件的[hardwareidsdatabase]字段末尾,但需要更改一下代码的格式,比如将id = "pci\ven_8086 dev_27c3 cc_0104","iastor"改为pci\ven_8086 dev_27c3 cc_0104=iastor;e、查找[scsi]字段,在其下添加iastor="intel(r) 82801fbm sata ahci controller (mobile ich6m)" 至此,修改txtsetup.sif文件部分完成,将修改后的sif文件替换原来的文件;

4、复制sata驱动文件:将sata驱动文件iastor.sys用makecab.exe压缩成iastor.sy_并添加到winpe的system32\drivers目录下,然后将修改后的winpe.iso用makecab.exe重新压缩成winpe.is_替换原来的文件,至此整个添加sata驱动工作完成,重新启动以测试成功与否。

其中,最麻烦的就是更新或添加sata驱动的时候,新驱动中删除了对老硬件的支持或者硬件代码有所改变,这个时候就要对照txtsetup.sif文件手动修改,新驱动删除的硬件id就不能让txtsetup.sif 中还有相关配置,或者保留老驱动文件,为了对老爷机更好的支持,就必须让txtsetup.sif 硬件id的指向老驱动文件,新sata驱动带来的新硬件id就要自己手动添加进去,在这里存在老驱动文件和新驱动文件的硬件id重复问题,这也是工作量最大的地方,通常是把老驱动文件重新命名保存,然后找到硬件id重复的记录,优先让它指向新驱动,然而新驱动中删除的硬件id,就改成指向老驱动文件,一定要细心,否则出错的机率是相当大的。

曾经在制作"开始懂了"winpe奥运纪念正式版的时候,测试过从msdn原版的i386文件和深度winxp_sp3 9.0的i386文件中提取相关内核驱动,但是遇到容量问题,如果照这样做出来,内核文件是相当大的,会影响到winpe加载的速度,于是放弃了。接着研究了老毛桃911版本的内核驱动及各网友提供的winpe版本,让人失望的是,各网友的winpe版本都是用911的内核,甚至根本没有变化,还是2007年的驱动。于是找到深度r大的zpe系列驱动,发觉此人做的驱动精简了911,而且在一些位置上做了修正,并添加了一些新的,他的思路给了我启发,接着我把911内核提取出来,先修正911内核中错误的地方,然后手动添加了intel最新的南桥驱动,支持ich10r p45板子。然后在"开始懂了"奥运纪念正式版中发布,没想到网友们给我的回馈让我很高兴,在p45主板上都能正常使用,而且在一些"问题"笔记本上也能使用,接着又把amd最新的支持sb750南桥驱动添加进去并做了追加发布版本,拿到电脑城测试黑5+780g+sataii硬盘,启动一切正常。于是为了解决winpe启动速度慢的问题,便使用grub开始菜单加入usb2.0驱动启动,这样winpe启动只要10秒左右了,这一步费了很多精力,为了保证网友们下载后能正常使用,我用自己的u盘量产了不下20次,确保稳定性,虚似机是测试不出来的。

外置驱动:建议使用911原版本结构,使用一个wim外置包,效率和速度是最快的。很多网友把外置中的程序每个都打包成wim,wim的好处是不怕病毒,每一个程序或者驱动包都打包成wim,在运行的时候系统要进行反复的虚拟解压和挂载,效率可想而知,对小内存的用户影响更为明显,wim不能跟winrar和cab技术相提并论!sata驱动最好使用官方版本,从中提取后,一定要检查驱动配置文件,很多网友自己制作的驱动,包虽然是从官方版本中提取出来的,但就是在winpe中无法正常使用,问题的关键就是配置文件和压缩成cab的时候没有处理好inf中的相关配置。

关于修改pe的注册表

  要diy核心,修改注册表是肯定要会的,先找到system32目录下的setupreg.hi_,用winrar打开把里面的setupreg.hiv解压出来。打开开始菜单---运行----输入regedit,用鼠标选中hkey_local_machine项,然后单击文件---加载外部配置文件
  然后找到刚刚的那个setupreg.hiv加载,然后提示项名称,这里随便填,我填"!"方便区分。
  之后,你就可以修改!项里的注册表了,!项里的就是pe的注册表,修改完了后不要忘记卸载配置单元,选中!项,按文件—卸载配置单元。最后用cab把修改好的setupreg.hiv文件压缩再替换原文件即可。
  这一步主要是指修改winpe的注册表,可以直接修改winpe注册表,也可以修改配置文件。

  1、修改内部注册表的方法:

  用前面修改 pecmd.ini 的方法将内部注册表的文件提取出来:
  \wxpe\system32\config\*.*
  \wxpe\system32\setupreg.hi_ (这是cab压缩包,将它解开成 setupreg.hiv)
  运行注册表编辑器 regedit.exe,鼠标点击 hkey_local_machine,然后点“文件”-“加载配置单元”,打开提取出来的注册表文件(需要改哪个就加载哪个),提示挂载名时随便输入取一个名字如“winpe”,展开 hkey_local_machine 后里面就有一项 winpe,然后就跟普通的注册表操作一样了,改好后用鼠标点一下 “winpe”项目,然后“文件”-“卸载配置单元”,这个文件就改好了。用改过的注册表文件替换原来的。
 
 2、修改配置文件的方法:

  对于普通的不依赖于外置程序目录结构的注册表项目,可以用常规方法将修改项写成 reg 文件(可以直接从 xp 系统中导出,然后在其基础上修)。在外置程序目录下有个 regdoc.cmd,这个文件是毛桃用来注册外置程序文档关联的(就是改注册表),可以用记事本打开它,加入一行:
  regedit /s reg文件名
  则 winpe 加载外部配置时它会自动导入。
  这是最简单的改注册表的方法。但是如果要改的项依赖于外置程序的目录结构(比如要在右键菜单中添加用 ultraedit32 打开),就不能用上面的方法了,因为外置程序的绝对路径是不确定的(不同的机器中盘符不能确定)。这种情况就需要用原始的 reg 命令来做了(就跟老毛桃在regdoc.cmd 中的做法一样),这个命令的语法比较艰懂,且注册表键值的表示方法跟 reg 文件不同。在命令提示符下通过 /? 参数可以获得它的用法(中文的哦),提醒一下 /? 参数是个以多层使用的,如 reg /? 得到的是基本参数的说明,如用 reg add /? 则可得到 add 这个参数的用法……,有了这个命令的基础后,我们来看看是怎么解决不定路径问题的。在 regdoc.cmd 中有一个环境变量 %tp%,代表的是 regdoc.cmd 这个文件所在的路径。我们可以通过 %tp%\..\ 表示它的上层目录,%tp%\..\..\ 表示它的上两层目录。用此方法可以索引到外置程序目录内的所有路径,而不用考虑外置程序目录本身的绝对路径。还有个方法就是在 winpe.ini 中用 pecmd 的 regi 命令一行行添加,这个比系统的 reg 命令好理解些,同样可以用 %curdir% 环境变量来索引外置程序目录内的所有路径.直接修改的好处是启动 winpe 就是所需要设置,不依赖外部配置文件,winpe 的加载速度也比较快,但麻烦。修改配置文件则比较简单,但要依赖配置文件加载过程(直到加载到那些语句时才会生效),启动时需要额外的时间加载,相当于给系统打补丁去修改默认设置。

  一般情况下不推荐直接修改winpe注册表,麻烦,重新打包也比较花时间。但有些跟系统紧密的键必须直接修改才有效,比如屏幕分辨率,虽然在外面也可以修改有,但在登录时加载到它之前是无效的,那么在登录的过程中屏幕就会因切换分辨率而闪烁。

  自己修改注册表的前提是自己要知道所希望的改变要修注册表中的哪些键值。可以上网搜索,现在网上的这些资源多得是,实在找不到的话可以还可以用 regmon 之类的注册表监视软件来定位。比如修改记事本的自动换行,又不知道相应的键值在哪。可以先开启 regmon,然后在记事本中改变换行的选项,看 regmon 的监视结果,来定位是哪个键值。因为系统本身也在不断的更改注册表,regmon 中的显示会很多,但是通过不断的改变记事本中的设置,最终是可以找到的,这个过程需要的是耐心和细心。