1. 程式人生 > 實用技巧 >VHD的妙用:將VHD上的windows 2008 R2作為第二系統

VHD的妙用:將VHD上的windows 2008 R2作為第二系統

我64位的windows 7 ultimate作業系統,由於現在微軟的伺服器產品基本上都需要安裝在64位平臺上,用VPC很多虛擬環境就無法搭建。雖然說桌面端虛擬化有VMware Workstation可以模擬64位的硬體環境,但有時候不方便,尤其給客戶展示微軟技術的時候。。。。另外,Hyper-v的效能令人垂涎。為了便於測試,需要在自己的本本上安裝64位的Windows 2008 R2,用它的Hyper-v等功能。目前的問題是,我本本就2個分割槽,C和D,實在不願意遷移資料重新給08 R2開闢空間,所以想到了使用VHD來作為新系統的安居地。 實現將VHD的裡面的系統作為第二系統過程非常簡單。大致流程僅兩步,第一步將做好的系統的VHD複製到某個分割槽,第二步使用BCDEdit工具新增一個到該VHD的啟動項。過程如下: 我直接在另外一臺Hyper-v伺服器上搭建了一個全新的Windows 2008 R2 64位虛擬機器(需要執行Sysprep,否則後續引導此VHD時極有可能出現藍屏——估計直接刪除Hyperv的虛擬機器附件也可以吧),將該Win2k8R2.VHD檔案複製到了D盤下,完成了第一步;然後使用管理員許可權開啟CMD命令視窗,使用BCDEdit工具完成啟動項的新增。 依次執行如下命令: bcdedit (檢視當前引導配置資訊)、 01 bcdedit /copy {current} /d "Win2K8R2-VHD" (複製當前系統的啟動資訊作為VHD的啟動資訊) 02 bcdedit (檢視複製後的當前引導配置資訊) 03 bcdedit /set {9739785d-eccf-11de-9dc5-bad31531f48e} osdevice vhd=[d:]\Win2K8R2.vhd (更改VHD的啟動資訊,使其指向VHD檔案),04 bcdedit (查修改後的當前引導配置資訊) 05 最後重啟電腦,就會發現多了“Win2K8R2-VHD”這個啟動選單選項。 但是選擇“Win2K8R2-VHD”準備進入windows 2008 R2並不順利,剛到載入作業系統的滾動條,就藍屏了。一大串英文,大致意思是VHD所在的主機分割槽空間不夠云云。剛開始沒注意,還以為是虛擬機器驅動和硬體不相容導致,因為對Win2K8R2.vhd沒有執行sysprep系統封裝。於是回頭再做了次sysprep,不過問題依舊,這才好好看了下藍屏資訊:不對呀,我D盤剩餘空間有40多G呢,VHD檔案才7G多,怎麼不夠?!只好在Hyper-v機器上再次檢查VHD模板,VHD做的是動態磁碟,上限是65G,推測是從Win2K8R2.vhd啟動的時候,將需要D盤的65G。果然,將D盤30G的資料剪下走後再次啟動VHD中的08就正常啟動了,功能、效能與直接安裝在真實硬碟上的系統沒有什麼區別,還能啟用Hyper-v,效果不錯,達到目的。在windows Server 2008 R2系統中看C盤,65G。。Win2K8R2.vhd變成65G了!不過重啟電腦進入win7,檢視D盤的Win2K8R2.vhd仍然是7G多。有意思,為了避免VHD啟動時候佔用太大空間,決定下次做個上限小的動態磁碟替換掉這個。 其他:關於支援VHD啟動,可能只有企業版以上的Win7和win2008才行;製作VHD啟動方法有很多,直接使用Hyper-v或VPC事先建立,使用微軟的p_w_picpathx或第三方的工具在VHD內灌裝Win7和win2008都可以。有興趣的可以看看這些大大們的文章
《深入研究Windows 7中的Virtual Hard Disk (VHD) 技術》(原理和概念)、
[虛擬化實戰]無需藉助虛機安裝,就能從VHD原生啟動》(個人使用)、《全程圖形化建立VHD系統及差分啟動實驗測試》(差分磁碟)、 利用WDS實現零接觸部署Windows 7 VHD(大規模應用之一)、 微軟BCD官方文件 ,相信使用VHD啟動可以帶來很多實用和有意思的系統部署解決方案。