无忧启动论坛

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

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

[复制链接]
跳转到指定楼层
1#
发表于 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, 下载次数: 15858, 下载积分: 无忧币 -2

评分

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

查看全部评分

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

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


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

使用道具 举报

3#
 楼主| 发表于 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 编辑 ]
回复

使用道具 举报

4#
 楼主| 发表于 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映像挂上就算是完成它的任务了。
回复

使用道具 举报

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

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

使用道具 举报

6#
 楼主| 发表于 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 编辑 ]
回复

使用道具 举报

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

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


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

使用道具 举报

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

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

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

使用道具 举报

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

使用道具 举报

10#
 楼主| 发表于 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目的不是为了编辑,能只读方式挂上就够了,也可防止外置程序包被破坏。
回复

使用道具 举报

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

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


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

使用道具 举报

12#
 楼主| 发表于 2007-5-29 11:11:07 | 显示全部楼层
原帖由 armymangl 于 2007-5-29 12:46 AM 发表

你已经不错了,俺的才20G,用了4年啦,没钱换个大的


问个很严肃的问题:
如果pe核心是iso格式的,能不能把wim映象moun到x盘下??
有人反映这个问题,好像是不行,不知老九能否从原理上解释一下。


http://bbs.wuyou.net/forum.php?mod=viewthread&tid=106181&extra=page%3D2

看看第2点。
回复

使用道具 举报

13#
 楼主| 发表于 2007-7-13 03:11:46 | 显示全部楼层
原帖由 netwinxp 于 2007-7-13 03:01 AM 发表
当WIM文件很大时,读取分卷信息要花较长时间,估计挂接也要花较长时间。


这个不会,你可以试试WimTool,绝对0.5秒内挂上Vista的WIM
回复

使用道具 举报

14#
 楼主| 发表于 2007-9-7 10:51:14 | 显示全部楼层
47楼,不能挂到PECMD的父目录
48楼的问题,详细帖出你的配置文件和WIM信息。
回复

使用道具 举报

15#
 楼主| 发表于 2007-9-7 12:14:44 | 显示全部楼层
你再将WIM文件内的文件目录列出来看看,也可打包后帖上来。
回复

使用道具 举报

16#
 楼主| 发表于 2007-9-7 12:29:49 | 显示全部楼层
注册表中的CMDLine改成 PELOGON.EXE  PATH\PECMD.EXE  LOAD  PATH\PECMD.INI
红色两次如果有空格,必须用"号包起来,设计是的原理是这样,但没有真正试验过。

[ 本帖最后由 lxl1638 于 2007-9-7 12:32 PM 编辑 ]
回复

使用道具 举报

17#
 楼主| 发表于 2007-9-7 12:33:33 | 显示全部楼层
原帖由 netwinxp 于 2007-9-7 12:31 PM 发表
还有挂接的目录原来必须为空吗?

是的,必须是空目录。你用WimTool试试就知道了。
回复

使用道具 举报

18#
 楼主| 发表于 2007-9-7 17:02:33 | 显示全部楼层
原帖由 xdg3669 于 2007-9-7 01:03 PM 发表
有个说明的是挂载的根目录%CurDrv%和wim、pecmd.ini文件同在一个分区,要挂载到根目录却跑到了WIM的所在文件夹,挂载成功后wim、pecmd.ini文件被隐了,退出PE后又可以找到他们了,也好,可以把挂载的wim文件保护 ...



你用WimTool将图中红色按钮的信息发上来.

未命名.PNG (34.91 KB, 下载次数: 179)

未命名.PNG
回复

使用道具 举报

19#
 楼主| 发表于 2007-9-7 17:32:41 | 显示全部楼层
好象都没有错误啊,不知是什么原因了,是不是硬盘上还有其它配置文件?
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-28 03:49

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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