天天看點

實作從硬碟引導 VistaPE

之前的 Blog 陳述了我對 VistaPE 的一些看法,謹代表個人看法。下來此篇 Blog 将與大家分享我是如何實作從硬碟引導 VistaPE 的。

      這次實踐所需的環境與定制個性化 VistaPE 時的一樣,我将會使用 Virtual PC 2007 來作為硬碟啟動 VistaPE

的測試環境。同樣我仍然強烈地推薦使用 Vista 系統作為宿主環境。

      之前定制個性化 VistaPE 時,我并沒有安裝 VistaPE

支援的元件支援,作為今後的使用工具我個人認為還是有必要把這些元件都安裝進入到我的個性化 VistaPE 中去。為此,我們首先需要将之前做好的映像重新 mount

到我們的特定目錄性,之後通過“peimg”工具來檢視我們已安裝的元件,和安裝新的元件,之後我們會重新封裝這個映像并從最終的映像檔案中删除所有未安裝的程式包,來有效地減少整個映像的大小,最後将我們修改過的

VistaPE 制作成一個 ISO 檔案,供我們稍候在虛拟機實踐硬碟啟動 VistaPE 中使用。具體步驟如下:

      1、裝入基本的 VistaPE 映像,也就是将 winpe.wim 檔案内容影射到我們的 mount

目錄中,并且我們可以對其進行修改。

imagex /mountrw c:vistapewinpe.wim 1

c:vistapemount

      2、檢視目前映像中已經安裝的内置元件支援,并安裝我們需要的内置元件。

peimg /list

c:vistapemountwindows

           注:在 INS

列中,(+)表示已經安裝的元件包,(-)則表示為安裝的元件包。下圖則顯示了預設映像中内置元件的安裝情況。

          如果要安裝其中未安裝的元件我們則使用參數“/install”即可,具體的指令如下:

peimg /install=*HTA*

注:其中“*HTA*”即“WinPE-HTA-Package”,為了快速執行可以使用通配符。此外,官方文檔中提及的“WinPE-SRT-Package”元件并不包含在我下載下傳的簡體中文版的WAIK中。

      3、準備映像,删除我們未安裝得元件,以減少映像大小。

peimg /prep c:vistapemountwindows[code]

      4、重新封裝映像,将更改送出至映像。

code] imagex /unmount c:vistapemount

/commit

注:在送出更改前,請找到本機“%windir%system32winload.exe”這個檔案拷貝到“C:vistapemountwindowssystem32”下,因為根據實際測試發現WAIK自帶的原始模闆中并沒有這個檔案,由此會導緻我們以硬碟啟動

VistaPE 時因無法找到檔案而啟動失敗。

      5、替換預設的 Boot.wim 檔案。

copy c:vistapewinpe.wim

c:vistapeisosourcesoot.wim

      6、因為是制作硬碟啟動的 VistaPE ,是以我們要先制作一張 CD-ROM 的 ISO 鏡像檔案,以便我們在虛拟機中測試。

oscdimg -n -bc:vistapeetfsboot.com c:vistapeiso

c:vistapevistape.iso

      在晚上上述的準備工作後,我們就可以開始實踐以硬碟方式啟動 VistaPE,因為 Vista 使用 BCD 來替換

boot.ini,是以我們需要使用BCDEdit(管理 BCD

存儲的指令行工具)來重新生成我們的啟動配置檔案。為此,打開我們事先準備好的虛拟機(記憶體應該配置設定512M,否則将導緻 VistaPE

運作失敗),并載入我們上面制作好的 ISO 檔案。成功引導進入 VistaPE 系統後,打開指令行模式,用 diskpart.exe 為硬碟重新分區格式化,并将

ISO 中的 VistaPE 解包至硬碟上,并重新生成硬碟引導用的 BCD 檔案。具體步驟如下:

      1、首先我們進入 VistaPE 指令行模式,準備硬碟驅動器。

diskpart    

select disk 0

clean

create partition primary size=512

select partition 1

active

format fs=ntfs

exit

      2、将 VistaPE 檔案複制到硬碟。

d:imagex

/apply d:sourcesootwim 1 c:    

xcopy d:oot*.* /e /f c:oot

copy d:ootmgr c:

del c:ootcd

      3、配置 BCD 存儲,重新生成引導配置檔案。

bcdedit -createstore c: empBCD    注:如果提示錯誤,請現在C槽下建立temp這個目錄

bcdedit

-store c: empcd -create {bootmgr} /d "Microsoft Boot Manager"

-store c: empcd -set {bootmgr} device boot

bcdedit -store c: empcd

-create /d "Microsoft Windows Vista PE" -application osloader

-import c: empcd

注:在上面的指令中惠傳回一個 GUID 值,請記錄下來并替換下面指令行中的 GUID。

-store c:ootcd -set GUID osdevice partition=c:

bcdedit -store

c:ootcd -set GUID device partition=c:

bcdedit -store c:ootcd -set

GUID path windowssystem32winload.exe

bcdedit -store c:ootcd -set GUID

systemroot windows

bcdedit -store c:ootcd -set GUID winpe yes

bcdedit -store c:ootcd -set GUID detecthal yes

c:ootcd -displayorder GUID -addlast

      至此我們就完成了計算機的準備工作沒,現在可以重新啟動計算機并從硬碟啟動 VistaPE。以硬碟啟動 VistaPE 的過程就完成了,在

BCD 生成過程中會涉及到一個 GUID (全局統一辨別符),這個 GUID

生成的算法可能用到了以太網卡位址、納秒級時間、晶片ID碼或許多可能的數字,由于猜測可能我們制作出來的硬碟啟動的 VistaPE

不能應用在所有的計算機或移動硬碟上,具體成功與否我們還有待測試,可能會出現的關鍵阻礙就是我們在移動硬碟上制作的硬碟方式引導的

VistaPE,并不能在所有的計算機上運作。希望結果不會是這樣的。

      好了,以硬碟啟動的 VistaPE 制作過程到這裡就告一段落,實際測試表明以硬碟方式啟動 VistaPE

時,啟動速度确實快了不少,而且當計算機記憶體為128M時仍然正常啟動運作,當然在 VistaPE 中作的修改也會得到儲存。

      此外發現一個有趣的現象,使用硬碟啟動 VistaPE 後,硬碟上的 C 盤盤符會自動變為X,當用其他媒體引導時磁盤盤符會恢複為

C,也就是說微軟将 VistaPE 預設引導磁盤盤符定義為 X ,而且是無法更改的。

      關于移動硬碟使用硬碟啟動方式的 VistaPE 測試結果我會盡快向大家提供,也希望大家能繼續關注我的

Blog,我也非常願意與大家分享我的心得體會。

本文轉自 蘇繁 51CTO部落格,原文連結http://blog.51cto.com/goxia/220337,如需轉載請自行聯系原作者

繼續閱讀