第一部分:介绍
使用Microsoft® Windows® XP Embedded我们可以创建一个基于Compact Flash™ (CF卡)引导运行的XPE操作系统。使用CF卡有很多优势,最显著的优势是创建嵌入式装置,这些设备通常较为可靠的,因为他们都没有任何活动部件。使用CF卡的缺点是,它有一定的读写次数限制,当我们反复的对CF进行读写操作的时候,随着时间的推移,CF上的坏块就会越来越多,同时读写速度也会越来越慢,甚至导致最终的系统崩溃或者文件丢失。增强性过滤写入功能(EWF)提供了一种保护CF卡的方式,通过限制直接写入的方式,避免了频繁的读写对CF卡造成的损坏,从而延长了CF卡的使用寿命和读写次数。本文主要描述了如何在CF卡上部署具有EWF功能的XPE操作系统和如何在CF卡上开启EWF功能。
注意,本文提供的方案是假设你的CF卡是不可进行分区操作的,即属于可移动磁盘类型的CF卡。有很多厂商在生产CF卡的时候,就将CF卡标识为本地磁盘或者固定磁盘,这类的CF可以和IDE一样的进行分区和部署具有EWF功能的XPE,不需要使用本文提供的方法进行EWF的部署。当然,如果能够使用已经标识为本地磁盘的CF卡,还是建议使用这样的CF卡,因为它能够提供更好的功能支持和存储持久数据。
在阅读本文之前,建议先了解一下关于EWF的运行原理和工作模式,可以参看文章:lzg_ad:EWF原理详解。本文提供的EWF部署方案是将EWF设置存放在注册表中,这样就不需要有特定的EWF分区。虽然该方案解决了可移动磁盘类型的CF卡不能设置EWF分区的问题,但是他也限制了EWF的很多功能,第一是只能有一个被保护卷,如果你需要保护多个分区,那么你需要使用可分区的CF卡;另一个是禁止(-disable)命令不能使用,这是因为EWF设置只能够存储在注册表中,同时注册表被EWF写保护了,因此命令操作会失效。但是,你可以使用-commitanddisable来完成相关的设置操作,因为通过这个命令首先会把对目标分区所做的操作提交到真实的CF卡中去,重启后,命令和设置不会丢失。
第二部分:构建镜像文件
首先,我们需要象平常一样,利用目标设计器来构建你的XPE镜像。一般情况下,如果想使用EWF,该磁盘必须可以进行分区操作,而XPE将在未使用的磁盘空间上创建EWF分区。而大多数CF卡由于是可移动磁盘,所以他不能够进行分区。因此,EWF必须通过手动配置注册表的方式在CF卡上实现。要做到这一点,我们要先建立XPE镜像,然后在FBA完成通过注册表开启EWF。
在你的XPE镜像中,添加一下组件:
1.Enhanced Write Filter 
2.EWF NTLDR 
3.EWF Manager Console application 
4.Registry Editor (optional) 
5.Enhanced Write Filter API (optional)
另外,你必须确认你将EWF缺省状态设置为Disable,同时没有创建EWF分区。要想实现这两点,首先在Enhanced Write Filter组件的Settings中清除Start EWF Enabled复选框上的勾。如下图所示:
其次,禁用FBA DLL/COM Registration组件设置,该设置在Enhanced Write Filter组件的Resources设置中,如下图所示:
图2:禁用FBA DLL/COM Registration
如果以上设置没有进行的话,那么EWF将会尝试创建EWF分区并且失败。如果EWF开始便是启用状态,那么针对一下的修改将不会起作用,因为EWF将防止数据被写至最底层的磁盘分区。
第三部分:配置
下一步我们将部署做好的XPE镜像文件到你的目标硬件上。拷贝镜像文件到CF卡并启动进行FBA,等待FBA完成。
注意   如果你使用File Allocation Table (FAT)文件格式格式化你的设备,你需要运行bootprep.exe 来创建引导分区。任何经过手动修改的XPE镜像都需要做这一步操作,因为你将在下一步开启EWF功能。
第四部分:启用EWF
下一步我们将在引导分区上(C盘)开启EWF功能。因为在FBA前,我们已经在Enhanced Write Filter的配置中禁用了EWF功能,所以EWF没有经过目标设计器的配置和FBA的配置过程。这些必须手动的在注册表中进行设置。
首先,验证一下的注册表信息出现在你的目标设备中:
[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)"
这些更改也可以通过在注册表编辑器中导入一个注册表文件(.reg)来实现。或者你也可以在其它计算机上离线编辑好这个注册表文件,然后导入到目标机的注册表内。其中最后一个键值"ArcName", 是指的需要保护的目标机磁盘分区的ARC路径,可根据需要进行设置。
最后,重新启动你的目标机,EWF功能将会启动,同时保护目标磁盘的写操作。
第五部分:问题处理
EWF控制程序(EWFMGR.exe)是一个针对被保护磁盘的控制工具,你可以通过这个命令来完成EWF的各项操作。你可以使用以下命令来检查EWF当前的工作状态:
ewfmgr c: (当C盘是你要保护的磁盘分区)
执行该命令后,EWF管理程序将显示以下类似的信息:
Protected Volume Configuration
Type            RAM
State           ENABLED
Volume ID       BB E6 0E BC 00 64 15 00 05 00 00 00 00 00 00 00
Device Name     "\Device\HarddiskVolume1" [C:]
Max Levels      1
Clump Size      512
Current Level   1
Memory used for data 2624000 bytes
Memory used for mapping 4096 bytes
如果你试图用EWF管理程序去检查一个没有保护的分区状态时,你将会得到一个错误。这个错误信息将会指出无法找到指定的保护卷。所有更改当前EWF状态的命令都将在重新启动后生效。如需更多资讯,请参阅Windows XP Embedded documentation。但必须注意的是,利用注册表来配置EWF,禁用EWF的操作只能通过执行commitanddisable命令来完成。
Ewfmgr c: -commitanddisable -live
第六部分:结尾
Enhanced Write Filter(EWF)通常用来保护Flash介质的存储媒体的写操作,这有助于延长Flash存储器的使用寿命。不幸的是,EWF的标准配置不能用于所有Flash媒体。通过设置注册表的方法提供了一种解决方案,用于当标准的EWF配置方式不能正常地工作或不能正常部署的情况,这种方案适合于任何介质类型的媒体。
如需更多信息,请参阅Windows XP Embedded的产品文档或者Embedded Community Web site
本文转自雷志刚 51CTO博客,原文链接:http://blog.51cto.com/leizhigang/238250

