NoName Team 電腦資訊討論區

 找回密碼
 我要註冊
搜索
查看: 14806|回復: 7

[教學] RamOS-以VHD為載體

[複製鏈接]
發表於 2012-4-22 18:53:22 | 顯示全部樓層 |閱讀模式
本帖最後由 wusun 於 2021-10-19 11:16 編輯

RamOS:所謂的RamOS不是一種新的作業系統;而是把正常運行的Window OS整個系統檔案存入一個自建的虛擬記憶體磁碟,而後再從此虛擬記憶體磁碟運行OS的一種方式

好處:即是把原本OS的運行方式由「硬碟->記憶體」變為「記憶體->記憶體」。如果你原本的硬碟不夠快,可經由這種方式減少OS的讀取硬碟的時間,從而增加OS效率。(但如果你原本的OS是放在SSD硬碟,那效果應該就不會很明顯。)

壞處:1.開機時要多花一些額外的時間來把OS從虛擬記憶體磁碟載入。2.虛擬記憶體磁碟會佔用記憶體空間,使OS可用記憶體空間減少。

條件:「記憶體空間」>「載入之OS大小」+「OS執行時最小記憶體需求」

整個RamOS執行流程:開機->BIOS->HD MBR->Partition Boot Record->ntldr+boot.ini->GRLDR+menu.lst->載入RamOS載體(如RamOS.vhd)到虛擬記憶體磁碟->從虛擬記憶體磁碟之預設好的Window OS開機。

需要用到的工具:
1.Grub4Dos:載入RamOS載體(如RamOS.vhd),並以此建立虛擬記憶體磁碟。
2.DiskGenius:建立VHD
3.FiraDisk:虛擬記憶體磁碟之Windows驅動程式
4.Virtual Drive Manager:載掛並修改RamOS載體(如RamOS.vhd)內容
5.Windows PE:拷貝OS至RamOS載體(如RamOS.vhd)時,來源OS必須不在執行中,此時就須在Windows PE環境下執行系統檔案拷貝
6.Contig:Defragment Tool,讓RamOS.vhd存放的磁區連續,如此Grub4Dos才可不用--mem參數來map載入。

步驟:
1.準備要載入之OS:你可以用你現有的OS;也可以用nLite精簡WinXP安裝光碟後建立一個新的精簡OS。但總體來說,要符合:「記憶體空間」>「載入之OS大小」+「OS執行時最小記憶體需求」

2.為步驟1之OS安裝FiraDisk驅動程式:即在步驟1之OS環境中點選firadisk.inf,並按右鍵安裝FiraDisk驅動程式->重新開機讓系統找到FiraDisk新硬體,並安裝正確好。

3.建立RamOS載體:
  3.1下載並執行DiskGenius v3.7.1,點選選單「硬盤」->「新建虛擬硬盤文件」->「新建Virtual PC虛擬硬盤文件」
  3.2「文件路徑:」C:\RamOS.vhd
  3.3「容量」:假設步驟1之OS大小為1GB。此時設定1.5GB,則多出來的0.5GB為系統Temp、Temporary Internet Files、後續安裝新程式…等可用之空間,而這0.5GB也會佔用可用記憶體空間。請自己衡量設定大小。
  3.4「立即分配全部硬盤空間」:這個必須要打勾。
  3.5「確定」
  3.6點選左側新建立之「VD0:RamOS.vhd」->點選選單「分區」->「建立新分區」->「主磁盤分區」->「請選擇文件系統類型:」NTFS->「確定」
  3.7點選選單「硬盤」->「保存分區表」->「是(Y)」->「是否立即格式化…」->「是(Y)」
  3.8點選左側新建立之「主分區(0)」->點選選單「分區」->「格式化當前分區」->「巻標:」RamOS VHD->勾選「啟用壓縮」,可以增加記憶體空間利用率->「格式化」
  3.9完成,關閉程式。

4.拷貝OS至RamOS載體(如RamOS.vhd)
  4.1用「Windows PE」開機
  4.2用「Virtual Drive Manager」載掛「C:\RamOS.vhd」為「假設為I:」
  4.3用「檔案總管」把「C:」拷貝至「I:」,但以下除外:「C:\RamOS.vhd」、「C:\pagefile.sys」、資源回收桶「C:\RECYCLER」…等
還未完,勿重開機!

5.為了能順利開機,必須取消ntldr之壓縮:
  5.1打開「檔案總管」,點選「I:\ntldr」->按右鍵->點選「內容」->點選「進階」
  5.2取消勾選「壓縮內容,節省磁碟空間」->「確定」->「確定」
還未完,勿重開機!

