chiannet 发表于 2013-7-19 12:32:33

【20130906自动化程度大幅提高】给Windows 8 PE(X86 X64通吃)追加OEM 驱动

本帖最后由 chiannet 于 2013-9-22 17:12 编辑

此法适用于X86或X64的Win7/8下给 X64或X86 win8PE 追加OEM SRS 驱动,可以是磁盘控制器、网卡、无线网卡、声显卡、蓝牙等等。



A、前期准备工作


1、自备Beyond Compare。

2、自备MSDN windows 8 X64 (X86) RTM ISO内的resource下的 boot.wim,X64\WIM或X86\WIM;

   我用的是我的HP win8笔记本rocover分区的里的boot.wim来搞的(该本子原本是OEM win8 X64,但寡人实在用不惯Win8,就安装了X64 win7,但rocover分区的内容一直没动它,保留在那里,哪天一高兴,还可以可以恢复为win8)

3、安装Windows ADK For Windows 8
      Windows评估和部署工具包 (Windows ADK) For Windows 8, 从MS官网下载完整的部署包太大了,速度又慢,我们现在只需要一个部署工具就足够了。按照下列方法选择性在线安装,下载量不到40M。先从MS官网下载这个在线安装程序adksetup.exe,然后cd到adksetup.exe所在的目录,键入以下命令:
adksetup /installpath c:\ADK /features OptionId.DeploymentTools大意是把仅把ADK组件中的DeploymentTool安装到C:\ADK。

其他部署工具的featureID为:
功能                                                                            标识符
应用程序兼容性工具包 (ACT)                               OptionId.ApplicationCompatibilityToolkit
部署工具                                                            OptionId.DeploymentTools
Windows 预安装环境 (Windows PE)                     OptionId.WindowsPreinstallationEnvironment
用户状态迁移工具                                                OptionId.UserStateMigrationTool
批量激活管理工具 (VAMT)                                    OptionId.VolumeActivationManagementTool
Windows 性能工具包 (WPT)                                 OptionId.WindowsPerformanceToolkit
Windows 评估工具包                                          OptionId.WindowsAssessmentToolkit
Windows 评估服务 - 客户端                                  OptionId.WindowsAssessmentServicesClient
Windows 评估服务                                                OptionId.WindowsAssessmentServices
Microsoft? SQL Server? 2012 Express               OptionId.SqlExpress2012
.NET Framework                                                    OptionId.Netfx


4、自备待集成的驱动,集中放置在X64\MY_Driver或X86\MY_Driver下
   集成前要稍微处理下驱动inf:由于NT6可原生驱动AHCI 控制器,那些类似于PCI\VEN_8086&DEV_1E03&CC_0106的HWID是可以屏蔽的,不需要集成的,12.7及更新版RST驱动XXCC_0104 Raid控制器集合是必须的(某些超级本的混合磁盘就要用的新版RST来驱动,win8原配的iastorv的支持列表虽有该HWID,但是支持不了!!),还有下列特征的企业版RST
Abstract:Windows* INF File for SCU Intel(R) Rapid Storage Technology Enterprise Driver
            Installs: RSTe SCU RAID Controller Miniport (without RST Filter Driver)
               Only for Windows 8 releases
DriverVer=11/02/2012,3.6.0.1090 驱动,拥有win8 内部iastorv所不支持的C600系列Raid控制器的驱动,我想这个也是必须要集成的。

5、自备你自己的PE的注册表文件,放置到X64\REG或X86\REG下


B、开始工作了

1、以管理员身份运行下列批处理
<P>@Echo Off
COLOR 2F
cd /d "%~dp0"
SETLOCAL
echo.
echo.
echo========================================
echo请选择要整合驱动的8PE的类型,然后按回车
echo========================================
echo.
echo.
CHOICE /C 1234 /M ":64位请按1; 32位请按2; 64位和32位请选择3; 放弃请按4。"
IF "%errorlevel%"=="4" goto :exit
IF "%errorlevel%"=="3" goto :Both
IF "%errorlevel%"=="2" goto :X86
IF "%errorlevel%"=="1" goto :X64
goto exit</P>
<P>:X64
set P=X64
GOTO START</P>
<P>:X86
set P=X86
GOTO START</P>
<P>:Both
SET EI=YES
GOTO X64</P>
<P>:START
Echo.
ECHO 正在创建临时目录及准备文件......
if exist %windir%\SysWOW64 (set PTH=amd64
) else (
set PTH=x86
)
set PTH="C:\ADK\Assessment and Deployment Kit\Deployment Tools\%PTH%\DISM\</P>
<P>if not exist %PTH%" (
Echo. 未安装ADK\Assessment and Deployment Kit或请指定实际的安装路径。
goto :Exit
)
copy %P%\WIM\boot.wim %P%\WIM\bootB.wim /y
if not exist %P%\WIM\bootB.wim (
Echo. 复制%P%\WIMBOOT.WIM副本失败!!!!
goto :Exit
)
RD .\Boota /S /Q>NUL 2>NUL
RD .\bootb /S /Q>NUL 2>NUL
md .\Boota
md .\bootb
Cacls .\boota /t /e /c /g everyone:f >NUL 2>NUL
Cacls .\bootb /t /e /c /g everyone:f >NUL 2>NUL
CLS
</P>



