无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 35895|回复: 107
打印 上一主题 下一主题

[推荐] 改进YY版PE: 用Vista的WIM技术,建立Programs.wim外置程式镜像

[复制链接]
跳转到指定楼层
#
发表于 2007-5-18 13:38:40 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
老毛桃/老九的YY版PE(配合PECMD)加外置程式和驱动似乎成为了现今无忧的主流PE。 最近下载了老毛桃的杨州版和03版本进行研究,觉得它们最大的特点在于够精简和方便,包含了不少SCSI/SATA/RAID的硬盘驱动于系统核心之中。我认为仍有以下空间可以改进:

1. 增设RAMDRIVE:老毛桃/老九可能认为采用了FBWF使得系统光盘可进行文件读写,就没有必要再保留RAMDRIVE了。我认为不是这样, FBWF服务只可以容许进行文件读写操作,但不能像RAMDRIVE服务一样全面性摹拟一个可读写的磁盘。有一些操作(如imageX /mountrw)在执行前会先检查目标盘,发觉是光盘时就会拒绝执行,虽有FBWF服务也于事无补。所以RAMDRIVE还是有需要的。况且FBWF服务只是向系统申请一个空间,不是对RAM固定占用,所以可以同时设定RAMDRIVE和FBWF而不会多占用内存。

2. 改变环境变量temp和tmp,使其指向RAMDRIVE B:。也需修改注册表,使其较好地支持繁体中文,输入法热键等等。

3. 增设WimFltr服务和imageX,以便对Vista类型镜像WIM的全面支持。

4. 用Vista的WIM技术,建立Programs.wim外置程式镜像: 老毛桃的外置程序文件夹(\Programs\*.*)是放在CD或者硬盘上面的,很多用了WinRAR进行自解压缩以便节省空间。现在我们有了RAMDRIVE和WimFltr服务,可用imageX把众多的程序文件夹压缩成一个外置程式镜像,PE运行时把它外挂到RAMDRIVE B:去。WIM镜像有很好的压缩比率,60MB的外置程序可压缩成35MB的WIM。因为Programs.wim只是外挂,它并没有真正的占用B:盘的空间,所以一只16MB的B:盘挂上60MB的外置程序后仍然有16MB的空间,十分神奇吧?!这样做除了节省空间的特色外,还有把外置程序隐蔽使其不易外露或者被更改的好处。

5. 增加一脚本,使PE可以自动或者手动搜索硬盘、光盘上的Programs.wim或者\Programs外置程序夹。

6. 把PE的文件和文件夹重新恢复标准化:WXPE恢复成I386,TXTSETUP.SI_恢复成TXTSETUP.SIF,SETUPREG.HI_ 恢复成SETUPREG.HIV. 这样做相当于把PE的神秘面纱除了下来,让更多人得以观其真正的面貌。

下面是我的具体做法择要:(所需要文件和成品ISO可以在zhaohj的FTP,khauyeung的文件夹里面找到)

1. 从老毛桃的原ISO中抽出WXPE.IS_, 解压后得WXPE.ISO, 提出里面的文件夹\WXPE,改名为\I386

2. 从老毛桃的原ISO中提出里面的文件夹\外置程序,改名为\Programs

3. 原\I386\TXTSETUP.SI_解压后是仍然不能工作的。把它删除后用我提供的TXTSETUP.SIF代替。 TXTSETUP.rar (28.63 KB, 下载次数: 256)

4. 把\I386\SYSTEM32\SETUPREG.HI_解压后得SETUPREG.HIV

5. 在Windows或者XPE的操作环境下,运行regedit.exe进行注册表操作, 加载入以下配置单元:\I386\SYSTEM32\SETUPREG.HIV, \I386\SYSTEM32\CONFIG\SOFTWARE, \I386\SYSTEM32\CONFIG\DEFAULT, 分别命名为 cxpe_system, cxpe_software, cxpe_default.

6. 导入我提供的CXPE.REG到注册表里面。 CXPE.REG.rar (6.59 KB, 下载次数: 303)

7. 卸载配置单元。

8. 把我提供的文件分别加到对应的根目录,I386和Programs文件夹下面。有三只文件至为重要( 3Files.rar (11.64 KB, 下载次数: 321) ):\I386\SYSTEM32\PECMD.INI, \I386\SYSTEM32\CPEStartup.cmd, \Programs\WINPE.INI。其中CPEStartup.cmd是用来挂接Programs.wim的灵魂。

