2013-01-25

[Tip]Gavotte Ramdisk在剛開機時尚未格式化

現在記憶體價格十分低廉,只要有點小錢,隨便就可以買到總和8GB、16GB上下的桌上型電腦記憶體,因此很多會自行組裝電腦的玩家都開始用大容量的記憶體來增進自己電腦的執行效能。而少部分因為軟硬體相容性而不得不安裝像是Windows XP 32bit這種非Server OS的電腦,一定會苦於Windows讀不到超過4GB的記憶體等定址範圍問題。不過,有使用Windows Server經驗的IT工作者們應該都知道,其實Windows在啟用PAE定址模式時,是可以定址最大64GB的記憶體空間的。Windows XP 32bit版只能定址4GB的記憶體,單純是因為微軟封印了XP的極限,想強迫那些需要用大記憶體又不想用64bit系統的客戶們,採購他們家的Windows Server產品系列,以做出明確的市場區隔。雖然也有少數沒寫好的驅動程式不能在PAE定址模式正常工作,但是這種情況並不多見。

也因為如此,堅守Windows XP 32bit版的老派們便尋找手段來釋放XP封印住的記憶體。而目前最多人採用的方案,就是使用那些可以透過PAE模式挪用超過4GB的記憶體的Ramdisk軟體,把XP封印住的記憶體模擬成超高速的磁碟空間。
接下來,看你要把pagefile還是cache放在這個磁碟空間都可以。

目前軟體費用最低(但是效能也最差)的Ramdisk,應該是網友Gavotte從Microsoft Ramdisk實作範例改寫而得的Gavotte Ramdisk。因為Gavotte Ramdisk完全免費使用,所以眾多買不起商業Ramdisk軟體的玩家便用這個Ramdisk來運用XP封印的記憶體。

不過最近筆者重灌電腦後卻碰到一個難題,那就是筆者自行安裝的Gavotte Ramdisk,在剛安裝好時看起來都一切正常,但是重開機後,Ramdisk卻沒有如期地清空,回復到已格式化成FAT32,只有一個TEMP目錄的淨空狀態,而是變成尚未格式化的狀態。起初以為是沒有使用Gavotte Ramdisk隨附的rdutil工具做一些額外設定的關係,但是後來試過了各種解決方法,剛開機的Ramdisk一樣是未格式化的狀態。

但是昨天筆者仔細研究了Gavotte Ramdisk安裝在Windows registry的參數後,發現竟然是因為一個簡單的原因,那就是Gavotte Ramdisk的service在開機期間根本沒啟動,所以虛擬出來的磁碟才會沒有回復到Ramdisk剛建立時的狀態。而沒有啟動的原因,就是因為下面這個參數:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RRamdisk]
"Start"=dword:00000002

在我的電腦裡面,當這個dword參數數值是00000000的時候,開機期間就不會啟動Gavotte Ramdisk;但是把這個dword參數數值改成00000002(也就是Automatic,在開機時自動啟動service)以後,下次重開機,Gavotte Ramdisk的service就會自動啟動,也就不會再發生虛擬出來的磁碟尚未格式化的問題了。

電腦問題往往都導因於超級白痴的錯誤,這句話可真是不假orz