朝着心的方向前进
分类: WINDOWS
2009-10-20 13:48:53
Stephen Berard
Microsoft Corporation 适用于: 摘要:学习如何使用 Enhanced Write Filter (EWF) 并了解它的好处、它的限制以及一些有效使用它的技巧。 简介EWF 提供了一种保护卷以防止写入的手段。这使操作系统 (OS) 可以从只读媒体(如 CD ROM、写保护硬盘或闪存)中启动。所有对受到 EWF保护的卷进行的写入都被重定向到覆盖。这些写入被缓存在覆盖中并且作为卷的一部分提供。这会产生该卷可写的表象。覆盖可能存在于磁盘或随机访问内存 (RAM) 中。如果需要,可以将覆盖中存储的数据提交给受保护的卷。图 1 概述了 EWF。 图 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 覆盖。 下表概述了每个覆盖类型的优缺点:
配置基于磁盘的覆盖下列步骤详细说明了如何配置映像以支持 EWF 磁盘覆盖:
配置基于 RAM 的覆盖下列步骤详细说明了如何配置映像以支持 EWF RAM 覆盖:
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 和只读磁盘中启动。 |