无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 78339|回复: 105

PECMD.EXE通过配置文件挂接WIM映像的简单说明。

[复制链接]
发表于 2007-5-23 11:56:50 | 显示全部楼层 |阅读模式
  Microsoft Windows Imaging Format (WIM) 映像是MS新型的映像文件,具高压缩比、挂接方便、挂接内存小等特点。
在XP/2K3的PE中通过挂接WIM作为外置程序,可以避免外置程序受到病毒等因素的破坏,使外置程序更加安全可靠,同时
也可使对外发行的PE打包文件更小更简洁。

1、PE中的WimFltr组件
  在现行PE中增加挂接WIM文件的支持相当简单,无需修改TXTSETUP.SIF文件、也无需.INF文件,只需在注册表文件(SETUPREG.HIV)
增加两项服务,分别向SYSTEM32目录、DRIVERS目录复制两个文件即可,下面是WimFltr组件的文件列表:

I386
  |
  +---SYSTEM32
           |
           +-----WIMGAPI.DLL
           |
           +-----FLTLIB.DLL
           |
           +-----DRIVERS
                      |
                      +-----WIMFLTR.SYS
                      |
                      +-----WIMFSF.SYS

2、用PECMD.EXE挂接WIM映像的注意事项
  经本人无数次试验,得到这样的经验:在PE中开启WimFltr、FBWF两项服务时有先后之分,启动FBWF服务必须在启动WimFltr之后,
否则无法挂接WIM映像(包括用MS的IMAGEX.EXE也无法挂接WIM映像,原因不明)。所以,基于IMG格式的PE核心要保留适当的可写空间
(500K左右应足够了),同时在配置文件中尽早通过FILE命令删掉一些启动后无用的垃圾文件;基于ISO格式的PE核心要有一个可写的RamDisk(即以往的B:盘),因FBWF服务还没启动时无法将WIM挂接到X:盘中,只能挂接到RamDisk(B:盘)中。MOUN命令的格式如下:
MOUN [Wim文件名], <Mount目标目录>, [映像ID], [WimFltr临时工作目录]

其中蓝色的参数是必须的,红色的参数是可选项。
如果WIM映像是只读的(如在光盘中),红色的参数"WimFltr临时工作目录"必须省略,否则无法挂上WIM映像。
当设置WimFltr临时工作目录时表示RW(读写)方式挂载,这个目录建议设置到硬盘;
当省略WimFltr临时工作目录时表示(只读)方式挂载,挂载后的目标目录是可写的。

3、其它注意事项
  一旦挂上WIM映像后,建议不要用其它工具对原WIM映像读写(包括用RAR打包这类操作);如果机子内存不大,建议设置虚拟内存并将
临时文件夹设置到硬盘。

附件为WimFltr组件及注册表(WimFltr.REG.TXT)。

[ 本帖最后由 lxl1638 于 2007-8-26 03:15 PM 编辑 ]

WimFltr.RAR

230.39 KB, 下载次数: 15855, 下载积分: 无忧币 -2

评分

参与人数 1无忧币 +1 收起 理由
wanggen2008 + 1 很给力!

查看全部评分

发表于 2007-5-23 12:25:12 | 显示全部楼层
天啦,第一次坐老九的沙发

问一个偷懒的问题,按照microsoft白皮书上所说,如果wim文件存放在fat格式的分区上,只能挂接成只读的,不知老九的mount有没有解决这个问题。其实试验一下就可以知道答案的,所以偷个懒问一下。

[ 本帖最后由 armymangl 于 2007-5-23 12:36 PM 编辑 ]
回复

使用道具 举报

发表于 2007-5-23 12:44:56 | 显示全部楼层
老九又有好作品问世了,下来试用,支持!
回复

使用道具 举报

 楼主| 发表于 2007-5-23 12:49:49 | 显示全部楼层
原帖由 armymangl 于 2007-5-23 12:25 PM 发表
天啦,第一次坐老九的沙发

问一个偷懒的问题,按照microsoft白皮书上所说,如果wim文件存放在fat格式的分区上,只能挂接成只读的,不知老九的mount有没有解决这个问题。其实试验一下就可以知道答案的,所以偷 ...