6.修正用RamOS.vhd開機後,虛擬記憶體磁碟代號不為「C:」之問題:
  6.1即為刪除RamOS之[HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices]註冊
  6.2執行以下FixDrive.bat批次命令:磁碟代號請視自己情況更改
  1. reg load HKLM\SYS I:\WINDOWS\system32\config\system
  2. reg delete HKLM\SYS\MountedDevices /va /f
  3. reg unload HKLM\SYS
  4. pause
複製代碼


至此可以卸載RamOS.vhd,並重新開機離開Windows PE。

7.設定Grud4Dos開機設定:
  7.1在C:\boot.ini內,最後面加一行
  1. C:\GRLDR="Grub4Dos - RamOS"
複製代碼

  7.2拷貝GRLDR至C:\
  7.3在C:\建立menu.lst如下:
  1. timeout 5
  2. default 0
  3. color cyan/blue white/blue

  4. title RamOS.vhd Discard Changes
  5. find --set-root /RamOS.vhd
  6. map --mem /RamOS.vhd (hd0)
  7. map (hd0) (hd1)
  8. map --hook
  9. root (hd0,0)
  10. chainloader +1

  11. title RamOS.vhd Save Changes
  12. find --set-root /RamOS.vhd
  13. map --mem (md)0x800+4 (99)
  14. map /RamOS.vhd (hd0)
  15. map (hd0) (hd1)
  16. map --hook
  17. write (99) [FiraDisk]\nStartOptions=disk,vmem=find:/RamOS.vhd;\n\0
  18. root (hd0,0)
  19. chainloader +1
複製代碼

8.用Contig重整RamOS.vhd存放磁區使之連續:
  1. Contig.exe -v C:\RamOS.vhd
複製代碼

9.重新開機->選擇「Grub4Dos - RamOS」進入Grub4Dos->選擇「RamOS.vhd Save Changes」開機->進入桌面,系統偵測到虛擬記憶體磁碟->新增、安裝此磁碟->此時此磁碟代號可能不是C:,你可重作步驟6,或是直接執行regedit.exe把[HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices]刪除即可->完成、重新開機。

此後:
用「RamOS.vhd Discard Changes」開機:整個系統將被載入記憶體中執行,所有虛擬記憶體磁碟中的變更皆會被捨棄。

用「RamOS.vhd Save Changes」開機:系統以類似Win7 VHD方式執行,虛擬記憶體磁碟中的變更將會被保留。

後記:
為何一開始文章就指明是以VHD為載體,難道還有其它載體?
是的,就我所知還有IMGWIM為載體,相關資料可以上無憂啟動論壇自己查找。

以上僅供參考!
發表於 2012-4-22 23:07:37 | 顯示全部樓層
本帖最後由 w60711 於 2012-4-25 00:27 編輯

謝謝分享
發表於 2012-4-23 22:55:01 | 顯示全部樓層
提示: 作者被禁止或刪除 內容自動屏蔽
發表於 2012-4-28 17:00:38 | 顯示全部樓層
想問一下, 要怎麼在 ramOS 裹安裝驅動
比方說是ram os 是 XP, 要預先用 nlite 打驅動進去 xp 安裝盤還是有其他操作方式 ??
 樓主| 發表於 2012-4-28 19:04:51 | 顯示全部樓層
gandalfzoro 發表於 2012-4-28 17:00
想問一下, 要怎麼在 ramOS 裹安裝驅動
比方說是ram os 是 XP, 要預先用 nlite 打驅動進去 xp 安裝盤還是 ...

方法1:將驅動程式用nLite整合進安裝光碟,而後安裝OS。
方法2:在把RamOS存入載體(如:RamOS.vhd),就把驅動程式裝好。
方法3:用「RamOS.vhd Save Changes」開機後,再把驅動程式(非FiraDisk)裝好。
發表於 2015-4-6 18:09:58 | 顯示全部樓層
樓主你好
我跟著方法去做到9 重新開機,選grub4dos後
出現
下列檔案遺漏,無法啓動windows :
<windows root>\system32\hal.dll.
請重新安裝一份上列檔案挎貝。

請暢教
 樓主| 發表於 2015-4-8 13:02:53 | 顯示全部樓層
worthyli 發表於 2015-4-6 18:09
樓主你好
我跟著方法去做到9 重新開機,選grub4dos後
出現

這可能是因為你在步驟4「拷貝OS至RamOS載體」有問題!
可以試著再 copy hal.dll 至 RamOS載體(如RamOS.vhd)。
或著再重作一次步驟4「拷貝OS至RamOS載體」!
發表於 2015-4-16 18:59:33 | 顯示全部樓層
i need this file
您需要登錄後才可以回帖 登錄 | 我要註冊

本版積分規則

小黑屋|手機版|NoName Team 電腦資訊討論區 |網站地圖

GMT+8, 2025-5-21 15:05 , Processed in 0.557067 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表