在WinPE上巧装SATA驱动的好办法

网络整理 - 07-26
WinPE系统最关键的就是内核驱动和外置驱动,内核驱动主要就是南桥驱动,针对RAID、SATA,以及AHCI,这是WinPE最关键的部份,主要是让WinPE能够识别系统的SATA硬盘和RAID磁盘阵列,添加/集成在WINPE.IS_/SYSTEM32/DRIVERS/中,相关驱动的配置在txtsetup.sif中,这里只简单介绍txtsetup.sif的配置。

      关于安装配置文件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中的相关配置。