win7 Embedded EWF与HORM特性(实战验证)

2023-11-01

前言

         这两天在网上搜了很久,发现描述EWF特性的文章,大部分都是关于xp embedded的。真正运用在win7 embedded的少之又少,特别是中文描述的就更少了。于是,将自己这两天整理的结果供大家参考一下。

先决条件

1.目标机(能够安装win7 embedded系统的设备),1G内存(最好4G),8G硬盘(越大越好),对应的显卡等驱动

2.ICE(Image Configuration Editor)部署工具,可以到微软官网上下载,这里就不给下载地址了。


首先,介绍一下EWF(Enhance Write Filter)特性

         EWF是一种对物理存储介质进行写保护的技术,它将写操作重定向到RAM等介质,从而减少了磁盘的读写次数。当用户需要将信息写入磁盘的时候,可以通过相应的API,将数据信息写入到磁盘中。

EWF分为3种模式:

   1.RAM mode

   2.RAM-REG mode

   3.Disk mode

EWF两种mode之间的区别

        不知道什么原因在win7 embedded中时没有disk mode的。在msdn中也只提到RAM mode和RAM-REG mode两种。

        什么时候需要用到RAM mode或者RAM-REG mode得看自己的需求。它们二者其实区别也不大,只是一个把EWF Volume信息写到磁盘上,另外一个将EWF Volume的信息写到注册表中。看下下面的图,也许你就会有个大概的了解了。

                                                          

                                                       


一般情况下,RAM mode只保护一个分区,RAM REG mode则能保护多个分区。下面,就来部署拥有EWF功能的系统吧!微笑

部署EWF保护系统

        打开ICE工具,新建一个Answer file,打开Packages\FeaturePack,将Boot Environments下的Enhanced Write Filter Environment添加入Answer file,然后将Embedded Enabling Features下的Enhanced Write Filter With HORM添加入Answer file。

        选择Validate菜单项中的Add Required Packages。最后,解决Validation信息栏中的所有错误后,保存该部署文件EWF_RAM.xml。

        如上所述,我们没有对EWF特性进行设置而部署的系统,默认情况下是RAM REG mode。RAM REG mode模式可以通过部署好的系统中,通过修改注册表的信息来配置EWF特性的。这个在后续内容中会做详细介绍。

RAM mode介绍

         现在,我们先来介绍RAM mode。我们重新打开刚才保存的部署文件EWF_RAM.xml。

         选中Answer file文件中的Enhanced Write Filter With HORM,在属性页中选中Specialize。选择EWFMode为RAM模式,在ProtectedVolumes右键选择Insert New Volume。输入一个唯一的key值,填写需要保护的DiskNumber和PartitionNumber。

                                            

         剩下的工作就是安装系统了,可以用u盘或是其他介质,在Build Image的过程中,将我们的部署文件EWF_RAM.xml作为模板安装用户定制的win7 Embedded系统。

......

         安装完成后,在命令提示符下,输入ewfmgr -all可以查看所有被ewf保护的磁盘。使用命令ewfmgr c: -enable打开EWF对C盘的保护,此时,需要重启才能开启EWF功能。

         重启电脑后,在c盘下新建一个文件,再次重启电脑,发现该文件丢失,当确实需要将该文件保存在c盘时,可以在命令提示符下输入ewfmgr c: -commit。注:命令提示符应该是以管理员权限操作。

         RAM mode在部署阶段完成配置,相比RAM REG mode要相对简单,当然RAM REG mode也可以在部署阶段完成相应的配置工作。

