在构建好XPE操作系统上增加EWF功能

开发
如何在已经做好的XPE操作系统上构建EWF功能,这是一个经常被问到的话题。在实际应用环境中,经常会有这样的情况,我们手上已经有做好的XPE操作系统的设备,但是我们没有原始的XPE工程,这时如果我们需要将RAM模式的EWF修改成DISK模式的EWF,或者在Ghost后发现EWF不可用了,这时我们应该如何来处理和恢复EWF功能呢?
如何在已经做好的XPE操作系统上构建EWF功能,这是一个经常被问到的话题。在实际应用环境中,经常会有这样的情况,我们手上已经有做好的XPE操作系统的设备,但是我们没有原始的XPE工程,这时如果我们需要将RAM模式的EWF修改成DISK模式的EWF,或者在Ghost后发现EWF不可用了,这时我们应该如何来处理和恢复EWF功能呢?


    让我们先把应用环境来进行分类:

    1. 现有的XPE操作系统根本就不具有EWF功能,也就是在构建XPE操作系统的时候,没有使用EWF NTLDR。这种情况下,我们的XPE如果需要手动添加EWF功能,就需要先将系统原有的NT Loard改为EWF NTLDR,然后再设置使用RAM模式还是DISK模式。具体实现方式请参见:http://lzg-ad.blog.sohu.com/76908162.html

    2. 现有的XPE操作系统已经具有EWF功能,也就是在构建XPE操作系统的时候,已经添加了以下的EWF组件:

  • EWF NTLDR                                        EWF操作系统内核
  • Enhanced Write Filter                            EWF核心功能组件,包括ewfdll.dll,ewf.sys,ewfinit.dll.ewf.inf等核心文件
  • Enhanced Write Filter API (EWF API)              EWF API支持文件,包括ewfapi.dll等编程接口
  • EWF Manager Console application                  EWF控制台命令组件,是执行ewfmgr的必要组件

    针对这样的XPE操作系统,再修改或者恢复EWF功能,实现起来就比较容易。下面我们来分别看一下如何恢复或者设置EWF的RAM和DISK模式。以下例子均假设XPE的EWF分区为C盘。

(1)RAM模式

    如果我们的XPE在重新Ghost后出现EWF-RAM错误的情况,或者在使用过程中出现EWF-RAM损坏的情况,我们应该如何来恢复呢?

  • 首先,必须确认EWF功能已经不可用(如果可用,我们就不需要恢复了),方法是打开CMD->ewfmgr c:,执行命令后返回的应该是错误信息。
  • 其次,需要定义一个注册表文件,方法是新建一个文本文件,然后将以下内容拷贝到这个文本文件中:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ewf]
"ErrorControl"=dword:00000001
"Group"="System Bus Extender"
"Start"=dword:00000000
"Type"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F}]
"UpperFilters"="Ewf"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ewf\Parameters]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ewf\Parameters\Protected]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ewf\Parameters\Protected\Volume0]
"VolumeID"="{1EA414D1-6760-4625-8CBE-4F9F85A48E15}"
"Type"=dword:00000001
"ArcName"="multi(0)disk(0)rdisk(0)partition(1)"

  • 最后,把这个文件命名为XXX.reg,在XPE操作系统上双击导入到注册表中。重新启动计算机,然后在CMD中执行ewfmgr c:,看看EWF的状态是否正常。

注意:这个EWF构建时必须将XPE生成在C盘,同时C盘分区不能太大,如果在别的盘符,那就改一下组册表文件,修改方法如下:

把注册表文件用记事本打开后,最后一行:

如果部署在C盘,则应该是:
"ArcName"="multi(0)disk(0)rdisk(0)partition(1)"

如果部署在D盘,则应该是:
"ArcName"="multi(0)disk(0)rdisk(0)partition(2)"

依次类推。