本人示例的那个IMG是FAT32格式的,挂接后目录可写。当然PECMD.EXE不提供编辑WIM映像的功能。
即挂接后的目录是可写的,但这个读写操作不会破坏原来的WIM映像,也是必要的。
回复

使用道具 举报

发表于 2007-5-23 13:09:45 | 显示全部楼层
原帖由 lxl1638 于 2007-5-23 12:49 PM 发表


本人示例的那个IMG是FAT32格式的,挂接后目录可写。当然PECMD.EXE不提供编辑WIM映像的功能。
即挂接后的目录是可写的,但这个读写操作不会破坏原来的WIM映像,也是必要的。

只要能写就ok了,如果不能写,那么原来很多工具都要改变运行方式了。这样就很完美了

如果想保存对wim映象的改动,应该可以通过imagex /commit /unmount 在关闭pe前做到吧

——————————————————————————————————————————————
——————————————————————————————————————————————
试验了一下,在pe下直接用imagex /commit /unmount 卸载wim映象不能保存修改!!!
而且,正如老九所说,加载完fbwf后就不能挂接wim文件了。所以外置程序只能挂接一次,如果中途卸载了就必须重启才能加载。直接用pecmd的moun命令也不能再次加载wim映象,用imagex也不能再次把wim映象挂接到x盘下。
但是如果在pe下用imagex把wim映象加载到硬盘文件夹(不是x盘)下,就可以修改和保存了。因为imagex(包括pecmd的moun命令)同一时间只能有一个命令能操作同一个wim映象,要想用其他命令操作正在被另一个命令使用的wim映象,必须先结束原来的命令。也就是说wim映象只能被加载一次,要想修改wim映象必须先把wim映象从x盘卸载才行。如果卸载了wim映象,所有的外置程序也就没有了,所以在pe下修改wim映象是行不通的。
还有一个问题,imagex不支持显示中文,如果wim映象中有带中文的目录和文件,用dir命令是看不到的,只能挂接到硬盘下才能看到。

这就是俺的试验体会,不到之处请批评指正。
一个小建议:能不能实现在unmount的时候保存修改,就是在关闭pe前可以选择保留修改与否,当然默认的是不保留修改退出。留着这个功能给有需要的人YY也不错。

[ 本帖最后由 armymangl 于 2007-5-23 04:14 PM 编辑 ]
回复

使用道具 举报

发表于 2007-5-23 14:14:52 | 显示全部楼层
噢噢...坐板凳了....
WIM貌似不错哦..
回复

使用道具 举报

 楼主| 发表于 2007-5-23 16:47:54 | 显示全部楼层
原帖由 armymangl 于 2007-5-23 01:09 PM 发表

只要能写就ok了,如果不能写,那么原来很多工具都要改变运行方式了。这样就很完美了

如果想保存对wim映象的改动,应该可以通过imagex /commit /unmount 在关闭pe前做到吧

—————————————— ...


若将WIM映像挂接到硬盘中是可以同时挂接多个映像的。
可以将原来挂接的映像信息保存到系统级环境变量中,卸下时取环境变量中的数据来用,如

挂接映像:
ENVI $WIM1=%CurDrv%\WIM外置程序示例\PROGRAMS.WIM  `保存映像文件名
ENVI $MOUNTPATH1=%ProgramFiles%                                `保存目录名
ENVI $WIM1ID1=1                                                            `保存映像ID
moun %WIM1%,%MOUNTPATH1%,%WIM1ID1%                 `挂接WIM文件


卸下映像:
MOUN %WIM1%,%MOUNTPATH1%,-%WIM1ID1%


在PE下修改WIM文件极少用到的,为了WIM映像的安全,PECMD的MOUN命令在设计之初就不打算支持编辑WIM映像的功能,
通过PECMD卸下的映像不会被修改。

要PE下修改WIM映像可以使用其它工具,工具可以放在外置中。

[ 本帖最后由 lxl1638 于 2007-5-24 10:31 AM 编辑 ]
回复

使用道具 举报

发表于 2007-5-23 17:06:30 | 显示全部楼层
OK,我要赶快试试....
回复

使用道具 举报