9. 启动过程大概是这样的:PE启动时运行PECMD.EXE, PECMD.INI负责基本配置工作并把CPEStartup.cmd放在启动文件夹以执行下一步启动任务。CPEStartup.cmd搜索Programs.wim的存在, 把它外挂到RAMDRIVE B:去,并建立连结,最后加载另一个配置文件WINPE.INI。WINPE.INI加载外置基本核心和驱动,然后退出桌面。

10. 你可以参考我的成品ISO里面包含的Programs.wim,看看它是如何与CPEStartup.cmd配合工作的。\Programs\PRO_WIM.TAG是个标志文件。生成Programs.wim的指令大概是imageX
/compress maximum /capture c:\Programs c:\Programs.wim "External Programs for XPE".

假如你看不明白我说什么,那么有二个可能:

1. 我的水平太菜了,写的不知所谓,真的抱歉!
2. 你的水平太菜了,这个帖不看也吧!

很晚了,要去睡觉,迟些再补充吧!

[2007-5-18]: 回应老九建议,把imageX和WimFltr所需的文件和注册表处理整合成下面的组件WimFltr.rar。imageX的使用方法我记得有人详述过,我的中文太菜,不再敖述了。

WimFltr.rar (387.22 KB, 下载次数: 2843)

[2007-5-19]: 有网友问关于wim镜像的问题,很有共通性,我把问题和答案都放在楼顶这里:
但如果是光盘上的wim镜像 挂接后是否可写呢? 卸载的时候会不会出错?
是否有办法可挂接后内容可写 但卸载后内容不会保存到原镜像里面 这样那些需读写磁盘的软件就不用做成自解压到X盘或B盘的形式了

光、硬盘上的wim镜像, 用imagex /mountrw挂接后都是"可写"的。所谓"可写"是指把转变暂时写在记忆体(RAM)里面而不是直接地写到wim镜像。至于卸载后内容会不会保存到原镜像里面,就要看你下达的卸载过程:如果只想卸载不想保存,用imagex.exe /unmount b:\Programs指令就够了;想卸载又要保存转变到wim镜像里面,必须加上/commit于指令中:imagex.exe /commit /unmount b:\Programs。我现时在YY版PE的处理,是只挂接不卸载,所以转变都不会写回wim镜像中,你希望"那些需读写磁盘的软件就不用做成自解压到X盘或B盘的形式了"的目标是完全可以达到了。从这个角度看来,使用WIM来处理外置程式的优势就更加显而易见了。

现实是光盘上的内容都是只读的,包括Programs.wim,假如你强行/commit /unmount就可能会导致蓝屏。

[2007-5-20]: 有网友问关于蓝屏问题,有共通性,我把问题和答案都放在楼顶这里:
原帖由 fengxi 于 2007-5-19 12:06 PM 发表
按楼主的办法改装毛桃版,用mountrw 挂上了一个wim文件,读取没问题,但往里写东西时就蓝屏了,有谁能解释一下?

我想在回答fengxi问题的同时,向大家指出一些建立Programs.wim外置程式的注意事项。

fengxi,我看过你作测试用的test.wim并做了实验,发觉问题还是出在你制作的wim上面:

你的wim很简单的,**不包含任何文件夹**,只包含二个文件,都放在根目录上面:
\BootXP.IMA
\Vista_MEMTEST.IMA
我用指令imagex /mountrw c:\test.wim c:\mount把它挂在虚拟机的C:盘的\mount文件夹下面,然后用指令copy c:\temp\coolsites.htm c:\mount往它写文件,马上就蓝屏了。假如我挂的不是你的test.wim,而是我的Programs.wim,蓝屏就不出现。那么,你的test.wim出了什么问题呢?

经研究问题是出在它*不包含任何文件夹*。我把你的test.wim改了一下,根目录下面增加了一只叫images的文件夹,然后把二个文件放在文件夹里面:
\images\BootXP.IMA
\images\Vista_MEMTEST.IMA
使用相同的指令挂接和写文件,这次写操作完全成功,蓝屏并不出现。随后的imagex /commit /unmount c:\mount指令也成功把所写的coolsites.htm这个转变更新到test.wim中。

我不懂如何解释这发生的现象,我想假如wim下面不带文件夹,wimfltr很可能会视它为一整个硬盘,写操作时会申请一个很大的临时空间,从而把系统搞垮。

