Chinaunix首页 | 论坛 | 博客
  • 博客访问: 317403
  • 博文数量: 72
  • 博客积分: 3111
  • 博客等级: 中校
  • 技术积分: 668
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-30 15:45
个人简介

朝着心的方向前进

文章分类

全部博文(72)

文章存档

2014年(5)

2013年(1)

2012年(1)

2011年(1)

2010年(24)

2009年(40)

我的朋友

分类: WINDOWS

2009-10-20 13:48:53

在 Windows XP Embedded 中使用 Enhanced Write Filter (EWF)
2009-05-06 08:50
Stephen Berard
Microsoft Corporation

适用于:
Microsoft® Windows XP® Embedded with Service Pack 1

摘要:学习如何使用 Enhanced Write Filter (EWF) 并了解它的好处、它的限制以及一些有效使用它的技巧。*

简介

EWF 提供了一种保护卷以防止写入的手段。这使操作系统 (OS) 可以从只读媒体(如 CD ROM、写保护硬盘或闪存)中启动。所有对受到 EWF保护的卷进行的写入都被重定向到覆盖。这些写入被缓存在覆盖中并且作为卷的一部分提供。这会产生该卷可写的表象。覆盖可能存在于磁盘或随机访问内存 (RAM) 中。如果需要,可以将覆盖中存储的数据提交给受保护的卷。 1 概述了 EWF。

ewf_winxp01

1. EWF 概述

返回页首

覆盖的类型

Microsoft® Windows® XP Embedded with Service Pack 1 (XPE w/SP1) 中支持两个基本类型 EWF 覆盖。首先是基于磁盘的覆盖,它将所有写入操作重定向到硬盘上的不同分区。如果需要,可以将覆盖分区中存储的数据提交到受保护的卷。对于单个卷,可能存在多个磁盘覆盖,并且这些覆盖可能分层。通过这一机制,可以为磁盘创建多个检查点。您可以剥离覆盖层以便还原到以前的视图。这可以通过 EWF 管理器应用程序进行控制(有关详细信息,请参阅下面的“EWF 管理器应用程序”部分)。XPE w/SP1 每卷最多支持 9 个覆盖。

第二种类型的覆盖是基于 RAM 的覆盖。基于 RAM 的覆盖将所有写入操作重定向到内存。通常,当计算机关闭或重新启动时,该数据会丢失。XPE w/SP1 能够使该数据在关机后继续存在。但是,如果计算机不是正常关机,则数据会丢失。每个卷只能配置 1 个 RAM 覆盖。

下表概述了每个覆盖类型的优缺点:

基于磁盘的覆盖 基于 RAM 的覆盖

优点

1.

保护磁盘上的数据以避免被改变或破坏

2.

提供磁盘内容的多个快照

3.

允许将磁盘写入操作提交到受保护的卷

4.

还原到以前的覆盖级别

1.

保护磁盘上的数据以避免被改变或破坏

2.

启用无状态操作

3.

使 XPE 能够在没有持久性存储的系统上运行

缺点

1.

要求对驱动器进行分区以容纳覆盖分区

2.

需要额外的系统开销,可能影响某些设备上的性能

1.

需要额外的内存,以存储在覆盖中缓存的数据

2.

当系统重新启动时,数据丢失

返回页首

配置基于磁盘的覆盖

下列步骤详细说明了如何配置映像以支持 EWF 磁盘覆盖:

1.

在目标设计器中,向映像中添加 Enhanced Write Filter 组件。如果您要保护启动卷,则还需要包含 EWF NTLDR 组件。

2.

配置设备的设置,并选择 DISK 作为覆盖类型。在“EWF Volume Configuration”中,选择受保护的卷的数量和覆盖级别。根据您希望在覆盖中具有的空间量,设置分区大小。确保为每个受保护的卷输入磁盘号和分区号。还应该选中 Start EWF Enabled 复选框。有关所有字段的说明,请参阅 Windows XP Embedded 文档。

ewf_winxp02

2. 配置基于磁盘的覆盖

3.

配置、生成映像并将其部署到设备。需要对驱动器进行分区,以便在驱动器上的扩展分区中具有可用的空闲空间。这将由 EWF 用来在磁盘覆盖中存储数据。因此,它需要足够大以便容纳您的数据。例如,要使受保护的卷可以使用 100 MB 的覆盖,该分区必须起码为 100 MB。

如果扩展分区不存在,并且您具有的主分区少于四个,则将需要在驱动器上保留未分区的空间。

4.

启动设备。在 FBA 期间,EWF 将基于注册表中的设置配置本身。它将创建并格式化 EWF 分区。

返回页首

配置基于 RAM 的覆盖

下列步骤详细说明了如何配置映像以支持 EWF RAM 覆盖:

1.

在目标设计器中,向映像中添加 Enhanced Write Filter 组件。

2.

配置设备的设置,将 EWF 分区大小设置为 0,并且选择 RAM 作为覆盖类型。在“EWF Volume Configuration”中,选择受保护的卷的数量。将覆盖级别的数量设置为 1,将分区大小设置为 0。确保为每个受保护的卷输入磁盘号和分区号。而且,选中 Start EWF Enabled复选框。有关所有字段的说明,请参阅 Windows XP Embedded 文档。