发表于 2007-5-23 17:07:30 | 显示全部楼层
一定要把目录名改为i386吗? 比如wins或其它可以吗?
回复

使用道具 举报

发表于 2007-5-23 17:17:23 | 显示全部楼层
若将WIM映像挂接到硬盘中是可以同时挂接多个映像的。

我指的是同一个wim映象不能被挂接多次,而不是说不能挂接多个wim映象,不知你说的是不是这个意思。

还有我发现老九很善于用环境变量,但是这样感觉不是很直观,可能是用的少不习惯。

要PE下修改WIM映像可以使用其它工具,工具可以放在外置中

其实我也认为pe下编辑wim映象没多大实用价值,只不过觉得YY一下也不错:lol :lol

[ 本帖最后由 armymangl 于 2007-5-23 05:20 PM 编辑 ]
回复

使用道具 举报

发表于 2007-5-23 17:19:57 | 显示全部楼层
新的系统哈。。支持一个。。
回复

使用道具 举报

发表于 2007-5-23 23:19:06 | 显示全部楼层
这么好的东西没人光顾,可惜了
回复

使用道具 举报

发表于 2007-5-24 09:00:56 | 显示全部楼层
PE下修改WIM镜像是没啥价值的,但是如果需要用来备份恢复系统,建立WIM镜像还是很有有价值的
回复

使用道具 举报

 楼主| 发表于 2007-5-24 10:21:21 | 显示全部楼层
原帖由 goffi 于 2007-5-24 09:00 AM 发表
PE下修改WIM镜像是没啥价值的,但是如果需要用来备份恢复系统,建立WIM镜像还是很有有价值的


将这些工具(如IMAGEX.EXE)放到外置,PECMD没有必要集成这样的功能。

就算PECMD做得再好,也比不上MS的IMAGEX.EXE或专门处理WIM映像的工具,
PECMD能将WIM映像挂上就算是完成它的任务了。
回复

使用道具 举报

发表于 2007-5-24 11:24:31 | 显示全部楼层
这个功能应该相当于使用IMAGEX将镜像加载,就此种功能是取代了IMAGEX。