结论是建立外置程式的wim镜像时,根目录下面最小得包含一只文件夹,写操作时要考虑系统的内存和临时写空间的承受能力。老毛原程式带很多自解压程序,解压过程必须使用临时写空间,不利wimfltr操作,同时也拖慢执行速度,建议解压后才整合到wim镜像中去。
[2007-5-25]: 答覆了网友关于使用imagex mount和mountrw的问题。
原帖由songq发表
还要请教楼主,老毛桃的iso我始终没有改成功(在虚拟机里mountrw不成功,mount可以),
现在在下楼主的iso.
1. 不用iso,用移动硬盘peldr+img,采用老九的最新pecmd没问题.可以读写,没有用到ramdrv.
2.如果用iso方式(也是img),在vmware虚拟机里,pecmd moun 加载不行,我以为是光盘启动需要ramdrv的原因,又把它加上,还是不行,但试了imagex mountrw不行,如果mount的话则可以.
是什么原因呢?
楼主改动的太多了,我只想把外置程序压缩成wim,但始终没弄好,再不行的话,从你的iso往回改

回答你的问题:
1. 用移动硬盘peldr+img时,你的PE是建立在硬盘上的(X:盘是硬盘),你的Programs.wim也是在硬盘上,而且挂接的目标盘也是在硬盘上。硬盘是可以读写的,所以一切都不成问题。
2. 用iso方式时,你的PE是建立在光盘上的(X:盘是光盘),假如把挂接的目标盘设定在X:盘的话,无论你用mountrw或者mount,挂接都不会成功,因为imagex会拒绝把wim挂接到唯读光盘。假如你加了ramdrv,并把挂接的目标盘设定为ramdrv,那么用mount指令是肯定没有问题了,但是mountrw还是有机会不成功的,这是因为如下面老九指出的:imagex /mountrw 参数要求原来的WIM文件是可写的,放在光盘上的WIM文件是只读的,所以 imagex /mountrw 挂不上WIM文件,要改用 imagex /mount。
关于如何灵活地自动处理用mount和mountrw的方法,请参考我下面答覆老九附上的脚本。
原帖由 lxl1638 于 2007-5-26 12:24 AM 发表
是不是这样:
imagex /mountrw 参数要求原来的WIM文件是可写的,放在光盘上的WIM文件是只读的,
所以 imagex /mountrw 挂不上WIM文件?

回答老九,你已经正确地答覆了自己提出的问题了。其实,我们不一定把wim挂接成可读可写的。我自己是用一只CPEStartup.cmd来执行找寻和挂接的wim文件的,我的处理原则是:先尝试用mountrw挂接到ramdrv,不成功则改用mount挂接。下面列出有关部分:
  1. ......

  2. start /min /wait %SystemRoot%\system32\FORMAT.COM B: /FS:NTFS /V:RAMDisk /Q /C /X /FORCE>NUL
  3. if not exist "%ramdrv%\Programs" mkdir "%ramdrv%\Programs"

  4. :load1st
  5. set ProgramFiles=x:\Programs
  6. goto _linkprep

  7. :autoruntag
  8. echo autorun finished at %time% >%SystemRoot%\system32\autorun.tag

  9. :load2nd
  10. for %%i in (x q w e r t y u i o p s d f g h j k l z c v n m) do (
  11. if exist %%i:\programs.wim set _drive=%%i
  12. )
  13. if not exist %_drive%:\Programs.wim goto _linkprep
  14. if not exist "%ramdrv%\Programs" mkdir "%ramdrv%\Programs"
  15. start /min /wait imagex.exe /unmount %ramdrv%\Programs >nul
  16. echo Trying to mount %_drive%:\programs.wim read-write...
  17. start /min /wait imagex.exe /mountrw %_drive%:\programs.wim 1 %ramdrv%\Programs >nul
  18. if not exist %ramdrv%\Programs\PROG_WIM.TAG (
  19. if not exist %ramdrv%\PROG_WIM.TAG (
  20. echo Error. Trying to mount %_drive%:\programs.wim read-only...
  21. start /min /wait imagex.exe /mount %_drive%:\programs.wim 1 %ramdrv%\Programs >nul
  22. )
  23. )
  24. set ProgramFiles=%ramdrv%\Programs
  25. goto _linkprep

  26. ......

  27. :_linkprep

  28. ......

  29. goto autoruntag
