2009-05-04

[Windows XP Embedded] FBWF & EWF

三天連假閒來無事, 就順手比較了一下 FBWF(File-Based Write Filter) 和 EWF(Enhanced Write Filter) 兩者實際使用上的差異...

Windows XP Embedded Service Pack 2 Feature Pack 2007 (簡稱FP2007) 裡把 FBWF 給丟出來, 多少是解決了使用 EWF 時會遇到的幾個問題, 因為把 sector based 改成 file based, 所以可以對個別檔案即時 commit, 也可以針對個別檔案設定 write filter, 比起 EWF 只能一次全部 commit 是要方便得多.
而且 FBWF 的記憶體用量可以自行設定(256~1024MB, EWF 固定 512MB), 而且 FBWF 可以設定先把這部份記憶體保留下來, 檔案寫入再刪除的時候 FBWF 也會釋放記憶體(EWF 不會釋放), 所以在file I/O 量較大時 FBWF 也會比較安定

就這些功能看來 FBWF 應該可以全面替代 EWF, 但是實際使用上才發現沒這麼好的事...

FBWF 和 EWF 在操作上有很大的不同, 就是 FBWF 是無法即時 enable / disable 的(一定要 reboot).
如果只有這個問題那看起來是還好, 但是 FBWF 還有個限制就是只能對檔案即時 commit, 沒辦法對目錄做任何 commit 的動作, 所以要建新的目錄就一定要先 disable FBWF, 重開機建完目錄以後再 enable 然後再 reboot, 換句話說就是要在受保護的 volume 建目錄至少要 reboot 兩次才行, 這下問題可就大了...
再來就是 FBWV 並沒有把一次全部 commit 的選項, 只能一個一個檔案 commit, 所以如果一次改了多個檔案, 那接下來 commit 就是一件苦差事, 要大量 commit 就只好自己寫 script 來跑...

在這幾天的使用之後, 我的系統還是選擇 EWF, 能夠把要改的東西一次 commit 還是比較輕鬆的.

FBWF 倒是有個特別好用的地方, 就是那些常會作 I/O 但是實際上資料並不會長久保存的狀況, 像是 browser cache 或 temp 之類.這有點類似 ramdisk, 但是 FBWF 不像 ramdisk 會把記憶體佔用掉, 而且 windows 一定是把 FBWF 當成 fixed disk 使用, 使用上比 ramdisk 要有彈性得多, 唯一的差別就是 FBWF 必須要硬體上有一個大小一樣的 volume (這東西隨便生都有, 算不上是缺點).

一樣是用 EWF, 把 ramdisk 換成 FBWF volume 以後, 作業系統的基本記憶體用量有明顯的減少, 這幾天玩下來還算是有收穫 XD

2 則留言:

  1. 請問若RAM只有4g的win7x64,啟用了EWF後, 寫入的檔案容量若超過記憶體大小~系統會不會不穩或當機~3q

    回覆刪除
    回覆
    1. XPE 寫入超過記憶體大小後系統會一步步當掉, 而且這時候再做 commit 一樣救不回來.

      WES7 的 EWF 我沒用過, 不過我想結果和 XPE 應該沒什麼不同.

      刪除