WINPE集成SCSI/RAID驱动

 

服务器故障,想COPY C区数据!看来只有用winpe这条路了!

 

    Windows Preinstallation EnvironmentWinPE)(Windows预安装环境)基于在保护模式下运行的WindowsXP个人版内核,是一个只拥有较少(但是非常核心)服务的Win32子系统。这些服务为Windows安装、实现网络共享、自动底层处理进程和实现硬件验证。本身winpe里面是没有RAID驱动的,从而造成启动系统后,无法识别磁盘阵列。虽然网上有集成部分RAID驱动的winpe下载,但有部分RAID卡仍然无法识别,这样只能自己手工添加RAID驱动

 

    PE最关键的就是内核驱动和外置驱动,内核驱动主要就是南桥驱动.针对RAID.SATA.以及AHCI,这是PE最关键的部份.主要是让PE能够识别系统的硬盘和RAID磁盘阵列,集成在WINPE.IS_/SYSTEM32/DRIVERS/..相关驱动的配置在txtsetup.sif..

 

    本文用到cmd下的两个命令:Expand 解压缩命令 和 Makecab 压缩命令 以及 UltraISO软件。

1. 运行CMD>CD /D D:\RAIDPE,用EXPAND WINPE.IS_ WINPE.ISO 解压缩得到WINPE.ISO文件;(或者先将winPE中的winpe.is_重命名为winpe.cabwinpe.rar后,解压出winpe.iso)用UltraISOWINPE.ISO中把TXTSETUP.SI_文件提取出来,然后同样解压缩 EXPAND TXTSETUP.SI_ TXTSETUP.SIF,得到TXTSETUP.SIF文件。

2. 找到RAID驱动文件,例如 LSI Logic MegaRAID SAS 8308ELP For WIN2003RAID驱动文件megasas.sys;然后用命令 MAKECAB megasas.sys megasas.sy_ 压缩一下文件,把压缩后的megasas.sy_放入UltraISO打开的WINPE.ISO里面的SYSTEM32\DRIVERS文件夹。

 

3. 用记事本打开RAID驱动的txtsetup.oem文件,把[HardwareIds.scsi.xxx]字段的所有行做下面字符替换:
变换前格式: MEGASAS = "PCI\VEN_1000&DEV_0411&SUBSYS_10011000", "megasas"
变换后格式: PCI\VEN_1000&DEV_0411&SUBSYS_10011000="megasas"
也就是把 “MEGASAS = "” 替换为空, “", ”替换为“=”,然后把这些以PCI\VEN_开头的所有行复制一下。

 

4. 打开TXTSETUP.SIF文件,里面有4个字段需要添加新RAID驱动内容:
[HardwareIdsDatabase]
硬件标识字段
[SCSI]
驱动描述字段
[SCSI.Load]
驱动加载字段

[SourceDisksFiles] 驱动文件位置字段

a.先在[HardwareIdsDatabase] 字段末尾新行把刚才复制的PCI\VEN_开头内容粘贴上去;
b.
然后在[SourceDisksFiles]字段末尾加上新行:
megasas.sys = 1,,,,,,4_,4,1,,,1,4
c.
[SCSI.Load]字段末尾加上新行:
megasas=megasas.sys,4
d.
[SCSI]字段末尾加上新行:
megasas="LSI MegaRAID SAS RAID Controller Driver"

保存TXTSETUP.SIF文件后用命令 MAKECAB TXTSETUP.SIF TXTSETUP.SI_ 压缩并把WINPE.ISO里面的TXTSETUP.SI_用这个修改后的文件替换掉。

 

5. UltraISO的保存按钮,然后用命令 MAKECAB WINPE.ISO WINPE.IS_ 压缩一下再替换掉原来的WINPE.IS_文件。