在很多包含多个WinPE组合的ISO光盘镜像中,我们会发现有这么一个特点:所有的WinPE共享使用同一个后缀为WIM的压缩包作为外置程序。这样的好处显而易见,可以方便维护外置程序、节省ISO镜像文件空间。
下面就来讲讲如何实现在Win10PE中加入挂载WIM映像文件的功能。
Win10PE需要支持创建虚拟内存盘功能,可以集成ImDisk,步骤可以参考此帖:https://pecmd.net/thread-107.htm。当然,如果你不想集成的话,使用完整的PECMD也可以(PECMD已内置ImDisk,但需要cabinet.DLL)
在挂载WIM文件之前,你的WinPE必须要准备一个可供使用的临时分区,一般都是利用ImDisk功能去创建了一个临时分区,常见的盘符是B:、Y:等(我不赞成占用A:、B:盘符)。
集成了ImDisk之后,可以使用PECMD的RAMD命令创建一个盘符为Y,大小为5MB,卷标为ImDisk的临时分区:
RAMD ImDisk,L5,FAT,Y:,ImDisk,,1
RAMD的具体用法可以参见下图:
有一点要注意:使用ImDisk方式创建的分区在挂载WIM时需要两级同名目录,读取时只需一级目录。
目前只要是支持挂载WIM文件的WinPE中,基本上都是使用了Wimfltr驱动方式。
如果你使用工具创建出一个Win10PE时,它并不包含Wimfltr驱动,此时就需要我们事先集成Wimfltr驱动了。
Wimfltr驱动完整文件列表:
此处内容隐藏,登录后可见!立即登录 登录后请刷新页面!刷新
Windows从V6.1.7000.0版本开始就已经使用Wimmount驱动处理WIM映像文件了。跟Wimfltr方式相比,它可以同步使用系统自带的DISM命令来操作WIM映像文件,但是缺点也很明显,那就是挂载一个WIM文件所需要占用的内存跟WIM解压之后所占用的体积一致。这也是基本上所有WinPE要么使用Wimfltr驱动去挂载WIM文件,要么直接将程序内置到WinPE中的原因。
基本上你看不到有WinPE会使用Wimmount驱动去挂载外置程序,因为太消耗内存了。
由于Wimmount驱动是Win10PE原生特性,所以不需要对WinPE进行改造。
我们不一定必须使用ImDisk去创建虚拟内存盘,完全可以使用VHD方式。下面看一下PECMD的MOUN命令帮助:
使用下面的命令可以创建一个虚拟内存盘:
最后给出的建议是:
如果你的WinPE定位是装机维护,同时ISO光盘不会包含很多其他版本的WinPE(例如WinXP PE、Win7PE等),没有必要去使用挂载WIM的方法增加外置程序。
32位WinPE使用32位的程序,64位的WinPE使用64位的程序,还能实现随时移除启动盘的效果。(挂载WIM后将无法移除启动盘,否则已挂载的程序将不可用)
如果确实需要挂载WIM文件,请避免使用wimgapi.dll或DISM。
当你的WIM体积很小,也使用7-Zip直接解压缩你的外置到X盘进行使用。
非常感谢管理员的这篇文章,我真的很想学习创建winpe,只有这个论坛回复和免费下载大。
加载外置,再PE桌面上创建一个加载的快捷方式 如何双击就阔以 加载外置的工具和驱动 有没有详细的教程 参考一下。。
狼人72105 加载外置,再PE桌面上创建一个加载的快捷方式 如何双击就阔以 加载外置的工具和驱动 有没有详细的教程 参考一下。。
将所有的命令放到一个INI配置文件里,再将它创建为一个快捷方式,直接指向PECMD LOAD XXX.INI
好文章,值得好好学习。
这样就可以挂载到X盘了是吧
再问下 一般的PE 都是RAMDISK的 有些不是 是专有一个分区 求解区别
935254524 这样就可以挂载到X盘了是吧
不能挂载到X盘,必须挂载到其他分区
935254524 再问下 一般的PE 都是RAMDISK的 有些不是 是专有一个分区 求解区别
有独立分区用来挂载的一般是使用了文章中提到的两种驱动进行挂载。
你好版主,按教程做了一遍,很奇怪,没成功。第一次是把wimfltr64的注册表文件离线导入的,没有创建vhd,pe里我手工运行,提示diskpart遇到错误拒绝访问,看了下x盘不能写入文件,pecmd甚至都不能正确写出日志。第二次不导入注册表,故障同上。请问,加载注册表和注册inf文件的时机有什么要求吗?
win8pe没这么多问题啊
dhwc 你好版主,按教程做了一遍,很奇怪,没成功。第一次是把wimfltr64的注册表文件离线导入的,没有创建vhd,pe里我手工运行,提示diskpart遇到错误拒绝访问,看了下x盘不能写入文件,pecmd ...
先确认待改造的winpe是否能正常使用diskpart吧,如果不添加任何文件是否都正常?
导入的注册表文件仅仅是添加服务,如果没手动启动服务不会对winpe有影响。
看你的描述可能是打包的问题?可以什么都不做重新打包确认一下。
谢谢解答,我来一步步的重做看下