如何避免安裝 SuperCache II 之後, 無法正常開機的問題

来源:互联网 发布:mac磁盘工具急救 编辑:程序博客网 时间:2024/06/05 00:59
上星期裝上了 SuperCache II 在我的 T60 上頭, 感覺上使用時似乎有比較快一些 (心理作用? 原本用 CPU T7200, RAM 2G, 7K100 的硬碟, 應該就很快了), 而且... 也沒發現有什麼不正常的問題 (因為都用休眠, 一星期沒重開機過了). 結果, 前幾天重新開機後, 發現居然在 XP 的開機畫面跑個幾次之後, 整個畫面就不見了, 剩下黑黑沒有任何資料的畫面. 只能把電源關閉再重開, 結果... 運氣不錯, 重開就可以正常進入了.

雖然可以正常進入 XP, 不過... 不太放心的又關機一次, 果然又沒辦法進入. 重開後.... 這次不同了, 還是沒辦法使用. 不過安全模式可以正常進入 (進入後發現 SuperCache II 在安全模式下頭一樣正常使用著). 由安全模式退出後, 也可以正常進入系統. 抱著實驗的精神, 多試了幾次. 發現... 能不能進到系統, 似乎與之前有沒有進安全模式無關, 也似乎沒什麼規則.... 且, 能正常進入的次數越來越少. 唯一確定可以進入的方式, 是進到安全模式中, 把 C 的 SuperCache II 設定移除, 接著就可以正常使用了. 不過... 我試到後來, 發現 IBM 的 CSS 指紋登入的功能有點怪怪的, 會在進到 XP 時要我再輸入一次, 且... 會說我沒有設定該 Windows 使用者... 所以就決定把系統透過 R&R 使用之前的備份來還原. 意外發現, R&R 還真是好用, 且... 還原也很快, 約 30 分鐘就可以恢復原本的系統, 還原後除了 Firefox 2 會把某些 Add-on 認為是不相容 (我是用 Nightly Test Tool 安裝, 避過版本檢查), 要重新再用 Nightly Test Tool 把這些設為相容版本才能用). 且有些網站的自動登入會失效. 除此之外, 一切都很正常.

接著, 花了一段時間測試 (當然也一直還原系統), 發現只要在系統開機的那個 partition, 把 SuperCache II 的功能打開, 重開機就有可能出現進不去系統的狀態. 而那個停住的地方, 感覺像是要切換到 1400x1050 的登入畫面時就停住 (正常下, 應該會畫面全黑, 接著就切換到 GUI 畫面, 出現滑鼠游標). 不知道是 VGA 的 driver 不能正常載入, 或者是 IBM 的 CSS 無法正常運作造成 (因為通常進入後第一個出現的視窗是 CSS 的程式). 總之.... 只要打開 SuperCache II 就可能會有問題. 如果關上, 就完全沒有問題.

但是在進入後, 再去把 SuperCache II 打開, 也不會有任何問題... 直到下次重新開機為止.

所以看起來, 只要我預設不把 SuperCache II 對 C partition 運作, 等開機後再運作, 然後關機前把這個運作關閉, 應該就可以避免不能開機的問題.

原本想寫一個程式在關機時做這個動作, 不過.... 正常情形下, 是可以在關機時跑到該程式, 自然不會有問題. 但是... 萬一那天當機, 沒跑到該程式, 不就代表系統又有可能進不去了嗎? 因此, 就放棄這個想法了.

接著是查了一下看看 SuperCache II 有沒有什麼參數可以延後啟動的時間點, 等到系統進到登入畫面時再執行. 結果... 好像也沒有. 只查到有個 VFCFG.EXE 可以用來設定 SuperCache II 的啟用與停用.

正打算放棄不用時, 忽然靈機一動, 想看看 VFCFG.EXE 在設定之後, SuperCache II 是由那兒得知下次開機要使用相同的參數來對該 partition 執行, 查了一下, 發現在

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Enum/STORAGE/Volume 

上頭這個機碼下頭, 會有每個 partition 的資料, 在每個 partition 下頭, 會有

Device Parameters/SscVF 

這一個 SubKey, 在裡頭有一些設定, 就是透過 VFCFG.EXE 設定後, 會產生的東西, 如果把該 partition 的 SuperCache II 功能關閉後, 裡頭的設定就會被移除.

"FilterAction"=dword:00000001"CacheVersion"=dword:5c110000"CacheEnable"=dword:00000001"CachePageSize"=dword:00008000"CacheCacheSize"=dword:00001000"CacheReadAhead"=dword:00000000"CacheLazywrite"=dword:00000000"CacheMfuFilter"=dword:00000000"CacheFailSafeAllocation"=dword:00000001"CacheShareAllocation"=dword:00000000 

上頭就是有啟用時的一些設定值.

我試著把這些值都移除, 發現並不會影響到目前已經啟用的 SuperCache II, 使用 VFCFG.EXE -status 去查詢時 (或到該磁碟的內容去看 SuperCache II 的狀態時), 都發現仍正常運作中.

所以猜測這些值, 對於運作中的 SuperCache II 並沒有影響, 這些只是 SuperCache II 在重新開機啟動後, 決定是否對該磁碟機運作的設定. 果然... 把這些值刪除後, 再重新開機, 可以正常進入系統. 當然... SuperCache II 也沒有運作. 可以證實上頭的推論應該是正確的.

所以, 寫了一個小程式, 在系統開機時, 執行 VFCFG.EXE 來設定那些磁碟機要啟用 SuperCache II 的功能, 並且在啟動之後, 馬上把這個機碼的值都移除. 如此一樣, 就可以既使用 SuperCache II, 又避免下次無法正常開機的問題了. 


2007/01/15: 

程式可以由這兒抓取: http://www.teatime.com.tw/~tommy/files/loadsscvf/loadsscvf_1.0.7z