星期三, 二月 03, 2010

Windows 7和Windows Server 2008 R2支援VHD開機

VHD可以開機並不奇怪,因為VHD在微軟VM產品的虛擬機器裡都能開機;特別的是實體環境也能以VHD裡的系統來開機。

VHD(Virtual Hard Disks,虛擬硬碟)是一種磁碟映像檔,一個或一組VHD檔即可「刻畫」出一顆硬碟。VHD一開始是Connectix公司為旗下的虛擬軟體Virtual PC所創,目的是用來模擬虛擬機器(VM)的硬碟;這家公司後來被微軟併購,Virtual PC也成為微軟的產品。VHD雖然模擬出硬碟,但VHD檔還是存放在硬碟。

對VM而言,VHD就是硬碟,而內含各種作業系統的VHD,能讓VM開機執行不同的作業系統。既然VM能以VHD開機,何不也讓實體機器具備相同的能力?Windows 7和Windows Server 2008 R2能以VHD開機,或許就是基於這種想法而誕生的功能。

Windows 7和Windows Server 2008 R2支援VHD,能夠建立、連接(mount)VHD(當然也能中斷連接);連接之後,VHD對Windows 7或Windows Server 2008 R2就如同硬碟。此外,Windows 7和Windows Server 2008 R2也支援VHD「原生開機」,也就是以Windows Loader啟動VHD裡的作業系統。如下圖,Windows 7的DiskPart具備VHD的管理功能。

舉例來說,我先在電腦安裝了Windows 7,接著可建立、連結VHD,並將另一個Windows 7或Windows Server 2008 R2部署到這個新建的VHD(可能是作為測試用的系統),然後再將VHD裡的系統加入電腦Windows 7的開機選單,重新開機時,開機選單會有兩項選擇,一是原本的Windows 7(如下圖第1項),另一項是新增到VHD的系統(如下圖第2項:Win7 From VHD)。

這種作法最大的好處,是不需為了安裝新作業系統而切割主磁碟分割區,並且有內建的Windows Loader、Windows Boot Manager可用;缺點是執行效能較實體硬碟稍差(動態VHD又比固定VHD稍差)。不過Windows 7或Windows Server 2008 R2也不是每個版本都支援從VHD開機:Windows 7只有企業版和旗艦版支援,Windows Server 2008 R2則只有Foundation版不支援。

如果想多瞭解VHD,TechNet Library的《常見問題集:Windows 7中的虛擬硬碟》相當值得一讀。

8 意見:

NOWHEREMAN 提到...

不過 Windows 7 或 Windows Server 2008 R2 也不是每個版本都支援VHD:Windows 7 只有企業版和旗艦版支援,...

[意見] Windows 7 只有企業版和旗艦版支援,...
這個有誤,我是在 windows 7 home premium 下虛擬啟動一個 windows 7 ultimate。

專業版也不可以?請查一下。

賴榮樞 提到...

NOWHEREMAN您好:

感謝您留言。我描述的不周全,應該是「不過Windows 7或Windows Server 2008 R2也不是每個版本都支援從VHD開機」。

您的情況,我無法置評。支援VHD開機的Windows 7及Windows Server 2008 R2版本可參考:http://technet.microsoft.com/zh-tw/library/dd979538(WS.10).aspx#BKMK_2。

NOWHEREMAN 提到...

我之前誤會了,你指的是 boot an OS from a vhd (從VHD 開機啟動系統),那就對,所以我能在 home premium 下用 vhd 開機啟動 ultimate,因為 ultimate 可以 boot from a vhd,但如果相反地想在 ultimate 下用 vhd 開機啟動 home premium,那就不可能,因為如你所述,home premium 是不可以由vhd 開機啟動的,應該是這樣吧。是嗎?

NOWHEREMAN 提到...

根據你的資料,目前能用虛擬開機啟動 (OS booted from a vhd)的 windows 7 版本也只能是 ultimate or enterprise,既然有這限制,那是否意味著其它版本的視窗系統如 XP 等都不能用虛擬開機啟動的方式啟動,是嗎?怪不得網上不見有虛擬開機啟動 XP 的教學。

NOWHEREMAN 提到...

在 Microsoft 的 Springboard Series Insider: Volume 2, No. 2 內有答案:

Boot from VHD

There are a couple of prerequisites for using Boot from VHD:
•Your hardware needs to have virtual technology (VT) embedded in the processor. (Currently both Intel and AMD have this technology available.)
•The VT functionality needs to be enabled in BIOS.
•The host needs to be either Windows 7 or Windows Server 2008 R2.
•The VHD needs to be either Windows 7 or Windows Server 2008 R2.
•The VHD needs to be the Hyper-V version, not Virtual Server 2005 or Virtual PC 2007.

所以結論是 XP 應不可從 vhd 開機啟動。

賴榮樞 提到...

NOWHEREMAN您好:

感謝您留言,您的結論都正確(但Springboard Series Insider Volume 2, No. 2的部分內容有誤),請參考http://www.goodman-lai.idv.tw/2010/02/vhd_08.html。

安祖 提到...

請問goodman, DISM.exe也可以針對client為WinXP的wim與部署也適用嗎?

賴榮樞 提到...

安祖您好:

根據微軟規格,DISM只能用在 Windows Vista SP1、Windows Server 2008、Windows 7、Windows Server 2008 R2等Windows版本,無法用在Windows XP。