(2)DISK模式

    如果我们的XPE在重新Ghost后出现EWF错误的情况,或者在使用过程中出现EWF损坏的情况,或者原有的EWF是RAM模式,我们需要修改为DISK模式。应该如何来实现呢?

  • 首先,我们要保证我们的XPE操作系统中已经添加了Enhanced Write Filter和Enhanced Write Filter API (EWF API)组件。确定方法可以在XPE中搜索ewfdll.dll和ewfapi.dll文件,如果没有就说明没有添加这两个组件。如果没有也没关系,我们可以手动把这两个文件拷贝到XPE系统的system32目录下并注册就可以了。
  • 其次,构建注册表文件,新建一个文本文件并命名为XXX.reg,把以下内容拷贝到这个文件中:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EWF\FBA]
"DiskSig"=dword:4f544c45
"OVSize"=dword:0007a120             ----> 应该是500m  这里设置你的未分配分区的大小
"OVLevel"=dword:00000001
"PVConfigs"=dword:00000001
"EwfEnable"=hex(7):30,00,00,00,00,00
"EnableLazyWrite"=hex(7):30,00,00,00,00,00
"PVDisk"=hex(7):30,00,00,00,00,00
"PVPart"=hex(7):31,00,00,00,00,00
"PVDiskType"=hex(7):30,00,00,00,00,00
"PVType"=hex(7):30,00,00,00,00,00    ---〉30 为disk ,31 为ram
"PVOptimize"=hex(7):32,00,00,00,00,00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EWF\Parameters\Protected\Volume0]
"ArcName"="multi(0)disk(0)rdisk(0)partition(1)"
"ClumpSize"=dword:00000200
"Type"=dword:00000000                ----〉0为disk  1 为 ram
"Enabled"=dword:00000001
"VolumeID"="{CCE9E3DA-1B74-43db-910A-9D58FACF88FE}"   --->这个要加上 可以用GUIDGEN产生一个来

  • 再次, 在XPE操作系统中打开磁盘管理器,然后再C盘分区后面建立一个未分配磁盘分区,分区大小应该和你注册表设置的一致。注意,这个分区应该存在于C盘和D盘之间,如果创建在所有分区的最后面,可能会出错,只是可能。呵呵;
  • 然后,在XPE中导入上面做好的注册表文件(XXX.reg),重新启动计算机;
  • 最后,在XPE的CMD中运行以下命令:

rundll32 ewfdll.dll,ConfigureEwf
然后重新启动计算机。重启完成后,在CMD中执行ewfmgr c:,看看EWF的状态是否正常。
注意:如果未分配空间在其他分区后面,不一定能够成功。

【编辑推荐】

  1. Windows XP Embedded镜像文件部署方法详解
  2. Windows XP Embedded中的FBWF初探
  3. 在Windows Embedded中创建Silverlight组件
责任编辑:book05 来源: 搜狐博客
相关推荐

2009-03-19 11:02:47

Windows Emb

2010-05-04 15:03:12

Unix操作系统

2009-03-10 17:43:54

Linux操作系统磁盘阵列

2010-04-15 11:21:56

2010-03-03 10:55:39

2010-03-04 17:27:04

Android 2.0

2009-11-07 21:49:28

2012-10-09 11:02:11

IBMdw

2021-07-28 15:59:09

苹果 iOS系统

2021-09-28 13:00:21

Vagrant脚本

2009-12-09 17:25:19

Linux操作系统

2009-09-02 15:55:52

雪豹苹果操作系统

2010-01-06 10:37:55

Ubuntu操作系统

2009-02-20 19:56:26

WindowsLinux双系统

2009-12-21 10:41:39

2013-06-10 23:23:29

操作系统OS X

2022-03-30 08:24:25

操作系统内核开源软件

2022-03-24 08:03:54

cephadm操作系统kylin v10

2019-12-20 10:32:12

操作系统Android 数据

2010-04-15 14:40:26

Unix操作系统
点赞
收藏

51CTO技术栈公众号