无忧启动论坛

标题: [分享]成功在光盘启动的winpe上实现EWF! [打印本页]

作者: fujianabc    时间: 2006-3-11 11:15
标题: [分享]成功在光盘启动的winpe上实现EWF!
[这个贴子最后由fujianabc在 2006/03/12 04:01pm 第 5 次编辑]

  由于光盘只读特性所限,给大家在制做从光盘启动的winpe时带来很多麻烦。我们要添加一个ramdisk,每添加一个软件要专门设置临时文件存放路径至这个ramdisk。
最近,我借鉴了msfn.org和911 cd forum的一些帖子所提供的方法,成功的在winpe的cd上实现了类似于xp embedded的ewf功能。现在我们可以对winpe的光盘进行写操作了,这样就无须再考虑设置临时文件夹这种这种麻烦了。当然,对光盘的写操作时存放在内存里的,重启后这些写操作如同ramdisk一样会丢失。
实现方法如下,
1、在winpe的txtsetup.sif中进行如下修改:
[BusExtenders.Load]下添加:
fltmgr   = fltmgr.sys
fbwf     = fbwf.sys
[BusExtenders]下添加:
fltmgr   = "File System Filter Manager Driver",files.fltmgr,fltmgr
fbwf     = "File Based Write Filter Driver",files.fbwf,fbwf
在[files.xxxx]等条目后面添加:
[files.fltmgr]
fltlib.dll,2
fltmgr.sys,4
[files.fbwf]
fbwflib.dll,2
fbwf.sys,4
2、挂接winpe注册表文件setupreg.hiv至系统注册表HKEY_LOCAL_MACHINE下,取名为winpe,导入下面的注册表文件然后断开注册表连接。
[UploadFile=1_1142150468.rar]
(注:有时会由于注册表权限的问题发生不能导入或者导入出错,可以用下面这个工具(贴在2楼)解除注册表的限制,它是由论坛元老hk97制作的,使用前请阅读里面的使用方法)
3、下面压缩包内是vista 5270 beta中提取的五个文件:fbwflib.dll、sacsess.exe、sacsvr.dll、fbwf.sys、sacdrv.sys。复制fbwflib.dll、sacsess.exe、sacsvr.dll至winpe的i386\system32下面,复制fbwf.sys、sacdrv.sys至i386\system32\DRIVERS下面。
[UploadFile=vista_1142046852.rar]
以上方法在xp sp2和2003 sp1的winpe试验通过
下面是一张pe启动后,cd的截图
[UploadFile=BCF4CCF9B0E501_1142046810.jpg]

作者: fujianabc    时间: 2006-3-11 11:18
标题: [分享]成功在光盘启动的winpe上实现EWF!
[这个贴子最后由fujianabc在 2006/03/12 11:20am 第 1 次编辑]

