2013.05.07 10:10

把整個作業系統放進記憶體裡,RAM OS 讓讀寫效能快10倍

ADVERTISEMENT

驅動程式請安裝完整

經過幾次開機後,VHD裡頭應該就已經是安裝完成的Windows了。這時候請打開裝置管理員,看一下裡頭有沒有問號或驚嘆號,有的話就代表部分驅動程式沒裝好或安裝不完全,或者是根本沒驅動,請解決這些問題。如果有硬體是沒驅動、也不打算使用,那麼請將它移除,不然會造成後續疑難排解上的麻煩。

為何筆者要特別強調此點呢?因為不完整的驅動可能會影響作業系統的睡眠機制,這點對RAM OS很重要,容後再述。另外由於「直接由原生Windows開機」、「透過VHD開機」及「透過RAM Disk裡的VHD開機」會有不同的硬體抽象層(HAL)問題,進入每一種類型的作業系統後最好都檢查1次驅動。

一切無誤後,看要不要先備份一下VHD,也就是拷貝1份留存,接著安裝Firadisk驅動。Firadisk的安裝方式有很多種,有的甚至要開機數次才能完成,這些都請參考附錄裡的教學。

ADVERTISEMENT

硬體抽象層

「Hardware Abstraction Layer」是作業系統用來與硬體之間溝通的一個橋樑。因為電腦硬體的細項諸元各不同,有了這層抽象層就能讓驅動程式不需要直接與硬體溝通、卻又能驅動硬體,軟體的開發及移植也會更有效率,不必受硬體束縛。

應用在作業系統的部署上也能受惠。用最簡單的例子解釋:在Windows XP(含)之前的作業系統,灌好的系統要搬移到不同的硬體上時常會出現錯誤,甚至無法開機。Windows Vista之後,藉由在開機組態裡加入「Detecthal yes」就能強制Windows重新偵測硬體抽象層,避免因為硬體不匹配而造成問題。

開機組態務求正確

最後一步是設置開機組態,它會嚴重影響到RAM OS的執行成敗,設置時得求絕對精準。一般情況下,一共會有3個開機組態需要變更:

一、開機硬碟上的MBR

雖然是RAM OS,開機時還是得先從硬碟載入吧!開機硬碟上的MBR是用來引導GRUB4DOS,如果你打算直接將GRUB4DOS安裝到MBR,那麼可以跳過此節。

ADVERTISEMENT

不過,大部分情況是硬碟上已經存在Windows系統,Windows Boot Manager會去讀BCD組態來提供開機導引,所以我們要把GRUB4DOS加入BCD內,接手開機控制權,請參考附錄中的「將GRUB4DOS加入BCD」。

RAM OS系統的開機組態設置及對應關係

MBR裡的Windows Boot Manager是用來啟動硬碟上的VHD或GRUB4DOS,至於Windows安裝本身可以不存在。同時因為RAM OS使用的是存在於RAM Disk裡的VHD檔,所以可以再掛載硬碟上的VHD來備份變更資料,達到「RAM Disk也能存檔」的目的。

二、GRUB4DOS的開機組態

從下載的壓縮檔中取出目錄,改名為「GRUB」,並將其內的grldr.mbr與目錄一起放到C槽、也就是系統碟根目錄下,然後重做GRUB目錄內的menu.lst,鍵入以下內容:

ADVERTISEMENT

map --mem /win7.vhd (hd0)

map --hook

root hd(0,0)

chainloader +1

第一行的意思,是將win7.vhd載入記憶體,並掛載成為代號為hd0的硬碟。第二行使第一行的掛載命令生效,接下來將執行目錄指定為hd0的第一個分割區,最後「chainloader +1」要求GRUB4DOS將開機流程交給執行目錄下的開機載入器、也就是已經載入到RAM Disk裡的、win7.vhd裡頭系統碟上的Windows Boot Manager。

三、VHD內的開機組態