2、 集成驱动
<P>copy .\%P%\reg\SOFTWARE.\Boota\windows\system32\config /Y >NUL 2>NUL
copy .\%P%\reg\SYSTEM.\Boota\windows\system32\config /Y >NUL 2>NUL</P>
<P>Echo.
ECHO 确认驱动文件放在%P%\MY_Driver目录或其子目录下
Echo.
ECHO 按任意键开始集成驱动文件......
Pause >nul
%PTH%dism.exe" /Image:.\boota /Add-Driver /Driver:%P%\MY_Driver /recurse /ForceUnsigned
ECHO 按任意键继续......
Pause >nul
CLS
Echo.</P>






3、用BC捞取D:\boota\Windows 与D:\bootb\Windows 的区别



以下8个目录需要给予访问权限,否则BC可能访问不了,也就不能列出变化之处
D:\bootx\Windows\System32\catroot
D:\bootx\Windows\System32\Drivers
D:\bootx\Windows\System32\DriverStore
D:\bootx\Windows\System32\config
X=a、b


D:\boota\Windows\Inf
D:\boota\Windows\System32\catroot
D:\boota\Windows\System32\Drivers
D:\boota\Windows\System32\DriverStore
D:\boota\Windows\System32\config

D:\bootb\Windows\Inf
D:\bootb\Windows\System32\catroot
D:\bootb\Windows\System32\Drivers
D:\bootb\Windows\System32\DriverStore
D:\bootb\Windows\System32\config主要体现在以上几个 对应目录的文件变化

   对于Windows\System32\config,我们只需关心SOFTWARE及SYSTEM两个文件的变化就够了,其余的不用理会。
上述 Windows\System32\config之外其它几个目录只需关心D:\boota\Windows相对于D:\bootb\Windows孤立的文件就可以了,其余的不用理会。


如果D:\boota\Windows在BC对比窗口右侧,我们只需显示右侧较新及右侧孤立的文件就OK了



把变化的文件用BC复制出来,追加到你的X64PE 启动WIM内。






C、扫尾
不保存卸载.wim 文件:ECHO 正在卸载WIM镜像文件,请稍候....
Echo.
%PTH%dism.exe" /unmount-Wim /MountDir:".\Boota" /discard
%PTH%dism.exe" /unmount-Wim /MountDir:".\bootb" /discard





该批处理文件及SKYPE MAX版 X64及FAST_UD内的X86 PE集成的驱动文件在这里:




完整版在这里,包含上述文件外,还包括:
1、SKYPE X64 8PE和SKYPE X86 8PE的注册表文件;
2、来自HP本的一个X64 8PE BOOT.WIM及MSDN X86 8PE的BOOT.WIM;
完整版
X86+X64 8PE集成OEM驱

cheong0hk 发表于 2013-7-19 15:17:59

学习了 感谢

longdoushi100 发表于 2013-7-19 12:42:19

经典
学习了
感谢c大

caocaofff 发表于 2013-7-19 16:58:27

好,呵呵。。。

chiannet 发表于 2013-7-19 17:05:57

caocaofff 发表于 2013-7-19 16:58 static/image/common/back.gif
好,呵呵。。。

刚弄了一个半自动的成品批处理

sp_star 发表于 2013-7-19 18:06:23

你可以先将dism及支持文件拷贝到pe里,集成驱动后再删除。这样更简单吧?

ayyllll 发表于 2013-7-19 22:59:09

本帖最后由 ayyllll 于 2013-7-19 23:02 编辑

找一个可以整合驱动的PE进行测试,确定哪几个目录整合驱动后会变化,可用比对软件确定。楼主用的是原版的BOOT.WIM。
Windows\Inf
Windows\System32\catroot
Windows\System32\Drivers
Windows\System32\DriverStore
Windows\System32\config
假定借用可以整合驱动的PE叫A-PE,要整合的骨头版PE叫做B-PE。
1\解压A-PE的WIM的全部内到到目录X,将目录X里面INF等五个文件夹删除掉,将要整合驱动的B-PE(WIM文件事先解压到目录Z)的INF等五个文件夹复制到目录X中的相应位置。
2\复制目录X一份,改复制副本名为目录Y。
3\用DISM给目录X整合驱动。
4\将目录X中的Inf等5个文件夹复制回到目录Z的相应位置,替换原来的。
5\用对比软件对比目录X和目录Y,看看除了五个文件夹外,还有哪些文件发生了变化。有变化的文件也复制到目录Z的对应位置。
6\打包目录Z成WIM文件。

chiannet 发表于 2013-7-19 23:56:11

本帖最后由 chiannet 于 2013-7-19 23:58 编辑

ayyllll 发表于 2013-7-19 22:59 static/image/common/back.gif
找一个可以整合驱动的PE进行测试,确定哪几个目录整合驱动后会变化,可用比对软件确定。楼主用的是原版的BO ...