一下子不能上传太多附件,那个解除注册表限制的工具贴在这里。
分卷1:[UploadFile=reg_1142047060.rar]
分卷2:[UploadFile=reg_1142047108.rar]
bart pe builder的插件,用这个生成winpe时,就无需手动修改了[UploadFile=fbwf_1142133636.rar]
作者: Rinrin    时间: 2006-3-11 13:00
标题: [分享]成功在光盘启动的winpe上实现EWF!
支持!
可用空间也就是ramdisk的大小能否随意控制呢
作者: lxl1638    时间: 2006-3-11 13:23
标题: [分享]成功在光盘启动的winpe上实现EWF!
好!!好!! 这个对在光盘上运行RAM的PE更有用了!
ramdisk的大小是不是新的setupreg.hiv(导入那个.REG文件的)来定?
作者: lxl1638    时间: 2006-3-11 13:33
标题: [分享]成功在光盘启动的winpe上实现EWF!
fujianabc你网速好,E文好,多点给大家揾料,再顶!
作者: krell    时间: 2006-3-11 14:42
标题: [分享]成功在光盘启动的winpe上实现EWF!
不错,学习一下。
作者: pangu    时间: 2006-3-11 17:40
标题: [分享]成功在光盘启动的winpe上实现EWF!
不成功,启动时出现setupreg.hiv不能载入,错误代码14。请解答。
作者: 天风    时间: 2006-3-11 18:23
标题: [分享]成功在光盘启动的winpe上实现EWF!
试问楼主能否把这种方法移植到现有的 XP SP2中呢,原来死性不改做的EMBEDDED的EWF保护安装到SP2 有点问题!
作者: fujianabc    时间: 2006-3-11 19:07
标题: [分享]成功在光盘启动的winpe上实现EWF!
[这个贴子最后由fujianabc在 2006/03/11 07:09pm 第 1 次编辑]
下面引用由Rinrin2006/03/11 01:00pm 发表的内容:
支持!
可用空间也就是ramdisk的大小能否随意控制呢
似乎目前为止无法调整光盘写操作空间的大小,一般都是32M,这个容量不是由注册表中的某一项控制的,而是微软系统文件自身决定的。
下面引用由pangu2006/03/11 05:40pm 发表的内容:
不成功,启动时出现setupreg.hiv不能载入,错误代码14。请解答。
很明显,你得没有正确的修改注册表,你在导入前是否解除了权限?导入后是否断开了注册表连接?
下面引用由hnlyzhd2006/03/11 06:23pm 发表的内容:
试问楼主能否把这种方法移植到现有的 XP SP2中呢,原来死性不改做的EMBEDDED的EWF保护安装到SP2 有点问题!
现在这个东西是从vista pe中移植过来的,由于vista的winpe中启动光盘可以做写操作。现在把这个技术移植到winpe 2004/2005(xp sp2/2003 sp1的winpe)中。到目前为止,这个技术只适用于winpe而不适用于普通系统。普通系统还是要用xp embedded的ewf,不过我对此没研究过。
作者: wolfteeth    时间: 2006-3-11 23:50
标题: [分享]成功在光盘启动的winpe上实现EWF!
这个真是好东西,如果确实可行的话。。
马上试验,见天晚上不睡了。。。:)
作者: wolfteeth    时间: 2006-3-12 01:00
标题: [分享]成功在光盘启动的winpe上实现EWF!
@fujianabc,
按照提示做好所有工作后,启动ISO,,屏幕提示无法找到fbwf.sys.可以100%确定,drivers目录下面已经有fbwf.sys文件。其他配置也已重新检查过,无问题。
请教。
作者: lxl1638    时间: 2006-3-12 01:33
标题: [分享]成功在光盘启动的winpe上实现EWF!
问题的确不少:
感觉上启动比用BartPE提供的Ramdisk慢;
发现有些工具运行不了或不正常;
如果现成的PE中的程序注册了原来在BartPE_Ramdisk安装路径的话,修改注册表有些费事;
可能我没有找到它的优点,还得继续努力!
作者: liulaotou2    时间: 2006-3-12 01:38
标题: [分享]成功在光盘启动的winpe上实现EWF!
用深山红叶测试,提示找不到fltmgr.sys,拷贝一个放到\SYSTEM32\DRIVERS以后还是提示找不到。[UploadFile=fltmgr_1142098706.jpg]
作者: wolfteeth    时间: 2006-3-12 02:01
标题: [分享]成功在光盘启动的winpe上实现EWF!
[这个贴子最后由wolfteeth在 2006/03/12 02:04am 第 1 次编辑]

楼上的,你的fbwf.sys没有提示丢失么?是不是大小写?还有格式的空格问题???
你都比我多跑了一个,呵呵。
继续研究研究。。。
作者: Rinrin    时间: 2006-3-12 10:14
标题: [分享]成功在光盘启动的winpe上实现EWF!
提示文件丢失一般和txtsetup.sif有关
如果txtsetup.sif中没有相关信息
就无法找到文件
详见<<深入了解txtsetup.sif>>
另外,怀疑fujianabc是否疏忽了fltmgr.sys?
作者: liulaotou2    时间: 2006-3-12 10:46
标题: [分享]成功在光盘启动的winpe上实现EWF!
我感觉不仅是fltmgr的问题,而是步骤一中的方法是否正确的问题。如果原来就有fltmgr.sys 就不会有我出现的这种提示,而是直接出现fbwf.sys的提示了。
1、在winpe的txtsetup.sif中进行如下修改:
[BusExtenders.Load]下添加:
fltmgr   = fltmgr.sys
fbwf     = fbwf.sys
[BusExtenders]下添加:
fltmgr   = "File System Filter Manager Driver",files.fltmgr,fltmgr
fbwf     = "File Based Write Filter Driver",files.fbwf,fbwf
在[files.xxxx]等条目后面添加:
[files.fltmgr]
fltlib.dll,2
fltmgr.sys,4
[files.fbwf]
fbwflib.dll,2
fbwf.sys,4
作者: fujianabc    时间: 2006-3-12 11:08
标题: [分享]成功在光盘启动的winpe上实现EWF!
各位遇到*.sys找不到的,是否都是用的深山红叶?如果是,则说明此方法不支持xp sp1的winpe。我在一楼说了,只在xp sp2和2003 sp1的winpe测试成功,深山红叶是xp sp1的winpe,我没试过。
作者: fujianabc    时间: 2006-3-12 11:22
标题: [分享]成功在光盘启动的winpe上实现EWF!
[这个贴子最后由fujianabc在 2006/03/12 11:30am 第 1 次编辑]
下面引用由lxl16382006/03/12 01:33am 发表的内容:
问题的确不少:
感觉上启动比用BartPE提供的Ramdisk慢;
发现有些工具运行不了或不正常;
如果现成的PE中的程序注册了原来在BartPE_Ramdisk安装路径的话,修改注册表有些费事;
...
如果觉得修改麻烦,试试2楼新加的bart pe builder插件,这是一个老外做的,我略加修改,并把vista的5个文件也包含了进去。
作者: fujianabc    时间: 2006-3-12 11:28
标题: [分享]成功在光盘启动的winpe上实现EWF!
[这个贴子最后由fujianabc在 2006/03/13 07:41pm 第 1 次编辑]

