簡介

VHD(Virtual Hard Disk)檔案是微軟虛擬機器軟體模擬硬碟的檔案格式,包括 Hyper-V、Virtual Server、Virtual PC 的虛擬機器,都以 VHD 模擬硬碟。而因為 Windows 7 及 Windows Server 2008 R2 開始支援 VHD,因此 VHD 檔案能以硬碟的形式在這兩種作業系統使用,甚至還能以 VHD 開機—將 Windows 7 或 Windows Server 2008 R2 部署在 VHD 所建立的虛擬硬碟,Windows 7 或 Windows Server 2008 R2 的 Loader 就能以虛擬硬碟開機。

VHD 已納入微軟新一代部署方案,除了讓 Windows 7 和 Windows Server 2008 R2 支援 VHD(而且最多可同時連接 512 個 VHD 檔案),整個部署方案也有一系列相關工具互相整合支援。不過 VHD 仍有若干限制,包括:

  • 目前僅 Windows 7 企業版、Windows 7 旗艦版、Windows Server 2008 R2 支援 VHD 開機。
  • VHD 開機的系統支援睡眠但不支援休眠。
  • VHD 檔案不可為巢狀結構。
  • 不支援伺服器訊息區(SMB)共用的 VHD 開機。
  • 主機磁碟區若包含用於開機的 VHD 檔案,即無法以 BitLocker 加密,且 BitLocker 無法用在內含 VHD 的磁碟區。
  • VHD 檔的父磁碟分割不可是磁碟區快照。
  • 不可將連結的 VHD 設為動態磁碟。

事前的準備

我們將使用命令列工具來完成所有的操作,包括 DiskPart、ImageX、BCDEdit 等 3 支工具程式,其中 ImageX 包含在 Windows 自動化安裝套件(AIK),請下載並安裝 Windows 7的Windows AIK 即可獲得;其他兩支工具已內建於 Windows 7。

VHD 雖然可營造出虛擬硬碟,但其空間並非無中生有,系統上還是要有足夠的實體硬碟空間。例如要建立容量為 40 GB 的虛擬空間,實際上 VHD 檔需佔用 40 GB 硬碟空間。VHD 有固定大小(FIXED)和動態擴充(EXPANDABLE)兩種類型,前者在建立時已經完整配置磁碟空間,後者則是依照實際使用擴充磁碟空間;就優缺點而言,前者效能較佳,後者彈性較佳。

我們會在 Windows 7 環境建置 VHD 檔,再將 Windows 7 部署到 VHD 檔所建構的虛擬磁碟,最後修改開機選單,讓系統變成雙重開機—原本的 Windows 7 和新部署到 VHD 的 Windows 7。部署 Windows 7 需要 WIM 檔;我們是直接使用 Windows 7 安裝光碟裡的 install.wim 檔。

建置 VHD

建置 VHD 的過程包括建立 VHD、連結 VHD、建立主要磁碟分割和格式化。Windows 7 環境的『電腦管理』/『磁碟管理』可以完成 VHD 的建置,操作方法相當簡單,但以下將以命令列工具 DISKPART 來建置 VHD,讓 IT 人員甚至可搭配腳本程式完成建置。

建立 VHD

1. 首先請以『系統管理員身份』執行『Microsoft Windows AIK』裡的『部署工具命令提示字元』(以下所有的命令皆須以系統管理員身份執行),然後執行 DISKPART。

2. 接著以 CREATE 建立虛擬磁碟:

  • VDISK 表示要建立虛擬磁碟。
  • FILE 指定虛擬磁碟的路徑及檔名。這個例子是將 VHD 檔建置在F磁碟,檔名是 w7test.vhd。
  • TYPE 指定為「固定大小」的 FIXED。
  • MAXIMUM 容量上限設為 40960,也就是 40 GB。

CREATE VDISK FILE=”f:\w7test.vhd” TYPE=FIXED MAXIMUM=40960

執行之後,桌面右下角的系統通知區就會出現『正在安裝裝置驅動程式軟體』及『Microsoft VHD HBA 裝置驅動程式軟體已順利安裝』的訊息。整個建立的時間因機器和 VHD 大小而異,以這個例子大約花了我 10 分鐘左右。

連結 VHD

3. 以 SELECT 選取 FILE 所指定的虛擬磁碟,這會將焦點轉移到所選取的虛擬磁碟,我們要指定 VDISK,並以 FILE 指定 VHD 檔路徑、檔名。:

SELECT VDISK FILE=”f:\w7test.vhd”

4. 再以 ATTACH 連結虛擬磁碟,這要加上 VDISK:

ATTACH VDISK

分割

5. 然後要以剛才建立的整個虛擬磁碟,建立成一個主要磁碟分割,也就是利用:

