作者: 2010wuzhong
時間: 2012-6-24 22:38
標題: 差分vhd-win7 ramos
前言:
研究這個主要目的是,對于內存較小(4G以下)的機子,幾乎很難玩win7-ramos。目前普遍采用的是wim類型。對此需要有一定的系統(tǒng)精簡技術,而且內存還是非常的吃緊。利用vhd差分技術,僅將差分vhd放入內存中,這樣一方面不需要對系統(tǒng)進行太多的精簡,另一方面內存的利用將達到最高。
之前已經(jīng)研究成功了一個基于primo原生態(tài)的差分vhd的另類ramos了,不過原生態(tài)的差分vhd即使使用動態(tài)模式,在使用的時候空間還是達到了最大,另外制作、更新比較復雜。因此想到了vboot。使用vboot的好處是:子、母vhd可以位于不同的分區(qū);另外使用動態(tài)模式的話,子vhd在使用的時候不會占用最大空間。
vboot驅動建議選2.0,能夠比較好的支持win7。具體下載可到vhd系統(tǒng)區(qū),
http://bbs.wuyou.com/viewthread.php?tid=202450,不過已經(jīng)過期了,使用的時候需要調一下日期。
主要原理:
使用一個啟動鏡像啟動vboot,讓vboot先從啟動鏡像上的子vhd文件中啟動,當然母vhd文件通過uuid定位于硬盤上的某個分區(qū)。系統(tǒng)啟動后primo驅動將加載鏡像文件生成內存盤,此時,啟動鏡像分離,系統(tǒng)將從硬盤分區(qū)1繼續(xù)加載子vhd,由于硬盤分區(qū)1相應目錄被mklink到了內存盤,這樣系統(tǒng)使用的子vhd文件實際上位于內存盤。
具體步驟如下:
1、首先需要一個基于vhd的win7系統(tǒng),假設vhd文件位于硬盤分區(qū)1,具體路徑為"g:\w7636\w7636.vhd"
2、安裝vboot驅動,"g:\vboot\tools\x86\vbootctl.exe prepare current"
3、使用BOOTICE修改vhd引導,具體包括主引導記錄為:"windows nt 6.x默認引導程序";分區(qū)引導記錄為"BOOTMGR 引導程序";分區(qū)管理處于分區(qū)激活狀態(tài)。
4、vhd根目錄下需要有boot啟動目錄以及啟動文件bootmgr,bootmgr文件不能壓縮。
5、使用bootice處理boot目錄中的bcd文件,需要有一個win7啟動項,啟動磁盤選"BOOT"
6、安裝primo,生成一個直接io模式的內存盤(假設盤符為B),鏡像文件可選智能鏡像。加載模式先選“加載和保存”。
內存盤上建一個vhd目錄,用vboot工具建立差分vhd,"g:\vboot\tools\x86\vbootctl.exe creatediff b:\vhd\w7636-s1.vhd g:\w7636\w7636.vhd"
保存內存盤上的內容到鏡像文件。
刪除內存盤,然后重新加載,加載模式選“僅加載”和“延時加載模式”
-----------------
7、這里需要借助硬盤分區(qū)1(假設盤符為G)作中介,使用mklink命令進行鏈接,(注意盤符B為內存盤)"mklink /j g:\vhd b:\vhd"
8、使用DiskGenius生成一個硬盤映像img文件(假設文件名為bootv2.img),大小選32M即可。建立ntfs分區(qū)并格式化。
用vdm工具加載bootv2.img文件,拷入內存盤B上的vhd目錄(包含有w7636-s1.vhd),同時拷入vboot啟動目錄,以及放入根目錄下的vbootldr和vbootldr.mbr兩個文件
修改\vboot\grub目錄下的grub.cfg文件
menuentry "w7636 vhd " {
vboot harddisk="(UUID=48900232900226d2)/w7636/w7636.vhd"
snapshotentry "Snapshot 1" {
vboot harddisk="(hd0,1)/vhd/w7636-s1.vhd"
}
}
注意:母盤需要使用硬盤分區(qū)1的uuid
9、需要使用grub4dos啟動,編輯menu.lst文件如下:
title primo win7 bootv2.img
find --set-root /bootv2.img
map (hd0) (hd1)
map --read-only /bootv2.img (hd0)
map --hook
chainloader (hd0,0)/vbootldr.mbr
10、對于更新,建議vboot啟動到母盤進行更新。
[
本帖最后由 2010wuzhong 于 2012-6-26 06:29 編輯 ]
作者: nk0769
時間: 2012-6-25 00:58
vhd系統(tǒng)比起img系統(tǒng)容易增量備份嗎?
vhd速度比起微軟,firadisk速度如何?
作者: 2011ilbwn
時間: 2012-6-25 03:23
速度如何?
"用vdm工具加載bootv2.img文件,拷入內存盤B上的vhd目錄(包含有w7636-s1.vhd),同時拷入vboot啟動目錄,以及放入根目錄下的vbootldr"
內存盤B上的VHD目錄是什么?望指點
作者: jyztl
時間: 2012-6-25 13:26
先學習一下,慢慢搞。
作者: 2010wuzhong
時間: 2012-6-25 18:41
標題: 回復 #2 nk0769 的帖子
增量備份,那正是差分vhd的特性了。不過建議使用多級子vhd,注意不要改動最后1級,因為其牽涉到兩個地方:啟動鏡像和實際鏡像,當然這兩個鏡像可以為同一個,只不過不能用智能鏡像了。
關于速度是這樣的,由于母盤還是在硬盤上,因此,對于母盤的讀取速度可能很慢,子盤在直接io模式的內存盤上,讀寫速度應該比較快。
vboot2.0的速度沒有實測過,感覺還可以。
至于firadisk,單從ramdisk驅動而言,primo應該優(yōu)于它。當然如果內存大,要追求速度,那就不要搞差分了,直接將母盤放到內存盤上得了。
[
本帖最后由 2010wuzhong 于 2012-6-26 06:38 編輯 ]
作者: 2010wuzhong
時間: 2012-6-25 18:46
標題: 回復 #3 2011ilbwn 的帖子
關于vhd目錄,應該是啟動鏡像、分區(qū)1、內存盤的一個“交接點”,是為了讓系統(tǒng)在啟動的不同階段加載不同的子vhd。
啟動鏡像上建vhd目錄,是為了系統(tǒng)在剛啟動的時候加載子vhd。
分區(qū)1上的vhd目錄,是一個鏈接目錄,它被鏈接到了內存盤。當啟動鏡像分離后,系統(tǒng)需要從硬盤分區(qū)1的vhd目錄繼續(xù)加載和使用子vhd。
在內存盤上建vhd目錄,是為了給分區(qū)1上的vhd目錄提供子vhd文件實體。
[
本帖最后由 2010wuzhong 于 2012-6-26 06:54 編輯 ]
作者: haokai
時間: 2012-6-28 12:33
大內存用EWF一樣效果,WIN7 VHD和差分盤用EWF保護,