VHD裡的Windows預設是沒有開機組態的,因為只要透過開機硬碟上的Windows Boot Manager來引導就好。然而我們已經用GRUB4DOS過了一層水,沒辦法再透過上一層的載入器來引導,所以要再幫VHD裡的系統碟加1個開機組態檔,讓GRUB4DOS能順利移交開機流程。

ADVERTISEMENT

這部分本來可以靠Windows指令簡單達成,但對於Windows開機組態不熟的使用者可能會適得其反、將組態檔案安裝到不正確的位置,所以使用「EasyBCD」這套免費工具代勞會比較順利。

請直接由硬碟中的VHD開機,並透過EasyBCD的「BCD佈署功能」將組態安裝到VHD根目錄下,再修改幾行指令:

bcdedit /store c:\boot\bcd /set {default} testsinging yes

bcdedit /store c:\boot\bcd /set {default} loadoptions DDISABLE_INTEGRITY_CHECKS

bcdedit /store c:\boot\bcd /set {default} detecthal on

Testsinging是Windows x64系統用來接納「未通過驗證驅動程式」的開關,因為Firadisk沒有經過微軟簽名,所以得開啟此選項,在Testsinging模式下的Windows桌面右下角會出現「Test Mode」字樣,對系統運作並無大礙。第二行同樣是用來關閉驅動程式驗證的指令,如果少了此設定,Windows在載入的過程中會提示你「Firadisk是未經過驗證的驅動,所以無法開機」,這時就得回開機選單按F8來手動禁用。

完成開機組態設置後,重新開機,在Windows開機選單選擇以GRUB4DOS開機,沒差錯的話應該馬上就會進入記憶體的掛載進度,掛載完成後,默數幾秒就會進入Windows,接下來就只剩一些最佳化設定。

▲安裝完Firadisk後,裝置管理員裡會多出1個Firadisk元件。如果沒有出現這個元件、或是該元件上有問號或驚嘆號,就是安裝不完整,將無法順利進入RAM OS。

▲RAM OS開機過程中如果出現驅動程式驗證問題,請在開機選單中禁用此項,中文為「停用驅動程式強制簽章」。

系統最佳化放最後

進入到RAM OS桌面後,不妨檢查一下裝置管理員內的元件是否皆運行正常。接著進入電腦管理設定分頁檔大小,取合理範圍即可,切勿完全關閉、也不要讓Windows自行管理,不然原本就已經容量有限的RAM Disk會被分頁檔塞爆,因為Windows會嚐試在RAM Disk裡存放RAM Disk所佔用記憶體的置換檔。

接下來要進行的其它設置,都是為了因應RAM OS在關機後就會不見的原生特性。首先是得想辦法讓RAM OS裡頭的變更都能回存至實體硬碟,這點可利用VHD能掛載成本機磁碟的天生優勢,在RAM OS裡頭掛載硬碟上的VHD並且執行同步軟體來備份變更,如此一來就能達到無縫循環、每次用RAM OS開機都能保有上一次更動的資料。

此舉限於一些個人文件或與系統無關的檔案,如果是要安裝新的程式、其至是需要重開機的類型,最好還是用硬碟上的VHD開機處理。

除此之外,切記得關閉RAM OS的休眠(hibernate)功能,因為讓RAM OS休眠意義不大,其至可能會直接早成資料流失。不能休眠沒差,但睡眠(Stand by)就是必要的,RAM OS剛好可以利用睡眠模式啟動時、電腦只剩下記憶體持續供電的特性保存資料,也可以省去每次使用RAM OS開機時所需消耗的漫長載入時間。

關閉休眠功能只需要在命令列鍵入「powercfg /h off」即可,另外BIOS裡的電腦待命模式也要切換到「S3」。睡眠模式會不會耗電?以筆者插了4條DDR3-8GB模組的測量結果來看,總機耗電量跟本不到2瓦,考慮到誤差值,事實上可能更低。所以啦,如果有辦法讓電腦處於不斷電狀態,在大多數情況下都沒有重新開機的必要。

(後面還有RAM OS效能實測)

ADVERTISEMENT