CREATE PARTITION PRIMARY

格式化

6. 接著再快速格式化虛擬磁碟,檔案系統指定成 NTFS,且加 上QUICK。再以 ASSIGN 讓系統自行指定磁碟代號(這個指定為 i),最後利用 EXIT 結束 DISKPART:

FORMAT FS=ntfs QUICK
ASSIGN
EXIT

套用 Windows 映像

經過上述命令,我們已經有了一個 40 GB 的虛擬磁碟i,而這個磁碟實際上是位於 F 的 w7test.vhd。現在我們要利用 ImageX 將 Windows 7 部署到i磁碟;此例我們使用 Windows 7 安裝光碟裡的映像檔 install.wim(位於 h:\sources)。

7. 由於每個 wim 檔可能包含好幾個 Windows 版本,因此我們先檢查 wim 檔:

IMAGEX /INFO “h:\sources\install.wim”

從列出的結果可發現這個 install.wim 有 5 個映像,而旗艦版的索引值是 5。

8. 根據檢查結果指定部署的版本的索引值(此例為 5,旗艦版),並且部署到虛擬磁碟i:

IMAGEX /APPLY “h:\sources\install.wim” 5 i:\

按下 ENTER 按鍵就會開始部署,並且可能 10 分鐘左右才能完成。

中斷連結 VHD

9. 現在我們要利用 DETACH 中斷這部虛擬磁碟的連結,也就是讓虛擬磁碟脫離系統:

DISKPART
SELECT VDISK FILE=”f:\w7test.vhd”
DETACH VDISK
EXIT

新增開機選單

最後,我們要讓系統能以這個 VHD 檔(也就是虛擬磁碟)開機,作法是先以 BCDEDIT 複製系統目前的開機選單,再以該項新增的選單為基礎,利用 BCDEDIT 修改內容。

10. 以 BCDEDIT 複製系統目前的開機選單,雙引號內的字串會顯示在開機功能表,您可自行更改:

BCDEDIT /COPY {current} /D “Win7 From VHD”

執行之後會顯示該項選單的 ID,請複製這組 ID,稍後將會需要。

11. 如下執行 3 行命令,將該項選單的開機裝置指向前述建立的虛擬磁碟—也就是 VHD 檔案:

BCDEDIT /SET {ID} DEVICE vhd=[F:]\w7test.vhd
BCDEDIT /SET {ID} OSDEVICE vhd=[F:]\w7test.vhd
BCDEDIT /SET {ID} DETECTHAL ON

12. 最後再以如下的命令檢查開機選單內容是否修改正確:

BCDEDIT /ENUM

經過以上即完成所有操作,現在請重開機,系統 POST 之後會出現開機選單,並新增了一項標題為 Win7 From VHD 的選項,以方向鍵選取該項選項並按下 Enter 鍵,系統就會以前述建立的 VHD 來開機,而因為 VHD 已部署了 Windows 7,因此會進入 Windows 7 環境。

以這種方式部署的 Windows 7,在第一次開機時,需要花些初始工作的時間,包括安裝服務、裝置,並再次重開機,接著預設需要使用者輸入帳號、密碼等設定工作。完成之後,該部電腦即可擁有能雙重開機的 Windows 7 環境。

結語

這是一種相當簡便的 Windows 7/Windows Server 2008 R2 多重開機環境建置方式,如果要移除 VHD 裡的系統,只要移除 VHD 檔或 VHD 檔所在的磁碟區或分割區,再如下以 BCDEdit 移除開機選單裡的選項:

BCDEDIT /DELETE {ID} /CLEANUP

VHD 的用途相當廣泛,不僅可以用於微軟的各種虛擬軟體(包括 Windows Server 2008 Hyper-V、Microsoft Virtual Server、Microsoft Virtual PC),當作虛擬機器的磁碟,現在也因為 Windows 7 及 Windows Server 2008 R2 的支援,可以當作這兩者系統的開機磁碟。雖然將系統部署在 VHD 的效能,略比部署在實體硬碟稍慢一點點(如果是固定大小的 VHD,效能不會有太大的差異),但會比透過虛擬機器軟體的效能快很多。而且透過虛擬機器執行,可能會遇到硬體不支援的情況,最常見的例子就是 GPU。

如果您需要另一個 Windows 7 或 Windows Server 2008 R2 作為測試環境,或許就可參考本文所介紹的方式。此外,本文提供的作法也適用 Windows Server 2008 R2,而且只要硬碟空間足夠,也可建置出多重開機環境。

 

引用:http://technet.microsoft.com/zh-tw/ff384130.aspx

arrow
arrow
    全站熱搜

    nan 發表在 痞客邦 留言(0) 人氣()