lzg_ad:在CF卡上实现EWF功能相关推荐

  1. 在CF卡上实现TrueFFS

    CF卡是一种基于Flash技术的容量大.携带方便的存储介质,已在嵌入式系统等领域得到广泛的应用:但是,有限的擦写次数极大地限制了CF卡的使用寿命.TrueFFS通过一系列算法,能够延长CF卡的使用寿命 ...

  2. 在CF卡上建立文件系统和安装引导加载程序

    CF卡在嵌入式工控领域越来越多的被应用,如何在CF卡上构建嵌入式linux是开发中一个基础但非常重要的过程! 本文介绍在CF卡上建立用于PC104板卡上的根文件系统,着重介绍了针对CF卡的操作,至于具 ...

  3. [原创] 利用busybox, extlinux 在工控机CompactFlash(CF卡)上构建Linux系统(上)

    上篇:CF卡分区, extlinux的安装 中篇:构建根文件系统 下篇:2.6内核剪裁及Busybox编译配置及其分析 硬件平台:研华3355 软件:busybox-1.13.3, extlinux ...

  4. [原创] 利用busybox, extlinux 在工控机CompactFlash(CF卡)上构建Linux系统(中)

    上篇:CF卡分区, extlinux的安装 中篇:构建根文件系统 下篇:2.6内核剪裁及Busybox编译配置及其分析 一个基本的文件系统应该包括: busybox (提供 shell 命令集) 设备 ...

  5. 在CF卡上安装Gentoo

    # 配置网卡 livecd ~ # dhcpcd eth0 显示:offered 192.168.100.230 from 192.168.100.1 表示成功 #不同的机子ip不同 # 启动ssh服 ...

  6. 利用busybox, extlinux 在工控机CompactFlash(CF卡)上构建Linux系统(下)

    < 工控机 (AMD LX处理器平台, 非ARM) Linux kernel & Busybox 编译选项配置 > (一) 配置并编译Busybox: 说明, 此次编译的目标机不是 ...

  7. linux cf卡格式,CF卡上的Linux启动过程分析

    一个嵌入式linux操作系统可以简单的抽象为,引导程序bootloader.内核vmlinuz.文件系统filesystem. Bootloader是系统加电后运行的第一段代码,一般它只在启动系统时非 ...

  8. cf卡格式化后还能数据恢复么?相机cf卡误删怎么恢复

    cf卡格式化后还能数据恢复么?即使它自身有着比较大的优势,但是在日常使用过程中,还是会遇到数据丢失的问题,比如说在操作时,不小心误删除,意外格式化,或者中病毒等等.那么对于误格式化的情况来说,如果没有 ...

  9. Xscale PXA255处理器与CF卡的接口设计

    Xscale PXA255处理器与CF卡的接口设计 以导航设备存储系统应用为例,本文讨论了Intel Xscale PXA255嵌入式处理器与CF卡的硬件接口设计,并以读写CF卡扇区的程序为例,给出了 ...

  10. linux卸载cf卡命令,嵌入式Linux 中CF卡的驱动和管理技术研究

    在嵌入式Linux系统中,为了在没有PCMCIA控制器的情况下仍然要利用CompactFlash存储卡(简称CF卡)作为存储设备,作者从CF卡的硬件特性入手,在系统层基于CF卡的memory寻址访问方 ...

