首页 > 最新动态 >

为WinPE安装硬件驱动实例

作者:        时间: 2014-03-13 10:27:34         点击: 本日:1 本周:3 本月:3 总数:35

这里以Intel Matrix Storage Manager driver为例,以便于说明,以下描述的驱动文件名只基于本实例,实际操作中的具体的文件名称以需要添加的具体驱动为准
  一. 准备材料:
  1、原版驱动文件
  2、从PE中提取的txtsetup.sif文件

  二. 从PE中提取txtsetup.sif文件:
  先将PE中的winpe.is_重命名为winpe.cab,然后用RAR解压出winpe.iso
  用UltraISO打开它,将txtsetup.sif提取出来,并用记事本打开备用。

  三. 修改txtsetup.sif文件
  1.、打开驱动包,里面有一个扩展名为“.inf”或“.oem”的小文件,如“oemsetup.inf”或者“txtsetup.oem”等(本例中为“txtsetup.oem”),用记事本打开备用;
  2.、在txtsetup.sif中查找[SourceDisksFiles]字段,在其下添加iaStor.sys=1,,,,,,4_,4,1,,,1,4
  3.、查找[SCSI.Load]字段,在其下添加iaStor=iaStor.sys,4
  4、切换到刚才打开的txtsetup.oem,查找HardwareIds关键字,将该字段下的代码全部拷贝到txtsetup.sif文件的[HardwareIdsDatabase]字段末尾,但需要更改一下代码的格式,比如将id ="PCI\VEN_8086&DEV_27C3&CC_0104","iaStor"改为PCI\VEN_8086&DEV_27C3&CC_0104=iaStor
  5、查找[SCSI]字段,在其下添加iaStor="Intel(R) 82801FBM SATA AHCI Controller (Mobile ICH6M)"
  至此,修改txtsetup.sif文件部分完成,将修改后的sif文件替换原来的文件。

  四. 复制驱动文件
  将驱动文件iaStor.sys用makecab.exe压缩成iaStor.sy_并添加到PE的system32\DRIVERS目录下,然后将修改后的winpe.iso用makecab.exe重新压缩成winpe.is_替换原来的文件。
  至此整个添加驱动工作完成,重启动以测试成功与否。
  关于更详细的txtsetup.sif的用法,可以到精简区搜索,那里有不少教程,我这里就不多说了。
  关于修改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 命令来做了(就跟萝卜U盘在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 中的显示会很多,但是通过不断的改变记事本中的设置,最终是可以找到的,这个过程需要的是耐心和细心。



Tags:


如果您觉得 请用力
0%0
如果您觉得 请用力
0%0