從VHD啟動電腦

來源:互聯網
上載者:User

之前的文章提到了Windows 7對VHD檔案的內建支援,從此以後VHD檔案的地位得到了提升:-) 它可以被作業系統認為是一塊物理的硬碟進行管理和讀寫。

我們知道,現在啟動系統的方式多種多樣,可以從光碟片、硬碟、磁碟片、隨身碟、網路等等不同的渠道來完成。既然VHD可以被Windows 7認為是一塊獨立的物理硬碟,那麼我們是否可以從VHD啟動作業系統呢?

 

答案是肯定的。Windows 7的引導程式也同樣包含了對VHD檔案的讀寫驅動,因此在裝有Windows 7引導程式(Boot Loader)的電腦上,可以通過配置BCDEdit的方式,把VHD上的作業系統加入到啟動時顯示的多系統選擇菜單。

 

下面我們來看一下具體的步驟:

注意,我們不能在實體電腦上通過光碟片把系統安裝到VHD檔案。首先我們需要一個已經安裝了作業系統的VHD檔案,這可以通過幾種方式來完成:

1. 在Virtual PC或者Hyper-V中完成安裝,並且運行sysprep,然後關機,這是的VHD檔案可以被Windows 7的Boot Loader啟動。

2. 使用ImageX工具,把之前備份的作業系統鏡像檔案(ImageX格式)恢複到VHD中。

這兩種方法的具體步驟,在Aviraj Ajgekar的部落格中有詳細的描述。

 

Adding the VHD Entry in Boot Menu and then Boot from VHD

當成功的建立VHD檔案並且在VHD系統之上部署了作業系統之後,我們需要使用Windows 7的BCDEdit工具來配置系統的多啟動菜單:

C:\>bcdedit /copy {current} /d "My New VHD Description"

Note: This will Return the GUID of the Loader Object that you will use to replace <guid> below
C:\>bcdedit /set <guid> device vhd=[driveletter:]\<directory>\<vhd filename>
C:\>bcdedit /set <guid> osdevice vhd=[driverletter:]\<directory>\<vhd filename>

Note: vhd=[driveletter:]\<directory>\<vhd filename> is the new syntax supported for BCDEdit.exe to locate VHD File and Bootmgr will locate the partition containing the VHD File to boot from.
C:\>bcdedit /set <guid> detecthal on

Note:

Following is the attached screenshot of the my machine. In this case I have Windows 7 as the default OS and I have added the VHD File in the Boot Entry.

Well just after that run the following command to test if your boot entry is successfully created using C:\>bcdedit /v

Similarly, if you want to add multiple VHDs into Boot entry you can use the following lines to the command prompt

C:\>bcdedit /copy {current} /d "New VHD Description"
C:\>bcdedit /set <guid> device vhd=[driveletter:]\<directory>\<vhd filename>
C:\>bcdedit /set <guid> osdevice vhd=[driverletter:]\<directory>\<vhd filename>
C:\>bcdedit /set <guid> detecthal on

Note:  detecthal is used to force windows to auto detect the Hardware Abstraction Layer.

If you want to delete any existing VHD entry from the Boot Menu you can always use the command C:\>bcdedit /delete <guid> /cleanup This deletes the specified operating system entry from the store and removes the entry from the display order.

Well, we are ready to Boot from VHD. Once you restart the computer you will see additional entry in Boot Menu along with the default Windows 7 or Windows Server 7 OS.

Here is the screenshot from newly booted Windows Server 2008 R2 Beta from VHD. I have installed Desktop Experience Pack and enabled Aero Glass.

看到這裡,大家不免有一些問題:從VHD啟動之後的系統,到底是運行在虛擬機器上?還是直接運行在物理硬體之上?從VHD啟動,還需要哪些必備的條件?是否會有效能的損失?下面我來回答這些問題:

 

1. Windows 7的引導程式和Windows 7本身都包含了對VHD檔案的讀寫驅動程式,因此我們可以在啟動電腦的時候,訪問VHD並且從其上啟動;我們也可以在Windows 7中直接建立、載入和卸載VHD檔案。這些都是VHD讀寫驅動的功勞,跟Virtual PC或者Hyper-V沒有直接的關係。因此Windows 7不需要安裝任何虛擬化軟體。

2. 從VHD啟動之後,電腦的作業系統直接存取硬體,不是以虛擬化的方式運行。

3. 這裡面唯一的區別,就是對檔案系統讀寫訪問的時候,需要經過額外的一層VHD讀寫驅動的解析,這裡面有一些微量的I/O效能開銷,但是跟虛擬化的情況相比,效能基本上接近了真機。我查了一些測試資料,有一組直接讀取硬碟和讀寫VHD的比較,效能差別微乎其微。如:

4. 因為對VHD的支援僅包含在Windows 7中,因此我們不能在Windows 7中建立VHD後通過光碟片給VHD安裝任何作業系統。

 

這些僅僅是對這個功能的一些簡單介紹和概括,相信大家在今後的應用中會有更多的體會和收穫。

更多資料請看  http://book.51cto.com/art/201001/176973.htm

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.