在構建好XPE操作系統上增加EWF功能
讓我們先把應用環境來進行分類:
1. 現有的XPE操作系統根本就不具有EWF功能,也就是在構建XPE操作系統的時候,沒有使用EWF NTLDR。這種情況下,我們的XPE如果需要手動添加EWF功能,就需要先將系統原有的NT Loard改為EWF NTLDR,然后再設置使用RAM模式還是DISK模式。具體實現方式請參見:http://lzg-ad.blog.sohu.com/76908162.html;
2. 現有的XPE操作系統已經具有EWF功能,也就是在構建XPE操作系統的時候,已經添加了以下的EWF組件:
- EWF NTLDR EWF操作系統內核
- Enhanced Write Filter EWF核心功能組件,包括ewfdll.dll,ewf.sys,ewfinit.dll.ewf.inf等核心文件
- Enhanced Write Filter API (EWF API) EWF API支持文件,包括ewfapi.dll等編程接口
- EWF Manager Console application EWF控制臺命令組件,是執行ewfmgr的必要組件
針對這樣的XPE操作系統,再修改或者恢復EWF功能,實現起來就比較容易。下面我們來分別看一下如何恢復或者設置EWF的RAM和DISK模式。以下例子均假設XPE的EWF分區為C盤。
(1)RAM模式
如果我們的XPE在重新Ghost后出現EWF-RAM錯誤的情況,或者在使用過程中出現EWF-RAM損壞的情況,我們應該如何來恢復呢?
- 首先,必須確認EWF功能已經不可用(如果可用,我們就不需要恢復了),方法是打開CMD->ewfmgr c:,執行命令后返回的應該是錯誤信息。
- 其次,需要定義一個注冊表文件,方法是新建一個文本文件,然后將以下內容拷貝到這個文本文件中:
Windows Registry Editor Version 5.00
[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)"
- 最后,把這個文件命名為XXX.reg,在XPE操作系統上雙擊導入到注冊表中。重新啟動計算機,然后在CMD中執行ewfmgr c:,看看EWF的狀態是否正常。
注意:這個EWF構建時必須將XPE生成在C盤,同時C盤分區不能太大,如果在別的盤符,那就改一下組冊表文件,修改方法如下:
把注冊表文件用記事本打開后,最后一行:
如果部署在C盤,則應該是:
"ArcName"="multi(0)disk(0)rdisk(0)partition(1)"
如果部署在D盤,則應該是:
"ArcName"="multi(0)disk(0)rdisk(0)partition(2)"
依次類推。
(2)DISK模式
如果我們的XPE在重新Ghost后出現EWF錯誤的情況,或者在使用過程中出現EWF損壞的情況,或者原有的EWF是RAM模式,我們需要修改為DISK模式。應該如何來實現呢?
- 首先,我們要保證我們的XPE操作系統中已經添加了Enhanced Write Filter和Enhanced Write Filter API (EWF API)組件。確定方法可以在XPE中搜索ewfdll.dll和ewfapi.dll文件,如果沒有就說明沒有添加這兩個組件。如果沒有也沒關系,我們可以手動把這兩個文件拷貝到XPE系統的system32目錄下并注冊就可以了。
- 其次,構建注冊表文件,新建一個文本文件并命名為XXX.reg,把以下內容拷貝到這個文件中:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EWF\FBA]
"DiskSig"=dword:4f544c45
"OVSize"=dword:0007a120 ----> 應該是500m 這里設置你的未分配分區的大小
"OVLevel"=dword:00000001
"PVConfigs"=dword:00000001
"EwfEnable"=hex(7):30,00,00,00,00,00
"EnableLazyWrite"=hex(7):30,00,00,00,00,00
"PVDisk"=hex(7):30,00,00,00,00,00
"PVPart"=hex(7):31,00,00,00,00,00
"PVDiskType"=hex(7):30,00,00,00,00,00
"PVType"=hex(7):30,00,00,00,00,00 ---〉30 為disk ,31 為ram
"PVOptimize"=hex(7):32,00,00,00,00,00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EWF\Parameters\Protected\Volume0]
"ArcName"="multi(0)disk(0)rdisk(0)partition(1)"
"ClumpSize"=dword:00000200
"Type"=dword:00000000 ----〉0為disk 1 為 ram
"Enabled"=dword:00000001
"VolumeID"="{CCE9E3DA-1B74-43db-910A-9D58FACF88FE}" --->這個要加上 可以用GUIDGEN產生一個來
- 再次, 在XPE操作系統中打開磁盤管理器,然后再C盤分區后面建立一個未分配磁盤分區,分區大小應該和你注冊表設置的一致。注意,這個分區應該存在于C盤和D盤之間,如果創建在所有分區的最后面,可能會出錯,只是可能。呵呵;
- 然后,在XPE中導入上面做好的注冊表文件(XXX.reg),重新啟動計算機;
- 最后,在XPE的CMD中運行以下命令:
rundll32 ewfdll.dll,ConfigureEwf
然后重新啟動計算機。重啟完成后,在CMD中執行ewfmgr c:,看看EWF的狀態是否正常。
注意:如果未分配空間在其他分區后面,不一定能夠成功。
【編輯推薦】