复制代码
对于那些有需要对wim进行写操作的人来说,他们应该把Programs.wim放到硬盘中去(或者是IMG/SDI-PE的X:盘)而不是放在光盘。假如你没有对wim的写需要,放在什么地方都不会成为问题。

[ 本帖最后由 khauyeung 于 2007-5-26 12:18 PM 编辑 ]

CXPE1.jpg (27.06 KB, 下载次数: 195)

CXPE1.jpg

CXPE2.jpg (44.54 KB, 下载次数: 155)

CXPE2.jpg

CXPE3.jpg (40.82 KB, 下载次数: 171)

CXPE3.jpg

CXPE4.jpg (48.66 KB, 下载次数: 194)

CXPE4.jpg

CXPE5.jpg (43.58 KB, 下载次数: 188)

CXPE5.jpg
107#
发表于 2010-5-19 08:53:13 | 只看该作者
学习中,谢谢分享。^_^
回复

使用道具 举报

106#
发表于 2010-5-14 22:55:40 | 只看该作者
太感谢楼主提供DIY方法
回复

使用道具 举报

105#
发表于 2008-5-25 09:55:09 | 只看该作者
这个我支持,超好的东西。
回复

使用道具 举报

104#
发表于 2007-6-13 21:34:01 | 只看该作者

回复 #55 khauyeung 的帖子

用wim格式封装pe1.0是根本行不通的,否则微软费劲的开发bootmgr干什么,直接改造ntldr就可以了吗?这已经是两代技术了,几乎不可能的。
回复

使用道具 举报

103#
发表于 2007-6-13 14:43:25 | 只看该作者
原帖由 原名丢了 于 2007-5-19 08:52 PM 发表

我想将winpe(xp版或2003版)封装在wim中是无法做到的吧,因为ntldr还不能支持wim格式,除非用bootmgr加载pe,现在恐怕还没人做到吧。

完全可以把VISTA的引导写入移动设备好,根目录放一个BOOTMGR,再配制一个BCD放在BOOT文件夹,没有问题,我早就搞成了。


在哪发表了?这是激动人心的好事!!!
回复

使用道具 举报