各位有兴趣的可以看看此帖,这是这个方法的原始出处。
http://www.msfn.org/board/lofiversion/index.php/t54590.html
作者: briankuo    时间: 2006-3-12 11:42
标题: [分享]成功在光盘启动的winpe上实现EWF!
下面引用由fujianabc2006/03/12 11:08am 发表的内容:
各位遇到*.sys找不到的,是否都是用的深山红叶?如果是,则说明此方法不支持xp sp1的winpe。我在一楼说了,只在xp sp2和2003 sp1的winpe测试成功,深山红叶是xp sp1的winpe,我没试过。
可能真的是深山红叶(或SP1)的原因,我用PEBuilder重新生成一个基于 XP SP2 的PE测试没有问题,不过真的是有些需要写操作的应用程序不能运行
作者: godant    时间: 2006-3-12 12:20
标题: [分享]成功在光盘启动的winpe上实现EWF!
我也来说二句吧。
确实可以,但楼主把注册文件搞错了,所以产误会。正确应该是:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\fbwf]
"DisplayName"="fbwf"
"Group"="FSFilter System Recovery"
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
  52,00,49,00,56,00,45,00,52,00,53,00,5c,00,66,00,62,00,77,00,66,00,2e,00,73,\
  00,79,00,73,00,00,00
"Description"="File Based Write Filter Driver"
"ErrorControl"=dword:00000001
"Start"=dword:00000000
"Tag"=dword:00000005
"Type"=dword:00000002
"DependOnService"=hex(7):66,00,6c,00,74,00,6d,00,67,00,72,00,00,00,00,00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\fbwf\Instances]
"DefaultInstance"="Fbwf Instance"
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\fbwf\Instances\Fbwf Instance]
"Altitude"="226000"
"Flags"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\FltMgr]
"Description"="File System Filter Manager Driver"
"DisplayName"="FltMgr"
"ErrorControl"=dword:00000001
"Group"="FSFilter Infrastructure"
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,\
  72,00,69,00,76,00,65,00,72,00,73,00,5c,00,66,00,6c,00,74,00,6d,00,67,00,72,\
  00,2e,00,73,00,79,00,73,00,00,00