我去年发过一个借尸还魂法为win7 PE 集成SRS及USB 3.0驱动就是与你说的这个步骤类似。但我这几天测试了,对win8PE貌似不灵光。所以才发了这个贴。


无垠 发表于 2013-8-10 07:59:18

继续学习,向前辈大师致敬!

lgze 发表于 2013-9-3 21:59:15

好方法,认真学习中……谢谢!

糊涂 发表于 2013-9-4 08:01:10

纯支持!

lgze 发表于 2013-9-5 23:20:34

C大,有几点不懂的,恳请指点:1,OEM SRS驱动通过什么途径可以找到,集中到myoemdrv中要什么样的格式。2,无垠老大的X64WIN8PE-RAID-SRS单版有我需要的磁盘驱动,有什么办法可能提取出来,谢谢!

devilma 发表于 2013-9-5 23:51:12

强大啊。。学习了,谢谢

chiannet 发表于 2013-9-6 09:49:54

lgze 发表于 2013-9-5 23:20 static/image/common/back.gif
C大,有几点不懂的,恳请指点:1,OEM SRS驱动通过什么途径可以找到,集中到myoemdrv中要什么样的格式。2, ...

你好,所谓OEM驱动,本来特指硬件芯片制造商提供驱动给板卡硬件制造商的驱动文件或板卡硬件制造商自己优化开发的驱动程序。本文还包括硬件芯片制造商提供的经WHQL认证的或官方正式发布的版本。

fukystone 发表于 2013-9-6 13:32:27

一个小疑问,那些驱动可不可以进系统后再安装?
因为目前没碰到不能识别的机器,所以对驱动这块不太了解,按照以前对win8的理解,应该是可以进pe后再安装oem驱动的,不过从来没机会试过,老大有没有试过进pe安装oem驱动?

lgze 发表于 2013-9-6 13:46:10

C大,您太伟大了,感谢!

chiannet 发表于 2013-9-6 19:53:43

fukystone 发表于 2013-9-6 13:32 static/image/common/back.gif
一个小疑问,那些驱动可不可以进系统后再安装?
因为目前没碰到不能识别的机器,所以对驱动这块不太了解, ...

你说的对全内内置型PE完全木有问题。

问题在于,如果安装外置型PE到本地硬盘使用,在安装磁盘控制器驱动前,PECMD加载不了磁盘上的外置,会变成光棍PE。

longdoushi100 发表于 2013-9-7 16:57:23

老大辛苦,学习

zhczf 发表于 2013-9-7 17:16:26

C大做的PE真好用啊,支持了

2012ivy 发表于 2013-9-14 12:47:04

我想问下,这个方法适用于网卡驱动的集成吗?

chiannet 发表于 2013-9-15 06:53:14

2012ivy 发表于 2013-9-14 12:47 static/image/common/back.gif
我想问下,这个方法适用于网卡驱动的集成吗?

当然可以

2012ivy 发表于 2013-9-15 09:32:40

chiannet 发表于 2013-9-15 06:53 static/image/common/back.gif
当然可以

网卡的inf文件需要处理吗?

chiannet 发表于 2013-9-15 10:33:38

2012ivy 发表于 2013-9-15 09:32 static/image/common/back.gif
网卡的inf文件需要处理吗?

不需要。只要要的是数字签名认证的for win8 驱动

糊涂 发表于 2013-9-22 08:01:52

百度网盘的部分链接修正一下吧

gybaby123 发表于 2013-9-22 16:32:51

經典,感謝樓主分享,辛苦了

ernesthan 发表于 2013-9-22 20:30:32

其实用沙盘并且禁止删除沙盘文件会正简单,更给力哦!!

yfwang0798 发表于 2013-9-23 13:11:59

本帖最后由 yfwang0798 于 2013-9-23 14:34 编辑

重复了,请删除

yfwang0798 发表于 2013-9-23 13:25:10

本帖最后由 yfwang0798 于 2013-9-23 14:36 编辑

重复了,请删除

yfwang0798 发表于 2013-9-23 13:39:31

本帖最后由 yfwang0798 于 2013-9-23 14:40 编辑

重复了

yfwang0798 发表于 2013-9-23 14:24:59

本帖最后由 yfwang0798 于 2013-9-23 14:28 编辑

感谢楼主的分享,看了几遍,感觉第二段集成驱动前面应该有代码
例如:
02.<P>copy .\%P%\reg\SOFTWARE.\Boota\windows\system32\config /Y >NUL 2>NUL

语句中 .\Boota\windows等文件夹如何而来,没有交代清楚。是使用imagex解压wim文件得到的吗?

17.IF "%errorlevel%"=="1" goto :X64
似乎应该修改为
IF "%errorlevel%"=="1" goto X64
没有冒号。不知是否正确,请指点
页: [1] 2
查看完整版本: 【20130906自动化程度大幅提高】给Windows 8 PE(X86 X64通吃)追加OEM 驱动