[ 本帖最后由 原名丢了 于 2007-5-25 06:49 AM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2007-5-25 20:55:55 | 显示全部楼层
似乎不要 WIMFSF.SYS 文件,不要注册表中的 WIMFSF 驱动,也可以在PE中挂接WIM,大家测试一下是不是这样?

网上几乎没有 WIMFSF 的资料,也不知道它的作用。
回复

使用道具 举报

 楼主| 发表于 2007-5-25 21:01:23 | 显示全部楼层
原帖由 原名丢了 于 2007-5-24 11:24 AM 发表
这个功能应该相当于使用IMAGEX将镜像加载,就此种功能是取代了IMAGEX。


的确是这样,因为有人提到用IMAGEX加载镜像会滞后,要确定这个滞后的时间才能执行下面的命令,
用IMAGEX加载镜像效率低,这是PECMD增加加载WIM镜像的原因。这样IMAGEX就可以不必放在PE的核心中了。

[ 本帖最后由 lxl1638 于 2007-5-25 09:02 PM 编辑 ]
回复

使用道具 举报

发表于 2007-5-25 22:09:21 | 显示全部楼层
原帖由 lxl1638 于 2007-5-23 12:49 PM 发表


本人示例的那个IMG是FAT32格式的,挂接后目录可写。当然PECMD.EXE不提供编辑WIM映像的功能。
即挂接后的目录是可写的,但这个读写操作不会破坏原来的WIM映像,也是必要的。

老九兄,人家问的是wim文件放在fat32分区时不能写,你好像会错意啦:L
回复

使用道具 举报

 楼主| 发表于 2007-5-25 22:39:35 | 显示全部楼层
原帖由 yanghere 于 2007-5-25 10:09 PM 发表

老九兄,人家问的是wim文件放在fat32分区时不能写,你好像会错意啦:L


不会吧,难道微软放弃FAT32分区了?
就去试。
回复

使用道具 举报

发表于 2007-5-25 22:44:50 | 显示全部楼层
请教老九,试过以iso方式在虚拟机里能moun成功吗,怎么做的?
老毛桃的iso我始终没有改成功(在虚拟机里mountrw不成功,mount可以),

1. 不用iso,用移动硬盘peldr+img,采用最新pecmd没问题.可以读写,没有用到ramdrv.
2.如果用iso方式(也是img),在vmware虚拟机里,pecmd moun 加载不行,我以为是光盘启动需要ramdrv的原因,又把它加上,还是不行,但试了imagex mountrw不行,如果mount的话则可以.
是什么原因呢?
回复

使用道具 举报

 楼主| 发表于 2007-5-25 22:53:14 | 显示全部楼层
刚试过:
WIM文件分别放在FAT32分区、NTFS分区。
PE映像分别是FAT32格式、NTFS格式的IMG。

四种组合,将WIM挂到X:盘的PROGRAMS目录,PROGRAMS都是可写的。

就目前所知,IMG格式的PE核心(可压成IM_,压缩率与ISO几乎没有差别)
配合WIM格式打包的外置程序是最理想的组合。
回复

使用道具 举报

发表于 2007-5-26 16:38:56 | 显示全部楼层
原帖由 songq 于 2007-5-25 10:44 PM 发表
请教老九,试过以iso方式在虚拟机里能moun成功吗,怎么做的?
老毛桃的iso我始终没有改成功(在虚拟机里mountrw不成功,mount可以),

1. 不用iso,用移动硬盘peldr+img,采用最新pecmd没问题.可以读写,没有用到ramd ...

mountrw是可读写,mount是只读
如果用iso模式是不能写的,所以挂接不成功
你可以把挂接点选在硬盘上,或者你的ramdrive上试试
回复

使用道具 举报

 楼主| 发表于 2007-5-26 18:19:47 | 显示全部楼层
PECMD V2.8.6版可以挂载光盘上的WIM文件了,这是在虚拟机测试过的,实机没测试,也应可以。
回复

使用道具 举报

发表于 2007-5-27 11:22:25 | 显示全部楼层
我看了一下微软cn_windows_vista_windows_automated_installation_kit_dvd-DRL.iso中的说明文档,确实有“仅可在 NTFS 文件系统上使用读/写权限来装载 .wim 文件”的说法
20070527111844796.png
回复

使用道具 举报

 楼主| 发表于 2007-5-27 11:58:10 | 显示全部楼层
原帖由 yanghere 于 2007-5-27 11:22 AM 发表
我看了一下微软cn_windows_vista_windows_automated_installation_kit_dvd-DRL.iso中的说明文档,确实有“仅可在 NTFS 文件系统上使用读/写权限来装载 .wim 文件”的说法


一直想下载Windows AIK,太大了,700多M。

在PE中挂载.WIM目的不是为了编辑,能只读方式挂上就够了,也可防止外置程序包被破坏。
回复

使用道具 举报

发表于 2007-5-27 12:36:45 | 显示全部楼层
原帖由 lxl1638 于 2007-5-27 11:58 AM 发表


一直想下载Windows AIK,太大了,700多M。

在PE中挂载.WIM目的不是为了编辑,能只读方式挂上就够了,也可防止外置程序包被破坏。

俺有一个,要不要给你一份;P ;P
回复

使用道具 举报

 楼主| 发表于 2007-5-27 12:58:28 | 显示全部楼层
原帖由 armymangl 于 2007-5-27 12:36 PM 发表

俺有一个,要不要给你一份;P ;P


先给个硬盘再说,本人机子只有40G破硬盘,个个分区都吃饱了,就只有人没法吃饱。
回复

使用道具 举报

发表于 2007-5-27 13:15:05 | 显示全部楼层
原帖由 lxl1638 于 2007-5-27 12:58 PM 发表


先给个硬盘再说,本人机子只有40G破硬盘,个个分区都吃饱了,就只有人没法吃饱。

同情……,俺的60,也不大,想不到老九比我还;P
回复

使用道具 举报

发表于 2007-5-27 17:31:26 | 显示全部楼层
支持   好东西 学习一下!!!谢谢!!
回复

使用道具 举报

发表于 2007-5-28 23:16:00 | 显示全部楼层
:D 老大都好谦虚,学习,谢谢你们的无私分享,我来顶帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-3-28 20:34

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表