"Start"=dword:00000000
"Type"=dword:00000002
"Tag"=dword:00000001
"AttachWhenLoaded"=dword:00000001
另外要从2K3或XPsp2中复制fltmgr.sys
如果你直接加入到注册表文件Servers里,那就勿需理会txtsetup.
即使你加入到txtsetup,但Servers里没相应的文件,也是白加.
所谓<<深入了解txtsetup.sif>>是误导!
我就直接写入注册文件setupreg.hiv里,没加入txtsetup.也行!见图:
[UploadFile=Snap1_1142137226.gif]
作者: liulaotou2    时间: 2006-3-12 12:21
标题: [分享]成功在光盘启动的winpe上实现EWF!
按照所说方法,在2003SP1上面制作成功,大家同喜,同喜![UploadFile=D5FDC8B7C1CB_1142137283.jpg]
作者: lxl1638    时间: 2006-3-12 12:24
标题: [分享]成功在光盘启动的winpe上实现EWF!
某些程序要读写在其工作目录下的.INI、.INF、.CFG、.LOG等文件,这些文件保存了其日志、窗口配置(位置等)
作者: willsion    时间: 2006-3-12 12:40
标题: [分享]成功在光盘启动的winpe上实现EWF!
关注一下。。。。。。。。。。。。。。。。。
作者: Rinrin    时间: 2006-3-12 13:42
标题: [分享]成功在光盘启动的winpe上实现EWF!
下面引用由godant2006/03/12 12:20pm 发表的内容:
我也来说二句吧。
确实可以,但楼主把注册文件搞错了,所以产误会。正确应该是:
Windows Registry Editor Version 5.00
"DisplayName"="fbwf"
...
当然
我的话是针对那幅图说的
出现那样一幅图
原因只可能是txtsetup.sif
我认为这一点没错
而你的这个方法(不修改txtsetup.sif)
这两个驱动程序加载的时机实际上就不同了
作者: fujianabc    时间: 2006-3-12 16:03
标题: [分享]成功在光盘启动的winpe上实现EWF!
下面引用由godant2006/03/12 12:20pm 发表的内容:
我也来说二句吧。
确实可以,但楼主把注册文件搞错了,所以产误会。正确应该是:
Windows Registry Editor Version 5.00
"DisplayName"="fbwf"
...
不好意思,刚刚发觉,注册表修改文件直接上传成txt时有些字符会出错,现已压成rar,在1楼重新上传了。
作者: godant    时间: 2006-3-12 16:05
标题: [分享]成功在光盘启动的winpe上实现EWF!
纠正一下,是要加入txtsetup.sif。
如不加入,可以加入Enum\Root\....的起动项,如直接加到txtsetup.sif,就不用。
如图:启动后会生成一个TEMP,CDROM盘值比原来多出30M,不知是否调用内存,我是用MVPC-64M测试的。一切如常!
[UploadFile=Snap1_1142150736.png]
作者: Rinrin    时间: 2006-3-12 16:19
标题: [分享]成功在光盘启动的winpe上实现EWF!
下面引用由godant2006/03/12 04:05pm 发表的内容:
纠正一下,是要加入txtsetup.sif。
如不加入,可以加入Enum\Root\....的起动项,如直接加到txtsetup.sif,就不用。
如图:启动后会生成一个TEMP,CDROM盘值比原来多出30M,不知是否调用内存,我是用MVPC-64M测试 ...
不知道你是否研究过txtsetup.sif
有一个小节叫做[HardwareIdsDatabase]
起到与此注册表项类似的作用
如果直接加到注册表里
我认为驱动的装载在PnP枚举时发生
作者: godant    时间: 2006-3-12 17:08
标题: [分享]成功在光盘启动的winpe上实现EWF!
下面引用由Rinrin2006/03/12 04:19pm 发表的内容:
不知道你是否研究过txtsetup.sif
有一个小节叫做
起到与此注册表项类似的作用
如果直接加到注册表里
...

