Wim挂载驱动及挂载盘

查看 130|回复 13
作者:万人之上   
   
一、关于新老wim挂载驱动的总结
1、Wim老驱动方式:使用wimfltr.sys+相应的老的wimgapi.dll
2、Wim新驱动方式:使用wimmount.sys+相应的新版wimgapi.dll
3、以上两个版本的sys驱动可以同时注册,通过选择相应的wimgapi.dll来决定采用什么驱动来挂载;
4、虽然都是挂载,实际上工作原理上有很大的不同,老的方式相当于建立快捷方式,新的方式相当于复制(当然,与复制有点小不同就是真正用到时才复制);显然复制天生就是可写的,但目标位置要足够大,挂载速度也较慢,初次运行由于要把数据复制过来因此也比较慢,但再次运行由于数据已经复制到内存子肯定是很快的;建快捷方式当然是很快的,而且目标位置只相当于二传一下基本不占内存,如果要实现可写,要指定一个写的位置,有写需求时程序会自动把写的内容转移到这个可写的位置。而且一般要可写,原来的wim文件要位于可写介质上,显然如果wim文件在光盘上是不可写的,但有一个办法可以实现可写,就是把wim封装到IMG文件中,因为IMG文件通常被认为是硬盘镜像,所以程序会错误地认为wim位于可写介质,因而只要指定的保存写入数据的位置可写就能实现写功能;
5、在NT5时代,一般在PE中用IMDISK来产生一个用来挂载的盘,如B:或Y:等,再将wim文件挂载到这个盘上;到NT6时代这种方式也是可行的;但是如果NT6中要使用老驱动就会出现一种奇怪的现象,就是譬如将APP.wim挂到由imdisk产生的B盘或Y盘APP目录实际上挂到了根目录,必须写成挂到B:\APP\APP;于是大家又找到一种办法,用VHD文件来产生虚拟内存的Y盘或B盘,这样就能够正常挂载;
6、以上用VHD来产生虚拟盘也解决了在NT6系统中使用老驱动不能双击挂载运行的问题;但这种方式也有缺点,一个就是产生盘的过程比较慢;还有一个就是如果系统使用了原生的fbwf,由于VHD文件位于PE的X盘,而这个又受到了FBWF的加持,VHD文件挂载了就卸不下来,当然用嵌入式fbwf的系统没有这个问题。但是嵌入式fbwf虽然写入速度较快,但要多占内存并且切到admin用户不能自动建立用户目录,还要使用最三方工具;
7、说回到新老驱动,以上可见是各有优缺点,一般的有关WIM应用的软件默认使用windows\system32中的wimgapi.dll,因此这个地方放什么版本的就使用什么版本的驱动。像DISM、DISM++这类的工具一般是使用的新驱动,用老驱动会异常,这样就要求系统目录中使用的是新版wimgapi.dll,但PE的外置工具还是想用老驱动,这样就提出一个需求,挂载程序可以自由选择DLL,从而决定使用老驱动还是新驱动,群里的RXPE做了一个mt工具可以实现这个需要,不知同时有两种方式挂载的时候会不会有问题,需要经过测试。在这个工具前,PECMD实际上也可以选择DLL来挂载,但好象共存时不正常,譬如新驱动挂Y:\WIM下,老驱动挂Y:\APP下;
二、关于挂载盘的一些测试
1、挂载盘可以选择本地硬盘,但由于PE要适应各种环境,选本地硬盘肯定不合适,因此此处只讨论虚拟盘;
2、上述已经说了,Imdisk/VHD都有一些不足,有不有更好的替代?能够象VHD一样正常挂载(包括双击自动运行),又能够象imdisk一样灵活设置;
3、测试了几个ramdisk工具:GiliSoftRAMDisk(简称为G驱动吧)、Primo Ramdisk(P驱动)、UltraRAMDisk(U驱动),还有几个由于不能满足基本的挂载要求直接PASS了
A、G驱动:WIM挂载正常,双击正常运行,但没有命令行工具,且必须用其管理工具才能出盘;
B、P驱动:WIM挂载正常,双击正常运行,有专门的命令行工具,卸载和出盘均可采用命令方式实现,但不能象IMDISK那样自由扩充容量且数据不丢失;
C、U驱动:WIM挂载正常,双击正常运行,无专门的命令行工具,出盘可以注册表实现,但卸载不方便,扩充容量也不便;
4、显然,还是P驱动比较方便的;一般而言,老驱动可以选用P驱动或U驱动,新驱动可以选用imdisk和P驱动。
以下是U驱动与P驱动在PE中实现的方法及文件:

文件, 工具, 方式

noahhhh   
佩服H大的钻研精神 学习了
LnTrx   
谢谢分享
zrf1980   
前几天感谢hhh333的帮助我实现了集成p驱动的pe,p驱动算是挂载wim最好的驱动了
Windn0   
谢谢分享,学习一下
qiaobeier   
讚,THX~!,感謝分享 ^^ 感恩喔~~!
antclt   
感谢分享
MegrezZhu   
学习了
Lazy007   

感谢分享
hzzaiqyp   
进来学习一下
您需要登录后才可以回帖 登录 | 立即注册

返回顶部