ewf_winxp03

3. 配置基于 RAM 的覆盖

3.

配置、生成映像并将其部署到设备。您需要将驱动器分区,以便在该驱动器上的扩展分区中至少具有 32 KB 的可用空闲空间(有关详细信息,请参阅上一部分中的附注)。该空间将被 EWF 用于在前后两次启动之间存储 RAM 覆盖的配置数据。

4.

启动设备。在 FBA 期间,EWF 将基于注册表中的设置配置本身。它将创建一个最小的 EWF 分区来存储它的配置信息。

EWF 管理器应用程序

EWF 管理器应用程序是一个用于管理设备上的 EWF 的控制台实用工具,。它是一个可以添加到配置中的可选组件。它使您可以控制 EWF 操作。您可以通过发出以下命令来检查 EWF 状态:

Ewfmgr

EWF 管理器显示类似于以下内容的结果:

Overlay Configuration
Volume Size             2048030208
Segments                8192
Segment Size            249856
Free segments           8192
Max Levels              3
Max Protected Volumes   1
Protected Volumes       1
Overlay volume  percent full 0.00
Protected volumes
Arc Path "\Device\HarddiskVolume1"

您可以检查 EWF 卷和覆盖的状态,启用/禁用 EWF,设置检查点,以及提交和回滚更改。所有非状态命令都在下一次重新启动时生效。有关每个命令及其用法的详细信息,请参阅 Windows XP Embedded 文档。

EWF 问题疑难解答

EWF 在 FBA 过程中向 FBAlog.txt 文件报告错误。在 FBA 已经完成之后,可以分析该文件,以了解有关 EWF 的状态的详细信息。检查该信息,以确保 EWF 能够创建分区、创建正确的覆盖类型以及保护所需的卷。

创建 EWF 分区时失败

最常见的错误之一是在创建 EWF 分区时失败。请确保在具有不到四个主分区的驱动器上,具有处于扩展分区中的可用空闲空间或者未分区的空间。EWF 将从该空间创建分区以存储配置信息。就磁盘覆盖而言,该分区还将存储写入受 EWF 保护的卷的任何数据。这分区或许可以在磁盘管理器中看到;但是,它将不具有驱动器号。

不停地重新启动

当 FBA 试图在已经包含以前的 EWF 分区的系统上配置 EWF 分区时,可能发生不停地重新启动这种情况。这通常发生在开发场所中 — 在这里,反复使用同一系统进行开发和测试。要解决该问题,请清除 EWF 分区。这可以用以下命令完成:

Etprep /delete

写入 EWF 分区时出错

在写入受到 EWF保护的分区时,可能得到以下错误信息:

Delayed Write Failed. Windows was unable to save all data for the file

在用完 EWF 分区中的空间时,会发生这种情况。增加 EWF 分区的大小(基于磁盘的覆盖)或者安装额外的内存(基于 RAM 的覆盖)将有助于避免该问题。

成功技巧

下列主题讨论了一些与存储和磁盘卷有关的问题。

EWF 通常需要由一些持久性存储进行支持

大多数 EWF 配置必须将一些存储分配给 EWF。即使对于 RAM 覆盖而言,也是如此。这是因为 EWF 驱动程序需要在前后两次启动之间存储配置数据。对于磁盘覆盖而言,该数据存储在覆盖分区中。对于 RAM 覆盖而言,必须提供少量未分区的空间(大约 32 KB)。

对于只有单个受保护卷的 RAM 覆盖而言,存在例外。在这种情况下,EWF 分区可能在 FBA 完成之后删除。这是为了适应诸如 El Torito 和从闪存中启动之类的情况。在这种情况下,设置被存储在注册表中。

EWF 只支持由受保护的卷报告的可用空间数量

在基于磁盘和基于 RAM 的覆盖中,EWF 只支持由基础的、受保护的卷报告的数据量的写入操作。无论系统可用的空闲磁盘或 RAM 的数量如何,都是如此。这是因为 EWF 假设数据可能必须在基础卷中持续保存。

从基于磁盘的覆盖所保护的 EWF 卷中启动要求使用 EWF NTLDR

在从由基于磁盘的覆盖所支持的、受到 EWF 保护的卷中启动时,必须使用 EWF NTLDR。使用该组件而不是标准的 NT 加载程序 (NTLDR)。在从由基于 RAM 的覆盖所支持的受保护卷中启动时,不需要使用 EWF NTLDR。从 El Torito CD 启动时不需要使用 EWF NTLDR。

EWF 只支持基本磁盘

EWF 组件只能使用基本磁盘。动态磁盘不受支持。

小结

Enhanced Write Filter 为嵌入式开发人员提供了一种灵活的工具,以便防止卷被写入。这使 OS 和其他需要读写媒体的软件无须修改即可操作。它的灵活性使其可以在多种情况下使用,这包括从闪存、CD ROM 和只读磁盘中启动。

阅读(1067) | 评论(0) | 转发(0) |
0

上一篇:VxWorks基本模块简介

下一篇:VxWorks之任务

给主人留下些什么吧!~~