确实没研究过。但我认为能直接加入注册表是最的,因为相对于WINPE来说,注册文件加载有约20M左右,如启动后再加载,是否会影响注册表的缓存呢?
就象上面的例子,我是这样发现的,还有点莫明奇妙。我直接启动,它就能启动相应服务。但通过BOOT(GRUB)引导后,就启动不了,也可能光盘容量加大吧(还带一个GHO)。后来就试加上它的启动项Enum,可以启动。再减去Enum,加入TXTSETUP,也可以。这样,也印正了你所说的“起到与此注册表项类似的作用”!反正,各有所好吧。
作者: Rinrin    时间: 2006-3-12 18:07
标题: [分享]成功在光盘启动的winpe上实现EWF!
下面引用由godant2006/03/12 05:08pm 发表的内容:
确实没研究过。但我认为能直接加入注册表是最的,因为相对于WINPE来说,注册文件加载有约20M左右,如启动后再加载,是否会影响注册表的缓存呢?
就象上面的例子,我是这样发现的,还有点莫明奇妙。我直接启动, ...
确实
很久以前我把BlueCon移植到两张软盘上(基于2K)
那TXTSETUP.SIF改的真是头昏眼花啊
哈哈
作者: fujianabc    时间: 2006-3-12 18:43
标题: [分享]成功在光盘启动的winpe上实现EWF!
下面引用由Rinrin2006/03/12 06:07pm 发表的内容:
确实
很久以前我把BlueCon移植到两张软盘上(基于2K)
那TXTSETUP.SIF改的真是头昏眼花啊
哈哈
真巧,以前我在无聊时也干过这事,最终把2000的控制台放在了一个2.88M的软盘镜像上了。
作者: wolfteeth    时间: 2006-3-13 00:54
标题: [分享]成功在光盘启动的winpe上实现EWF!
[这个贴子最后由wolfteeth在 2006/03/13 02:14am 第 4 次编辑]
下面引用由fujianabc2006/03/12 11:08am 发表的内容:
各位遇到*.sys找不到的,是否都是用的深山红叶?如果是,则说明此方法不支持xp sp1的winpe。我在一楼说了,只在xp sp2和2003 sp1的winpe测试成功,深山红叶是xp sp1的winpe,我没试过。
奇怪,还是不行。。。引入了新的注册表后。。。
我是用pebuilder314生成的,确实是sp2的版本,不过待会继续试试,其实我在上面看到descirption的时候已经修正了....
作者: s210603    时间: 2006-3-13 11:14
标题: [分享]成功在光盘启动的winpe上实现EWF!
下面引用由godant2006/03/12 04:05pm 发表的内容:
纠正一下,是要加入txtsetup.sif。
如不加入,可以加入Enum\Root\....的起动项,如直接加到txtsetup.sif,就不用。
如图:启动后会生成一个TEMP,CDROM盘值比原来多出30M,不知是否调用内存,我是用MVPC-64M测试 ...
我使用 pebuilder 的插件测试不成功。
能否把 Enum\Root\.. 生成注册表文件传上来。
作者: pw4321    时间: 2006-3-13 11:48
标题: [分享]成功在光盘启动的winpe上实现EWF!
看来得要重新做一个pe才能用此功能,无论如何,谢谢fujianabc !
作者: godant    时间: 2006-3-13 14:28
标题: [分享]成功在光盘启动的winpe上实现EWF!
下面引用由s2106032006/03/13 11:14am 发表的内容:
我使用 pebuilder 的插件测试不成功。
能否把 Enum\Root\.. 生成注册表文件传上来。
那图上不是有了吗?再不行从你的注册表上导一个,改个名就行。
看来我估计是fltmgr.sys的问题,我这是从XPsp2上提取的,你试下行不,如果再不行的话,就是pebuilder的算法问题了,XPsp1估计不行,2K3和2K3sp1、XPsp2肯定行。
这是fltmgr.sys,你看看行不:[UploadFile=fltmgr_1142231281.rar]
作者: s210603    时间: 2006-3-15 19:03
标题: [分享]成功在光盘启动的winpe上实现EWF!
已经解决,在911上找到了一个插件。
[UploadFile=01_1142420436.jpg]
插件:
; fbwf.inf
; PE Builder v3 plug-in INF file for File-based write filter
; Created by SCP
[Version]
Signature= "&#36;Windows NT&#36;"
[PEBuilder]
Name="File-based write filter"
Enable=1
[SourceDisksFiles]
fltmgr.inf=20
files\fbwflib.dll=2,,1
files\fbwf.sys=4,,1
;%11%\emptyregdb.dat=2; Required for XPE
files\emptyregdb.dat=2
[SetupReg.AddReg]
0x1,"ControlSet001\Services\fbwf","DisplayName","fbwf"
0x2,"ControlSet001\Services\fbwf","ImagePath","system32\DRIVERS\fbwf.sys"
0x1,"ControlSet001\Services\fbwf","Description","File Based Write Filter Driver"
0x4,"ControlSet001\Services\fbwf","ErrorControl",0x1
0x4,"ControlSet001\Services\fbwf","Start",0x0
0x4,"ControlSet001\Services\fbwf","Type",0x2
0x7,"ControlSet001\Services\fbwf","DependOnService","fltmgr"
0x1,"ControlSet001\Services\fbwf\Instances","DefaultInstance","Fbwf Instance"
0x1,"ControlSet001\Services\fbwf\Instances\Fbwf Instance","Altitude","226000"
0x4,"ControlSet001\Services\fbwf\Instances\Fbwf Instance","Flags",0x0
;--------------------------------------------------------------------------------------
0x4,"ControlSet001\Services\FltMgr","Type",0x2
0x4,"ControlSet001\Services\FltMgr","Start",0x3
0x4,"ControlSet001\Services\FltMgr","ErrorControl",0x1
0x2,"ControlSet001\Services\FltMgr","ImagePath","system32\DRIVERS\fltMgr.sys"
0x1,"ControlSet001\Services\FltMgr","DisplayName","FltMgr"
0x1,"ControlSet001\Services\FltMgr","Description","File System Filter Manager Driver"
0x4,"ControlSet001\Services\FltMgr","AttachWhenLoaded",0x0
;--------------------------------------------------------------------------------------
0x4,"ControlSet001\Enum\Root\LEGACY_FLTMGR","NextInstance",0x1
0x1,"ControlSet001\Enum\Root\LEGACY_FLTMGR\0000","Service","FltMgr"
0x4,"ControlSet001\Enum\Root\LEGACY_FLTMGR\0000","Legacy",0x1
0x4,"ControlSet001\Enum\Root\LEGACY_FLTMGR\0000","ConfigFlags",0x0
0x1,"ControlSet001\Enum\Root\LEGACY_FLTMGR\0000","Class","LegacyDriver"
0x1,"ControlSet001\Enum\Root\LEGACY_FLTMGR\0000","ClassGUID","{8ECC055D-047F-11D1-A537-0000F8753ED1}"
0x1,"ControlSet001\Enum\Root\LEGACY_FLTMGR\0000","DeviceDesc","FltMgr"
[AddLine]
"txtsetup.sif", "BusExtenders.Load",     "fbwf     = fbwf.sys"
"txtsetup.sif", "BusExtenders.Load",     "fltmgr   = fltmgr.sys"
"txtsetup.sif", "files.fbwf",     "fbwf.sys,4"
"txtsetup.sif", "files.fbwf",     "fbwflib.dll,2"
"txtsetup.sif", "files.fltmgr",   "fltmgr.sys,4"
"txtsetup.sif", "files.fltmgr",   "fltlib.dll,2"
其中文件 emptyregdb.dat 在XPSP2里提取的。
希望对大家有帮助。
作者: wuyouman01    时间: 2006-3-29 16:09
标题: [分享]成功在光盘启动的winpe上实现EWF!
下面引用由fujianabc2006/03/12 06:43pm 发表的内容:
真巧,以前我在无聊时也干过这事,最终把2000的控制台放在了一个2.88M的软盘镜像上了。
请问有没有修改好的OOBE BLUE CON 2.88M镜像?