最新文章

  1. linux变量最大长度,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  2. Vue 子组件调用父组件的方法
  3. 关于离散平稳信源的扩展信源的简单性质的练习题目(扩展信源划重点
  4. linux命令grep如何使用,Linux命令之grep命令简单使用
  5. linux 7升级win10双系统,安装 Windows 10 + Centos 7 双系统共存
  6. HTML和CSS面试题—整理过的48题,关注收藏,持续更新
  7. 2020年全球锂电池电芯产值将超过3400亿元
  8. ES集群不通,日志报[node-3] not enough master nodes discovered during pinging (found [[Candidate{node={node-3
  9. 利用scrapy爬取新浪体育新闻的小例子
  10. [C程序设计]请编程序将“China”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。
  11. 一次培训机构的Java面试
  12. 半圆形进度条(html)
  13. python 列表根据汉字拼音进行排序 / 查询结果集(列表嵌套字典)根据特定key字段拼音进行整体排序
  14. OpenGL学习笔记(十五)
  15. android的资源混淆,android混淆资源引发的血案以及学习感受资源混淆
  16. 爬取5K分辨率超清唯美壁纸
  17. fetch用英语解释_fetch什么意思_fetch是什么意思中文翻译
  18. 解决 Problematic frame: C [sigar-amd64-winnt.dll+0x14ed4] 问题 (JDK11 后版本生成 JRE, 得到当前进程)
  19. 2023年9月数学建模:黄河小浪底调水调沙问题
  20. android easyplayer截屏,EasyWasmPlayer H265播放器是如何实现视频截图功能的?

热门文章

  1. 架构图、流程图、结构图、功能图、逻辑图
  2. 项目进度管理表模板_IT项目进度管理—你能驾驭的项目节奏
  3. 六、DMSP/OLS夜间灯光数据之GDP空间化的反演
  4. 软考初级程序员的备考经验分享
  5. 【Verilog HDL】4选1数据选择器
  6. Download ebook from Syngress Publishing
  7. stc单片机c语言编程软件,stc isp官方下载-STC单片机ISP下载编程软件下载v6.85i 官方最新版-西西软件下载...
  8. echarts引入china报错(The GeoJSON of the map must be provided)
  9. echarts版本升级导致Chinamap渲染报错问题(vue2)
  10. 谁抢光了你的火车票?