2010.11.14 15:50

把 Windows 7 灌進 VHD 虛擬磁碟(下)

ADVERTISEMENT

在上一篇文章當中我們介紹了虛擬磁碟格式VHD的由來,它的大致用途及三種主要存檔型態,並且示範在Windows 7內建的磁碟管理工具如何建立與掛載VHD,接下來就是實戰在上面安裝Windows 7系統碟了,這個VHD系統碟就像實體磁碟一樣,是可以原生開機的,主要可歸納成兩種類型:

一、用VHD安裝Windows 7

這是最正規、也最為萬無一失的安裝方法,有官方公式可循,作法就是利用安裝佈署工具(WAIK)把原版安裝光碟裡面的佈署檔(install.wim)佈署到VHD磁碟後,重新開機使其自我安裝,安裝完成就是乾淨的Windows 7系統。 需要特別說明的是,以下教學將以命令列模式來示範,VHD磁碟的建立也可直接以前述磁碟管理工具來達成,兩者並無相異之處。

Step 1 建立VHD磁碟

請在有管理員權限的命令列模式鍵入以下指令:

ADVERTISEMENT

diskpart
create vdisk file=c:\windows7.vhd maximum=25600 type=fixed
select vdisk file=c:\windows7.vhd
attach vdisk
create partition primary
assign letter=r
format quick label=vhd
exit

以上指令可以直接取代磁碟工具程式的操作,等於完成了「建立一個VHD檔,掛載後並格式化」的動作。

Step 2 載入Windows 7安裝檔

這部份主要是利用imagex工具,把原版Windows 7光碟裡的安裝檔佈署到虛擬磁碟, 前提是你要先有imagex這個程式。此工具可直接從網路獨立取得,要不然它會包在龐大、高達1.7GB的「Windows Automated Installation Kit」(WAIK)套件裡面,可直接。

這裡的正規作法是乖乖下載WAIK for Windows 7並安裝,鍵入以下命令:

ADVERTISEMENT

cd /d "c:\program files\\tools\\" imagex /apply install.wim 1 r:\

如果是x86系統,就到「C:\Program files\WindowsAIK\Tools\x86」資料夾裡執行imagex這個程式,並指定要「/apply」的來源是「install.wim」原版光碟映像,還原的目的是虛擬磁碟「r」。install.wim位在安裝光碟根目錄下的「sources」目錄內,你最好先把它拷貝到硬碟,因為「/apply」是大量的複製及解壓縮動作,從光碟執行費力又耗時。

Step 3 修改開機引導選項

接下來, 我們就要用這個虛擬磁碟開機並安裝Windows 7。假如已經有一個Windows 7開機功能表,可透過BCDedit命令來修改及新增開機項目:

ADVERTISEMENT

bcdedit /copy {default} /d “Win7_VHD”
bcdedit /set {guid} device file=[C:]\windows7.vhd
bcdedit /set {guid} osdevice file=[C:]\windows7.vhd

第一行的意思,是代表把Windows 7原本的開機設置複製一份給VHD系統,並指定開機項目名稱,完成後會產生一組新的GUID,複製這個GUID,填入第二、三行的GUID欄位並執行即可,重新開機後便是現成的Windows 7系統。

二、用備份檔掛載成開機磁碟

眼尖的讀者一定早就已經發現,Windows 7的備份檔案其實就是一個VHD檔,直接將其掛載成虛擬磁碟後、設置好開機參數就是現成可用的Windows 7系統,因為是運行於同樣的硬體之上,所以不必重新安裝。

ADVERTISEMENT

至於利用現成備份檔的掛載方式,直接參考前述的Step1及Step3即可,等於是省去了佈署及安裝的步驟。完成後可能會出現幾次錯誤,重開機數次便可解決。

超精簡VHD備份還原

事實上,不管是利用VHD原生安裝或備份掛載的佈署方式,都不會比「在實體硬碟上安裝Windows 7」快多少,因為VHD原生安裝需要花時間佈署、第一次備份Windows 7系統也要花上不少時間。微軟官方所謂「VHD可以加快系統佈署」的說法,主要是針對有大量主機需要安裝Windows 7時才能倍顯成效,對於通常只有一台主機的個人玩家端而言,善用「差異備份」才讓VHD發揮所長。

本尊照顧好,分身隨你玩

所謂的「差異備份」,實質上並沒有進行任何的備份行為,充其量就是以安裝了Windows 7的VHD碟為基準,再建立一個「差異磁碟」而已。這麼做有什麼好處?你不必真的幫原系統複製一套完整的備份,就可以直接使用它的「分身」,玩壞了不必擔心,對原系統不會造成任何影響,重點是還可以把分身「合體」回原系統內,一舉數得。

但有得必有失,差異備份也有它的缺點,就是「本尊」必須原封不動,備份完後只能更動分身資料,意味著你不能再進入原系統,或者以原系統開機了。因為只要本尊有任何風吹草動,其下的差異備份關係鍊就會整個受影響甚至作廢,是要特別留意之處。差異備份如何建立?得從命令列模式鍵入以下指令:

create vdisk file=c:\windows7_diff.vhd parent=c:\windows7.vhd

其實最主要的差異,就是在參數後面加上一個parent參考檔即可。上面這一行的意義即為:在C槽下建立一個名為windows7_diff的差異VHD,以C槽下的windows7.vhd為參考檔。另外與原生VHD不同的是開機資訊的設置,形式如下:

bcdedit /copy {default} /d “Win7_VHD”
bcdedit /set {guid} device vhd=[locate]\windows7.vhd
bcdedit /set {guid} osdevice vhd=[locate]\windows7.vhd

紅字代表相異之處,差異VHD一定要以「vhd」參數來指定檔案,而原本的「C:」得改成「locate」這個固定字串才行。完成後一樣重新開機,就能進入以差異備份建立的VHD系統。

玩多P也不佔空間

如果你以差異VHD系統開機,並進入「我的電腦」觀看,會發現系統磁碟區的容量與原生VHD一模一樣。事實上,在還沒寫入這個映像檔之前,差異VHD所佔用的實際磁碟容量非常小,所以你可以一次建立許多個差異VHD,只要別達到「255」這個系統上限即可。

值得一提的是,差異VHD本身也可以當作原生VHD使用,其下還可以如老鼠會般延伸出多層的參考鍊,也就是你可以用差異VHD為參考檔再建立新的差異VHD,參數語法也都一樣。

玩膩了,就合體吧

如果要讓差異VHD的內容套用回原生VHD檔,需要注意的就是「層數」的差異,如下例:

select vdisk file=c:\windows7_diff.vhd depth=2 merge vdisk depth=1

上面敘述,是表示把windows7_diff.vhd這個差異鏈第二層的資料上移一層「融合」,方便清掃旗下分支過多的關係鍊。以後要「回溯系統」,就不必再靠華而不實的第三方軟體了。

▲多層次的差異備份鍊,除了最底層的差異VHD,其餘全部都得設為唯讀。

▲利用單一參考檔建立多個平行差異VHD的情況,可安心試用不同版本的軟體,砍掉重練方便多了。

  • 看上篇:

ADVERTISEMENT