作者: fujianabc    时间: 2006-3-29 18:47
标题: [分享]成功在光盘启动的winpe上实现EWF!
下面引用由wuyouman012006/03/29 04:09pm 发表的内容:
请问有没有修改好的OOBE BLUE CON 2.88M镜像?
以前无聊时干过,做完没多久就删了。
想要体积小的控制台,可以试试用nt 4光盘生成bluecon.
作者: wuyouman01    时间: 2006-3-29 20:29
标题: [分享]成功在光盘启动的winpe上实现EWF!
谢谢答复,控制台也没什么用。
作者: 安达    时间: 2006-3-29 21:00
标题: [分享]成功在光盘启动的winpe上实现EWF!
无论如何,谢谢fujianabc !
作者: zhfzl2006    时间: 2006-11-23 22:16
谢谢楼主,已经试验成功!!!
附新版的FLTMGR.SYS

[ 本帖最后由 zhfzl2006 于 2006-11-24 09:04 AM 编辑 ]

Snap2.jpg (21.46 KB, 下载次数: 41)

Snap2.jpg

Snap3.jpg (22.4 KB, 下载次数: 48)

Snap3.jpg

FLTMGR.rar

61.6 KB, 下载次数: 96, 下载积分: 无忧币 -2


作者: icyice_cc    时间: 2006-11-26 23:46
写入保护区的数据是压缩存放的,这样读写速度很慢
作者: khauyeung    时间: 2006-11-27 00:01
想指出一些本帖中提及的关于fbwf的概念:

楼主所说的“添加ewf功能”其实应该说是 “添加fbwf功能”。fbwf 类似于xp embedded的ewf,可以对winpe的光盘进行写操作。但是跟ewf不同,它是基于文件(而不是基于系统)的写过滤驱动器 (File Based Write Filter Driver)。

对于以XP和 2K3造成的winpe而言(Vista例外),fbwf可以有效应用于建基在光盘的winpe,包括iso。但是当应用于建基在硬盘的winpe,包括minint,sdi和img,fbwf将变得无效。

为了实现winpe的更大通用性,我把ramdriv和fbwf都安装上,并在建基在硬盘的winpe加上一个叫SDI.TAG的标签文件。我的 FbwfRamAuto 是这样控制的:

