ewf

用於管理設備的控制台實用工具

EWF (Enhanced Write Filter)提供了一種保護卷以防止寫入的手段。這使操作系統(OS) 可以從只讀媒體(如 CD ROM、防寫硬碟或快閃記憶體)中啟動。所有對受到 EWF保護的卷進行的寫入都被重定向到覆蓋。這些寫入被緩存在覆蓋中並且作為卷的一部分提供。這會產生該卷可寫的表象。覆蓋可能存在於磁碟或隨機訪問內存(RAM) 中。如果需要,可以將覆蓋中存儲的數據提交給受保護的卷。

覆蓋類型


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.還原到以前的覆蓋級別
5.保護磁碟上的數據以避免被改變或破壞
6.啟用無狀態操作
7.使 XPE 能夠在沒有持久性存儲的系統上運行

缺點

1.要求對驅動器進行分區以容納覆蓋分區
2.需要額外的系統開銷,可能影響某些設備上的性能
3.需要額外的內存,以存儲在覆蓋中緩存的數據
4.當系統重新啟動時,數據丟失

磁碟覆蓋


下列步驟詳細說明了如何配置映像以支持 EWF 磁碟覆蓋:
1.在目標設計器中,向映像中添加 Enhanced Write Filter 組件。如果您要保護啟動卷,則還需要包含 EWF NTLDR 組件。
2.配置設備的設置,並選擇 DISK 作為覆蓋類型。在“EWF Volume Configuration”中,選擇受保護的卷的數量和覆蓋級別。根據您希望在覆蓋中具有的空間量,設置分區大小。確保為每個受保護的卷輸入磁碟號和分區號。還應該選中 Start EWF Enabled複選框。
3.配置、生成映像並將其部署到設備。需要對驅動器進行分區,以便在驅動器上的擴展分區中具有可用的空閑空間。這將由 EWF 用來在磁碟覆蓋中存儲數據。因此,它需要足夠大以便容納您的數據。例如,要使受保護的卷可以使用 100 MB 的覆蓋,該分區必須起碼為 100 MB。
注 如果擴展分區不存在,並且您具有的主分區少於四個,則將需要在驅動器上保留未分區的空間。
4.啟動設備,在 FBA 期間,EWF 將基於註冊表中的設置配置本身創建並格式化 EWF 分區。

覆蓋


下列步驟詳細說明了如何配置映像以支持 EWF RAM 覆蓋:
1.在目標設計器中,向映像中添加 Enhanced Write Filter 組件。
2.配置設備的設置,將 EWF 分區大小設置為 0,並且選擇 RAM 作為覆蓋類型。在“EWF Volume Configuration”中,選擇受保護的卷的數量。將覆蓋級別的數量設置為 1,將分區大小設置為 0。確保為每個受保護的卷輸入磁碟號和分區號。而且,選中 Start EWF Enabled複選框。有關所有欄位的說明,請參閱 Windows XP Embedded 文檔。
3.配置、生成映像並將其部署到設備。您需要將驅動器分區,以便在該驅動器上的擴展分區中至少具有 32 KB 的可用空閑空間(有關詳細信息,請參閱上一部分中的附註)。該空間將被 EWF 用於在前後兩次啟動之間存儲 RAM 覆蓋的配置數據。
4.啟動設備。在 FBA 期間,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 在 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 和只讀磁碟中啟動。