102#
发表于 2007-5-29 09:17:54 | 只看该作者
有点看不懂。。。。。:(
回复

使用道具 举报

101#
发表于 2007-5-27 10:02:24 | 只看该作者
与时俱进,支持新技术。;P ;P
回复

使用道具 举报

100#
 楼主| 发表于 2007-5-27 03:14:32 | 只看该作者
原帖由 songq 于 2007-5-27 12:38 AM 发表
不知wim的兼容性怎么样,我把深山红叶的外置程序挂上去,有好几个不能运行,老毛桃里的trueimage也不能运行.不知道是不是这样?

我认为wim的兼容性是相当好的。事实上wim是微软最新为windows定制的镜像格式,它应该充分照顾到对程序的兼容性。有很多程序挂上去后不能直接地运行,是因为那些程序经过了RAR压缩,自解压过程必须在作者特定环境进行,而该环境已经不完全吻合新的PE所至。这些程序应该先解压,再移植到Programs.wim中去,就可以正常的运行了。老毛桃里的trueimage就是这么一个例子。由于WIM里面的文件可以有更佳的压缩比率,所以"先解压,再移植"不单达到RAR压缩的原来目的,运行时也省了自解压过程。

[ 本帖最后由 khauyeung 于 2007-5-27 04:49 AM 编辑 ]
回复

使用道具 举报

99#
发表于 2007-5-27 00:38:35 | 只看该作者
不知wim的兼容性怎么样,我把深山红叶的外置程序挂上去,有好几个不能运行,老毛桃里的trueimage也不能运行.不知道是不是这样?
回复

使用道具 举报

98#
发表于 2007-5-27 00:07:27 | 只看该作者
好是好,但添加删除程序很麻烦啊.....
回复

使用道具 举报

97#
 楼主| 发表于 2007-5-26 23:22:56 | 只看该作者
原帖由 lxl1638 于 2007-5-26 10:24 PM 发表


通过批处理用Imagex挂接WIM会严重滞后,要用延时等待才能执行后面的命令。
PECMD的MOUN命令挂接WIM效率会高不少。

使用我的CPEStarup.cmd挂接WIM,是会有滞后的情况,但滞后并不是由Imagex挂接WIM过程所引起的,而是由其中一段自动从全部盘符找寻Programs.wim的过程引起。CPEStarup.cmd改编自我较早时为其他PE写的批处理文件,是急就章之作,里面产生连结的处理写得比较笨,但我见能工作就懒得改动了。还有一点需要留意:假如你需要用PECMD的FONT指令挂接字体,你必须把该指令放在WINPE.INI(老毛的配置文件)的最后执行,否则后面的命令会全部滞后,慢得不能忍受。

所以,效率低的应该说是本人,不要错怪了imagex这家伙。哈哈!

[ 本帖最后由 khauyeung 于 2007-5-26 11:42 PM 编辑 ]
回复

使用道具 举报

96#
发表于 2007-5-26 22:24:58 | 只看该作者
原帖由 wanghh 于 2007-5-26 08:59 PM 发表
其中CPEStartup.cmd是用来挂接Programs.wim的灵魂


通过批处理用Imagex挂接WIM会严重滞后,要用延时等待才能执行后面的命令。
PECMD的MOUN命令挂接WIM效率会高不少。
回复

使用道具 举报

95#
发表于 2007-5-26 20:59:15 | 只看该作者
其中CPEStartup.cmd是用来挂接Programs.wim的灵魂
回复

使用道具 举报

94#
发表于 2007-5-26 20:31:33 | 只看该作者
果然是打破传统,我等属于菜鸟,希望各位老鸟能够早日将以上设想实现
回复

使用道具 举报

93#
发表于 2007-5-26 20:17:04 | 只看该作者
原帖由 lxl1638 于 2007-5-26 07:22 PM 发表


EXEC命试调用自解压程序时,加上前导符"="试试。

收到,这就去试下
回复

使用道具 举报

92#
发表于 2007-5-26 19:22:44 | 只看该作者
原帖由 armymangl 于 2007-5-26 04:56 PM 发表
老九兄,请教个问题:感觉pecmd中init的参数I特别脆弱(用词不当别见笑),ini文件中一不小心就导致启动后托盘工具没有了,然后弄下又出来了,似乎找不出有什么规律会影响i参数的启动成功与否。感觉一个影响很大 ...


EXEC命试调用自解压程序时,加上前导符"="试试。
回复

使用道具 举报

91#
发表于 2007-5-26 17:43:01 | 只看该作者
下载一个看看,看是不是比老毛桃的更好?
回复

使用道具 举报

90#
发表于 2007-5-26 16:56:50 | 只看该作者
老九兄,请教个问题:感觉pecmd中init的参数I特别脆弱(用词不当别见笑),ini文件中一不小心就导致启动后托盘工具没有了,然后弄下又出来了,似乎找不出有什么规律会影响i参数的启动成功与否。感觉一个影响很大的就是exe文件,如果在ini中执行了exe文件(最多就是自解压文件),很可能就会启动没有托盘工具。
请老九兄指点迷津,确实很困惑这个问题。
还有一个问题,如果ini中菜单链接比较多,就会导致随机出现有的菜单不能正常加载的情况,如果其中再插入个自解压的东东,就更明显了,一大片菜单都变成白板了。不知是个别问题还是确实有这个问题。只能通过wait来调节,但是这个时间很难把握。

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

使用道具 举报

89#
发表于 2007-5-26 13:10:37 | 只看该作者
其实是很简单的问题:
/Mount 参数不能也不会改写(或也以说破坏)原来的WIM文件;

/MountRW 参数可以改写原来的WIM文件,当目标目录改写后,
/UnMount 参数后面加上 /COMMIT 卸下WIM映像时,目标目录
被修改的文件和新生成的文件会被更新到原来的WIM映像中。

  所以说,在PE中用/MountRW参数挂载映像没有必要,
除非你要编辑WIM文件。
回复

使用道具 举报

88#
 楼主| 发表于 2007-5-26 12:58:30 | 只看该作者
原帖由 songq 于 2007-5-26 12:12 PM 发表
补充一点,我试了img-pe格式X:盘也无法mount,必需mount到b盘,
楼主可不可以改个img做x盘的iso呢?实现mountrw,我折腾不出来了

我自己在SDI的X:盘尝试过,假如Programs.wim也在X:盘或者是其他硬盘,使用mountrw挂接是没有问题的。SDI-PE除了多了一个header外,跟IMG-PE没有太多分别,按道理使用mountrw挂接也不应有问题。不过,我们制作SDI/IMG时一般不会预留太多空间给X:盘的,挂接虽然成功,真实的写操作是否有足够写空间是个疑问。
本人以为,PE用的Programs.wim是很小机会需要进行写操作的。假如你有其他的wim需要写操作,把它放入硬盘,进入PE后,把它mountrw到硬盘上的一个目录不就成了吗?
回复

使用道具 举报

87#
发表于 2007-5-26 12:55:23 | 只看该作者
原帖由 songq 于 2007-5-26 12:51 PM 发表
按我的理解,外置程序改成wim格式,就可以不用自解压到temp目录来运行了,如果只读,有些程序运行要写目录怎么办?


不管WIM文件属性如何,也不管是否用/RW方式挂载,只要目标目录是可写的,
程序运行要写目录不成问题。
回复

使用道具 举报

86#
发表于 2007-5-26 12:51:17 | 只看该作者
按我的理解,外置程序改成wim格式,就可以不用自解压到temp目录来运行了,如果只读,有些程序运行要写目录怎么办?
回复

使用道具 举报

85#
发表于 2007-5-26 12:30:55 | 只看该作者
在PE中实现 /MountRW 没有多大用途,/MountRW 的目的是为修改 WIM文件用的,
用 /MountRW 挂上 WIM文件后,对目标目录(Mount到的目录)的修改也有可能修改
原来的WIM映像文件,这个修改是在内存或临时目录,这个修改是否保存就看 /UnMount 
后面有没有参数 /COMMIT。
回复

使用道具 举报

84#
发表于 2007-5-26 12:12:06 | 只看该作者
补充一点,我试了img-pe格式的x盘也无法mount,必需mount到b盘,
楼主可不可以改个img做x盘的iso呢?实现mountrw,我折腾不出来了
回复

使用道具 举报

83#
发表于 2007-5-26 12:09:30 | 只看该作者
昨晚已更新,可以挂上光盘上的WIM文件,但参数要求自己写。

一直以来很少搞Imagex,现在总算明白了些少。

其实在PE中用 Imagex /Mount 参数只读挂载也够用了,这个参数不会修改原来的WIM文件,MOUNT到可写目录中,目标目录同样是可写的。

也更新了一下PECMD,PECMD的MOUN命令支持类似Imagex 的 /Mount 和 /MountRW 两种方式挂载WIM映像。

[ 本帖最后由 lxl1638 于 2007-5-26 12:11 PM 编辑 ]
回复

使用道具 举报

82#
发表于 2007-5-26 12:06:20 | 只看该作者
为什么你的iso可以读写呢,可不可以把你的改成ramdisk启动,依旧可以读写呢?
我照着你的加了ramdrv,反复试过无数次,没有一次可以mountrw成功.(fat32格式,ntfs格式,img的,wim的交替试过了),正象你所说的,mount到x盘不行,mount到B盘可以成功.

如果mountrw不确定可行的话,老九的pecmd也要改写了,现在只是实现mountrw的吧,还要考虑不能读写的情况
回复

使用道具 举报

81#
 楼主| 发表于 2007-5-26 11:43:12 | 只看该作者

回复 #86 lxl1638 的帖子

原帖由songq发表
还要请教楼主,老毛桃的iso我始终没有改成功(在虚拟机里mountrw不成功,mount可以),
现在在下楼主的iso.
1. 不用iso,用移动硬盘peldr+img,采用老九的最新pecmd没问题.可以读写,没有用到ramdrv.
2.如果用iso方式(也是img),在vmware虚拟机里,pecmd moun 加载不行,我以为是光盘启动需要ramdrv的原因,又把它加上,还是不行,但试了imagex mountrw不行,如果mount的话则可以.
是什么原因呢?
楼主改动的太多了,我只想把外置程序压缩成wim,但始终没弄好,再不行的话,从你的iso往回改

回答你的问题:
1. 用移动硬盘peldr+img时,你的PE是建立在硬盘上的(X:盘是硬盘),你的Programs.wim也是在硬盘上,而且挂接的目标盘也是在硬盘上。硬盘是可以读写的,所以一切都不成问题。
2. 用iso方式时,你的PE是建立在光盘上的(X:盘是光盘),假如把挂接的目标盘设定在X:盘的话,无论你用mountrw或者mount,挂接都不会成功,因为imagex会拒绝把wim挂接到唯读光盘。假如你加了ramdrv,并把挂接的目标盘设定为ramdrv,那么用mount指令是肯定没有问题了,但是mountrw还是有机会不成功的,这是因为如下面老九指出的:imagex /mountrw 参数要求原来的WIM文件是可写的,放在光盘上的WIM文件是只读的,所以 imagex /mountrw 挂不上WIM文件,要改用 imagex /mount。
关于如何灵活地自动处理用mount和mountrw的方法,请参考我下面答覆老九附上的脚本。
原帖由 lxl1638 于 2007-5-26 12:24 AM 发表
是不是这样:
imagex /mountrw 参数要求原来的WIM文件是可写的,放在光盘上的WIM文件是只读的,
所以 imagex /mountrw 挂不上WIM文件?

回答老九,你已经正确地答覆了自己提出的问题了。其实,我们不一定把wim挂接成可读可写的。我自己是用一只CPEStartup.cmd来执行找寻和挂接的wim文件的,我的处理原则是:先尝试用mountrw挂接到ramdrv,不成功则改用mount挂接。下面列出有关部分:
  1. ......

  2. start /min /wait %SystemRoot%\system32\FORMAT.COM B: /FS:NTFS /V:RAMDisk /Q /C /X /FORCE>NUL
  3. if not exist "%ramdrv%\Programs" mkdir "%ramdrv%\Programs"

  4. :load1st
  5. set ProgramFiles=x:\Programs
  6. goto _linkprep

  7. :autoruntag
  8. echo autorun finished at %time% >%SystemRoot%\system32\autorun.tag

  9. :load2nd
  10. for %%i in (x q w e r t y u i o p s d f g h j k l z c v n m) do (
  11. if exist %%i:\programs.wim set _drive=%%i
  12. )
  13. if not exist %_drive%:\Programs.wim goto _linkprep
  14. if not exist "%ramdrv%\Programs" mkdir "%ramdrv%\Programs"
  15. start /min /wait imagex.exe /unmount %ramdrv%\Programs >nul
  16. echo Trying to mount %_drive%:\programs.wim read-write...
  17. start /min /wait imagex.exe /mountrw %_drive%:\programs.wim 1 %ramdrv%\Programs >nul
  18. if not exist %ramdrv%\Programs\PROG_WIM.TAG (
  19. if not exist %ramdrv%\PROG_WIM.TAG (
  20. echo Error. Trying to mount %_drive%:\programs.wim read-only...
  21. start /min /wait imagex.exe /mount %_drive%:\programs.wim 1 %ramdrv%\Programs >nul
  22. )
  23. )
  24. set ProgramFiles=%ramdrv%\Programs
  25. goto _linkprep

  26. ......

  27. :_linkprep

  28. ......

  29. goto autoruntag
复制代码
对于那些有需要对wim进行写操作的人来说,他们应该把Programs.wim放到硬盘中去(或者是IMG/SDI-PE的X:盘)而不是放在光盘。假如你没有对wim的写需要,放在什么地方都不会成为问题。
下面附上我使用的三个配置文件供参考。

[ 本帖最后由 khauyeung 于 2007-5-26 12:22 PM 编辑 ]

3Files.rar

12.26 KB, 下载次数: 51, 下载积分: 无忧币 -2

回复

使用道具 举报

80#
发表于 2007-5-26 09:42:05 | 只看该作者
原帖由 lxl1638 于 2007-5-26 12:24 AM 发表
是不是这样:
imagex /mountrw 参数要求原来的WIM文件是可写的,放在光盘上的WIM文件是只读的,
所以 imagex /mountrw 挂不上WIM文件?

对,我用vista安装文件试验过,光盘上的wim文件无法用mountrw参数,会报错
回复

使用道具 举报

79#
发表于 2007-5-26 09:17:32 | 只看该作者
原帖由 songq 于 2007-5-26 08:58 AM 发表
又下载了楼主的xcpe.iso,发现不是ramdisk方式启动的,跟老毛桃的iso不一样.

如果不能读写的话,wim意义就不大了.

是不是只能于光盘了?:'( :'(
回复

使用道具 举报

78#
发表于 2007-5-26 08:58:41 | 只看该作者
又下载了楼主的xcpe.iso,发现不是ramdisk方式启动的,跟老毛桃的iso不一样.

如果不能读写的话,wim意义就不大了.
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-2 18:32

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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