1. 假如没有发现SDI.TAG,就是光盘的winpe,自动分配20%内存作fbwf,5%内存作ramdriv,把环境变量temp和tmp指向X:。
2. 假如发现SDI.TAG,就是硬盘的winpe,自动分配25%内存作ramdriv 不设fbwf,在C盘设128MB的页文件,把环境变量temp和tmp指向C:\temp。

详情如下:
; <AUT2EXE VERSION: 3.2.0.1>

; ----------------------------------------------------------------------------
; <AUT2EXE INCLUDE-START: H:\Program Files\AutoIt3\MyScript\FBWFRamAuto.au3>
; ----------------------------------------------------------------------------

;;get system RAM in KB
$memget = MemGetStats()
;$sysram = round($memget[1] / 1024)



;SplashTextOn(" "," ...auto setting RAM Drive and FBWF... "  ,350, 30, -1, -1, 1, "",12,500)


;MsgBox(8192, "  Total System Memory "& $sysram & " MB", "   Total RAM drive "  & ($sysram/20) & " MB", 15)

If Not(FileExists(@ScriptDir & "\SDI.TAG")) Then

        $finalram = ($memget[1] / 20 * 1024)   ; 5% of System Memory in Bytes for Ram drive !
        If $finalram < 2097152 Then
                $finalram = 2097152
        Else
                If $finalram < 8388608        Then
                        $finalram = 4194304
                EndIf
        EndIf

        $finalfbwf = ($memget[1] / 5 / 1024)    ; 20% of System Memory in Mega Bytes for FBWF !
        If $finalfbwf < 32 Then
                $finalfbwf = 16
        EndIf

        ;;Write auto chosen size to the registry

             RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Ramdriv\Parameters", "DiskSize", "REG_DWORD", $finalram) ;; set ramdisk size
             RunWait("devcon.exe disable ramdriv", "", @SW_HIDE);; disable the ramdisk driver
             RunWait("devcon.exe enable ramdriv", "", @SW_HIDE);; re-enable the ramdisk driver to accept the new size

           RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\FBWF", "WinPECacheThreshold", "REG_DWORD", $finalfbwf) ;; set FBWF size
             RunWait("sc.exe start fbwf", "", @SW_HIDE) ;; enable FBWF service

        RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment", "temp", "REG_EXPAND_SZ", "X:");; set Environment Variable temp
        RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment", "tmp", "REG_EXPAND_SZ", "X:");; set Environment Variable tmp
        RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment", "ramdrv", "REG_EXPAND_SZ", "B:");; set Environment Variable ramdrv
        RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment", "ProfilesDir", "REG_EXPAND_SZ", "X:\Documents And Settings");; set Environment Variable ProfilesDir
        RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment", "UserProfile", "REG_EXPAND_SZ", "X:\Documents And Settings\Default User");; set Environment Variable UserProfile
        RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment", "USERNAME", "REG_SZ", "Default User");; set Environment Variable USERNAME
        RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment", "AppData", "REG_EXPAND_SZ", "X:\Documents And Settings\Default User\Application Data");; set Environment Variable AppData
        RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList", "AllUsersProfile", "REG_SZ", "All Users");; set AllUsersProfile
        RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList", "DefaultUserProfile", "REG_SZ", "Default User");; set AllUsersProfile
        RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList", "ProfilesDirectory", "REG_EXPAND_SZ", "X:\Documents And Settings");; set ProfilesDirectory
       