RAM REG mode介绍

         下面重点介绍一下RAM REG mode,根据之前我们没有做过任何配置的部署文件EWF_RAM.xml。通过它安装的系统在默认情况下是RAM-REG mode。当然,用户也可以选择在部署阶段指定保护的系统磁盘。

        RAM REG mode主要是对注册表进行相应的操作,其实也就是对应的EWF Volume信息。

        1.在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F}目录下添加项值“UpperFilters”=“Ewf”

      2.在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ewf目录下添加“ErrorControl”=dword:00000001、“Start”=dword:00000000、“Type”=dword:00000001。

      3.在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Ewf\Parameters\Protected\Volume0目录下添加“Type”=dword:00000001、“Enabled”=dword:00000001、“CompareBeforeAlloc”=dword:00000000、“DiskSignature”=dword:00000000、“PartitionOffset”=hex(b):00,00,00,00,00,00,00,00

      4.如果要保护多个分区,则类比3,将Volume0改为Volume1,依次类推。


      在xp Embedded时,配置RAM REG好像用的是ArcName来标识保护的分区,但是win7采用的是“DiskSignature”和“PartitionOffset”,那么这两个值我们该如何获取了?

      不用着急,win7 Embedded中有相应的工具能帮我们这个忙,他们分别是DiskPart和DiskPar。DiskPart在我们部署好的系统中时自带的,DiskPar则需要从网上去下载。都是很好找的工具,这里也不提供下载地址了。

      在命令行中,输入diskpart运行diskpart控制台,然后输入select disk c:,disk detail;便能看见我们的DiskSignature值(十六进制)。然后,在命令行输入diskpar -i c:可以看到PartitionOffset值(十进制--这里特别注意!生气)。最后,在注册表中输入我们查询到的值后,重启电脑,再输入同RAM mode相同的ewf命令就能像RAM mode一样运行了。

      这里值得一提的是,如果需要关闭ewf功能,只能输入-commitanddisable。因为注册表内容是在c盘上的,如果直接-disable是不能关闭ewf功能的。同时,-commitanddisable -live只在RAM mode下有效。

HORM介绍

      HORM功能在RAM mode和RAM REG mode是一样的。所以就一起介绍了。在命令行下输入ewfmgr c: -activatehorm开启HORM特性。此时,选择休眠计算机,再次重启时,发现windows的提示是“正在恢复windows”,而不是以前的"正在启动windows"。而且只需要不到10s便能启动我们的系统了,系统启动后,上次休眠时未关闭的应用进程也依然在运行。

      这个原因主要是,在c盘下有个hiberfil.sys文件,当选择horm特性休眠时,会将该状态下的内存拷贝到该文件中,下次启动的时候,就会从该文件中把数据拷回内存中运行,所以会有这么快的开机体验。

后续

      迷迷糊糊写了一大堆,发现把自己给写晕了。东西确实很杂,欢迎大家来拍砖。如果确实需要文中说到的资源下载文件,可以给我留言。也欢迎大家来与我沟通交流。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

win7 Embedded EWF与HORM特性(实战验证) 的相关文章