Else

        $finalram = ($memget[1] / 4 * 1024)   ; 25% of System Memory in Bytes for Ram drive !
        If $finalram < 2097152 Then
                $finalram = 2097152
        Else
                If $finalram < 8388608        Then
                        $finalram = 4194304
                EndIf
        EndIf

        ;;Write auto chosen size to the registry

             RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Ramdriv\Parameters", "DiskSize", "REG_DWORD", $finalram) ;; set ramdisk size
             RunWait("devcon.exe disable ramdriv", "", @SW_HIDE);; disable the ramdisk driver
             RunWait("devcon.exe enable ramdriv", "", @SW_HIDE);; re-enable the ramdisk driver to accept the new size

        RunWait("SetPageFile.exe c:\pagefile.sys 128", "", @SW_HIDE);;set 128MB pagefile to C:
        RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment", "temp", "REG_EXPAND_SZ", "C:\temp");; set Environment Variable temp
        RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment", "tmp", "REG_EXPAND_SZ", "C:\temp");; set Environment Variable tmp
        RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment", "ramdrv", "REG_EXPAND_SZ", "B:");; set Environment Variable ramdrv
        RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment", "ProfilesDir", "REG_EXPAND_SZ", "X:\Documents And Settings");; set Environment Variable ProfilesDir
        RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment", "UserProfile", "REG_EXPAND_SZ", "X:\Documents And Settings\Default User");; set Environment Variable UserProfile
        RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment", "USERNAME", "REG_SZ", "Default User");; set Environment Variable USERNAME
        RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment", "AppData", "REG_EXPAND_SZ", "X:\Documents And Settings\Default User\Application Data");; set Environment Variable AppData
        RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList", "AllUsersProfile", "REG_SZ", "All Users");; set AllUsersProfile
        RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList", "DefaultUserProfile", "REG_SZ", "Default User");; set AllUsersProfile
        RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList", "ProfilesDirectory", "REG_EXPAND_SZ", "X:\Documents And Settings");; set ProfilesDirectory

EndIf

exit


; ----------------------------------------------------------------------------
; <AUT2EXE INCLUDE-END: H:\Program Files\AutoIt3\MyScript\FBWFRamAuto.au3>
; ----------------------------------------------------------------------------
作者: 天风    时间: 2006-11-27 09:05
楼上的好强!

赞一个!

PS:本人已经在标准XP SP2上成功实现FBWF!
作者: xdg3669    时间: 2006-11-27 12:48
原帖由 天风 于 2006-11-27 09:05 AM 发表
楼上的好强!

赞一个!

PS:本人已经在标准XP SP2上成功实现FBWF!


版主:能否提示下方法?指导指导?
作者: 天风    时间: 2006-11-27 12:57
请查看FBWF相关帖子!
作者: basdk    时间: 2006-11-28 11:32
为什么附件下不了啊??

请楼主重新发一下.
作者: zhfzl2006    时间: 2006-11-28 13:43
原帖由 khauyeung 于 2006-11-27 12:01 AM 发表
想指出一些本帖中提及的关于fbwf的概念:

楼主所说的“添加ewf功能”其实应该说是 “添加fbwf功能”。fbwf 类似于xp embedded的ewf,可以对winpe的光盘进行写操作。但是跟ewf不同,它是基于文件(而不是基于系 ...

我在虚拟机中测试,分别设置内存128M和256M,RAMDRIVE设置为内存的1/8(12.5%),FBW设置为内存的1/10(10%)。
内存为128M时RAMDRIVE为16M自动设置成功;FBWF为32M,不成功。
内存为256M时RAMDRIVE为32M自动设置成功;FBWF为32M,不成功。
不知为何FBWF始终为32M???
作者: zhfzl2006    时间: 2006-11-28 14:02
刚才刻盘在实机上(512M内存)测试了一下,还是不行。

Snap2.jpg (82.33 KB, 下载次数: 46)

Snap2.jpg

Snap3.jpg (63.67 KB, 下载次数: 45)

Snap3.jpg

作者: zhfzl2006    时间: 2006-11-28 15:32
FBWF自动设置不成功。发现问题:
如果"WinPECacheThreshold"=dword:00000018项设置了,fbwf则启动后使用该设置值,而不使用FBWFRamAuto.exe设置的值;如果"WinPECacheThreshold"=dword:00000018项未设置了,也不使用FBWFRamAuto.exe设置的值,而是使用fbwf的默认值32M。也就是说,用FBWFRamAuto.exe自动设置无效,fbwf启动在FBWFRamAuto.exe运行之前。

Snap2.jpg (85.52 KB, 下载次数: 47)

Snap2.jpg

Snap1.jpg (66.76 KB, 下载次数: 45)

Snap1.jpg

作者: Civiwu    时间: 2006-11-29 16:34
呵呵,我用这个工具,在老九的PE光盘中加入了卡巴司机的杀毒软件(带保护功能,在线升级)!

见这里:http://vip.cech.com.cn/316334/8d ... 0d4fc099f14a2f.down



[ 本帖最后由 Civiwu 于 2006-11-29 04:42 PM 编辑 ]
作者: yfy6898    时间: 2006-12-2 22:19
PE上还用得着带保护功能啊?能扫描就行了嘛,我是把卡巴压缩放在PE里,运行时自解压到硬盘再运行。
作者: fliger    时间: 2009-2-3 13:25
精华帖子呀,收藏一下




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3