随机推荐

  • 携程笔试2021.09.09

    三道编程 第一题 AC 类似于linux系统下 文件路径的前进和后退以及输出当前路径的指令 思路 直接模拟就可以 不过每一行用的nextInt 和next 接收数据的时候需要注意用nextLine 把回车吃掉 输入 7 cd a cd b
  • Git 安装以及使用教程

    1 Git简介 Git是一个开源的分布式版本控制系统 可以有效 高速的处理从很小到非常大的项目版本管理1 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件 2 Git工作示意图
  • Kettle部署集群

    环境 1台Windows主机 2台Linux服务器 软件版本 Kettle7 0 目的 搭建Kettle集群 过程 1 安装Kettle Kettle程序整合了Linux平台和Windows平台 所以直接解压官网文件到磁盘上就OK啦 2 设
  • Android studio -- java.lang.nullpointerexception(no error message)

    Android Studio若出现 java lang nullpointerexception no error message 则删掉工程下的 gradle文件夹 重启Android Studio 问题解决 详细解答地址 http st
  • MySQL学习之DML语言

    MySQL学习之DML语言 DML SELECT完整语法 创建User 表 单表查询 保留关键字 查询空值 AND多条件查询 OR 多条件查询 DISTINCT 查询结果排序 分组查询 LIMIT 关键字 连接查询 DML 数据操纵语言DM
  • 【现代密码学原理】——期末复习(冲刺篇)

    前言 快考试了 做篇期末总结 都是重点与必考点 博主预测考点 计算题 RSA Diffie Hellman密钥交换 EIGamal 密钥交换 使用SHA 512算法 计算消息的Hash值 计算消息的HMAC 应用题 代替技术 1 2个 置换
  • Flutter升级后在Android studio上提示卡顿

    背景 32g台式机内存 amd 2700cpu 但是在Android studio上进行flutter 代码依旧感觉到卡顿 卸载重装了两次 依旧卡顿 无奈转vscode 奈何vscode用得还是效率不够高 经过某次搜索 尝试后 便记录之 举
  • 使用Python的win32com库实现对PowerPoint的操作

    使用Python的win32com库实现对PowerPoint的操作 1 引言 PowerPoint是微软公司开发的一款流行的演示文稿软件 广泛应用于演讲 培训和商务展示等场景 win32com库是Python的一个扩展模块 可以用于操作W
  • 置信区间与预测区间

    作者记录方便查询 置信区间 学习过程中 在计算置信度与置信区间的时候 所估计的变量常常是总体的某个参数 均值 方差等等 这时的已知条件一般为样本 通常还有总体分布 未知的 也是需要估计的是总体参数 因为仅仅估计某一个点的准确度不够 所以使用
  • 染色日志是怎么实现的?

    底层的rpc框架实现的 其实就是给每一次请求的源头处 加上一个seqence id id内容可以是qq号 时间戳 随机数 每次记日志的时候 都打把seqence id打出来 rpc调用的时候 由于跨机器了 需要在rpc消息中把这个seqen
  • 【期末复习】多媒体技术

    参考博客 多媒体技术期末复习题 多媒体信息技术 复习思考题 考试重点 1 JPEG压缩编码算法实现步骤 2 APCM DPCM ADPCM的区别 3 哈夫曼编码计算 画哈夫曼树 计算码长 4 颜色空间转换 RGB与CMY 还是YUV 之间
  • VBA 32位代码适配64位

    很久前用 Access VBA 写个程序 在64位的 Office 下一直报错 遂一直用 32位的 Office 最近尝试安装了 Office 2021 看到那图标那界面顿时爱了 一时没有找到 32位 的 Office 2021 遂决定解决
  • c语言写我爱你中国编程,c程序设计案例汇编课件.ppt

    C程序设计案例汇编 2011 4 第二章初识C语言程序设计 学习目标通过本章的学习 学会 1 在屏幕上输出显示需要的信息 2 给予简单的数据 进行处理 输出结果 3 输入输出函数的简单使用 4 简单的分支操作 5 简单的循环操作 C语言程序
  • SQLserver的Always On 可用性组

    Note Always On笔记 1 always on是基于 高可用性组的 1 1高可用性组 是一组SQLserver实例 由一个或多个主数据库 和 多个辅助数据库构成 1 2高可用性组之间 数据是同步的 有两种方式同步数据 同步提交模式
  • 哈希字符串入门 P3370洛谷

    题目链接 描述 如题 给定N个字符串 第i个字符串长度为Mi 字符串内包含数字 大小写字母 大小写敏感 请求出N个字符串中共有多少个不同的字符串 输入格式 第一行包含一个整数N 为字符串的个数 接下来N行每行包含一个字符串 为所提供的字符串
  • Spring Security:保护Spring应用程序的最佳实践

    目录 1 Spring Security是什么 它的作用是什么 2 Spring Security如何实现身份验证和授权 3 什么是Spring Security过滤器链 4 Spring Security如何防止跨站点请求伪造 CSRF
  • 单片机使用有线以太网联网的解决方案

    1 有MII RMII接口 且内置MAC 的单片机 如 STM32F407 STM32F107 ESP32 方案 外置PHY 且内部程序要运行TCP IP协议栈 PHY芯片推荐列表 LAN8720 LAN8742 DP83848 2 无MI
  • 【编译原理】机测笔记

    A 小C语言 词法分析程序 lt 参考代码 gt include iostream using namespace std 定义6个关键词 string S 6 main for if else int while Todo 设置displ
  • TypeScript:void, null, undefined的区别

    void Typescript中的void 与C语言中使用void定义一个函数时的意义一样 表示该函数没有返回值 function noReturn void console log This function don t have ret
  • win7 Embedded EWF与HORM特性(实战验证)

    前言 这两天在网上搜了很久 发现描述EWF特性的文章 大部分都是关于xp embedded的 真正运用在win7 embedded的少之又少 特别是中文描述的就更少了 于是 将自己这两天整理的结果供大家参考一下 先决条件 1 目标机 能够安