匯出 (0) 列印
全部展開
Expand Minimize

簡介 Windows PE

發佈日期: 2006 年 12 月 13 日

作者: 賴榮樞
http://www.goodman-lai.idv.tw

Windows PE 是 Windows Preinstallation Environment(Windows 預先安裝環境)的簡稱,這項技術的原始目的,是為了提供輕量級的 Windows 執行環境,以簡化 OEM 廠商將 Windows 作業系統部署到電腦。而隨著 Windows 及其應用程式和驅動程式越加普及,OEM 廠商以及應用軟體廠商對也越加發覺 Windows PE 的確非常實用,也促進了 Windows PE 技術的持續發展。

本頁內容

起源:為什麼需要 Windows PE?
誰需要 Windows PE?
Windows PE 的版本演進
各種工具的異同
Windows PE 的基本環境
Windows PE 的限制
Windows PE 開機流程
製作 Windows PE
包含在 WAIK 裡的 Windows PE 2.0
結語

目前的 Windows PE 除了發展至 2.0 的版本,也成為微軟的 Windows 桌上電腦部署解決方案 Microsoft Solution Accelerator for Business Desktop Deployment(BDD),以及部署 Windows Vista (英文) 的標準工具,甚至許多 Windows 應用軟體廠商也開始利用 Windows PE。

起源:為什麼需要 Windows PE?

簡而言之,當初發展 Windows PE 的目的,是為了減少部署 Windows 時對 DOS 環境的依賴,並且也希望能提供輕量級的 Windows 執行環境給電腦系統的 OEM 廠商,作為廠商的部署環境。在 Windows 的普及正要起飛之時,DOS 環境對 Windows 的部署或安裝仍扮演重要角色,不只 Windows 安裝光碟會先開機到 DOS 環境,OEM 廠商的許多部署工具也都還是 DOS 版本。但是當 Windows 越加普及,驅動程式及應用程式皆已轉移到 Windows 環境之後,安裝或部署 Windows 也沒有必要還停留在 DOS 環境。

因此,當時在 Windows 安裝小組的微軟工程師,便提出了輕量級 Win32 執行環境的想法,希望能讓光碟開機之後就將此環境載入電腦,而擺脫安裝、部署 Windows 卻還得依賴 DOS 的情況。這項想法也因而發展成 Windows PE,從 Windows PE 的全名也不難發現,這項技術應該要能夠產生出「安裝 Windows 所需要的環境」,也因為已經有許多 Windows 環境的應用程式及驅動程式,而且 Windows 環境也成為開發人員熟悉的平台,因此 Windows PE 責無旁貸的當然要能產生 Windows 環境。

再者,Windows PE 應該是個針對特定工作、需要客製化的「臨時」作業環境。雖然 Windows PE 現今的應用已經超過當初所預期,但是 Windows PE 的應用仍然很單純的集中在某些工作(最多的就是安裝、部署),因此 Windows PE 不需要是個全能的環境,不需要的元件即可排除在外;也因為 Windows PE 的應用僅是特定工作,因此有必要能讓廠商自行對 Windows PE 的功能客製化。「臨時」意指只是為了特定目的或工作(例如安裝或部署)而執行 Windows PE,該項工作完成也將結束 Windows PE。

誰需要 Windows PE?

如前所述,微軟和電腦系統的 OEM 廠商是 Windows PE 的最大需求者。對微軟來說,Windows PE 提供了安裝 Windows 的基本環境,只要使用者以 Windows 光碟開機,就能自動執行 Windows 安裝程式,並能讓使用者設定安裝選項(或者配合相關技術而不需要使用者介入),進而完成 Windows 作業系統的安裝。

電腦系統的 OEM 廠商也是 Windows PE 的使用大戶。這類的 OEM 廠商在出機之前,需要預先將 Windows 作業系統安裝到電腦,因此需要 Windows PE 及其客製化和自動化的功能,快速的完成 Windows 作業系統的安裝工作。而目前電腦系統的 OEM 廠商通常也不提供 Windows 安裝光碟給電腦消費者,而改以提供所謂的回復光碟或還原光碟,消費者以廠商提供的光碟開機,就能將光碟裡的 Windows 映像(image)複製到電腦裡的硬碟(當然也就覆蓋硬碟裡的系統),而這整個還原的過程也可以在 Windows PE 執行。相較於讓消費者安裝 Windows,將 Windows 映像複製到電腦,更能簡化 Windows 的安裝工作。

當 Windows 成為企業主要的電腦作業系統之後,企業也成為 OEM 廠商之外,需要能快速將大量的 Windows 安裝(或稱為部署)到電腦的工具,這些工具當然應該是 Windows 程式(還要開發人員回頭編寫 DOS 程式實在不合邏輯),而最適合執行這些工具的環境,當然也是 Windows PE。

此外,也有許多工具軟體廠商開始利用 Windows PE,例如 softthinks (英文) 和 Eurosoft (英文) 公司都提供了許多這類的軟體解決方案。舉例來說,對於想要開發診斷測試工具的廠商而言,Windows PE 是個優於 Windows 的環境,原因不只是 Windows PE 單純、體積小而載入快速,更因為許多需要測試的情況,可能都還沒有安裝 Windows,或者就是因為 Windows 有問題而無法啟動(所以才需要診斷)。而且工具廠商還能向微軟授權而將 Windows PE 附在光碟,不論使用者有沒有安裝 Windows 或 Windows 能否正常啟動,都能以光碟裡的 Windows PE 開機,而後執行相關的工具軟體。這類的應用還包括資料備份與還原、系統回復、掃毒或復原檔案,以及磁區規劃或磁碟重組等工具。

圖 1:Windows 與 Windows PE 的差異(圖片來源:Building Support Solutions with Windows PE)

圖 1:Windows 與 Windows PE 的差異(圖片來源:Building Support Solutions with Windows PE)

Windows PE 的版本演進

第一個 Windows PE 是跟著 Windows XP 推出,而每個 Windows PE 版本都緊跟著 Windows 作業系統,以下是截至目前到 2.0 為止的 Windows PE 簡介,而括號內是能製作該版 Windows PE 的 Windows 版本。

  • Windows PE 1.0(Windows XP Professional):能從 PXE 及光碟開機。

  • Windows PE 1.1(Windows XP Professional SP1):支援分散式檔案系統(DFS),並且完整具備從硬碟開機的能力。

  • Windows PE 1.2(Windows Server 2003 標準版或企業版):Windows Server 2003 或 Windows XP Professional SP1 皆可製作 Windows PE 1.2。

  • Windows PE 2004/1.5(Windows XP Professional SP2):從這個版本開始,Windows PE 也另以年份表示版本,而新的功能包括支援 WMI 和 Windows 防火牆;前者能加入額外的驅動程式類型,能在開機之後重新掃瞄隨插即用的硬體。

  • Windows PE 2005/1.6(Windows Server 2003 SP1):這個版本開始支援 RAMDisk 及 USB 隨身碟開機。要注意的是,雖然 Windows XP Professional SP2 和 Windows Server 2003 SP1 都能製作出 Windows PE 1.6,但只有 Windows Server 2003 SP1 才能製作出支援 RAMDisk 及 USB 隨身碟開機的 Windows PE。

各種工具的異同

如前所述,發展 Windows PE 的原始目的,是為了創造安裝 Windows 所需要的輕量級 Windows 執行環境,而 Windows PE 發展至今也衍生出各有差異的工具,這些工具都是以 Windows PE 作為重要的核心基礎(但也另外增加了其他的技術);除了 Windows PE 之外,還有 Windows OPK(OEM Pre-install Tool Kit)和 WAIK(Windows Automated Installation Kit)等兩項相關的工具。

Windows OPK 光碟只提供給 OEM 廠商,除了包含 Windows PE,Windows OPK 光碟能開機進入前述的 Windows PE 基本預設環境。獲得微軟授權使用 Windows PE 的非 OEM 廠商會收到 Windows PE 光碟,這片光碟包含 Windows PE 建置工具。Windows OPK 光碟亦包含相同的 Windows PE 建置工具。

企業用戶與 OEM 廠商雖然都可以利用 Windows PE 技術來部署 Windows,但實際的需求也有相當程度的差異,因此微軟在 Windows Vista 除了為 OEM 廠商提供 OPK 光碟,也為企業部署 Windows Vista 推出了 WAKI 工具;OPK 或 WAIK 的許多技術和工具都相同,而 Windows PE 也是兩者共同的技術之一。

相較於提供給一般企業並可公開下載的 WAIK (英文) 以及提供給 OEM 廠商的 OPK,Windows PE 光碟僅提供給與微軟簽訂 Software Assurance(軟體保證)、Enterprise Agreements 或 Campus Agreements(校園合約)等大量授權的客戶。

Windows PE 的基本環境

雖然許多 Windows PE 的應用都呈現了相當美觀的圖形操作介面,但這些都是廠商自行客製化的結果,微軟提供給廠商的原始 Windows PE 雖然具備了圖形操作介面的執行能力,但預設只有文字模式操作介面(Cmd.exe)。這個預設的執行環境,相當於具備基本能力的「準系統」,而 OEM 廠商或軟體開發商則能依照自身需求,另行擴充 Windows PE 預設的功能,包括加入更多特定的硬體驅動程式,以及諸如 HTML for Applications(HTA)、Windows Script Host(WSH)或 ActiveX Data Objects(ADO)等軟體能力。

Windows PE 使用基本的 VESA 顯示模式,並且提供 TCP/IP 網路功能和 NTFS 的建立、刪除、讀寫、格式化等能力,以及有限的驅動程式和 Windows API 支援;Windows PE 支援 x86、x64、IA64 三種處理器。一開始的 Windows PE 只能從光碟開機,後來的 Windows PE 版本則又追加了透過 PXE 從網路開機,以及利用 USB 隨身碟和硬碟開機的能力。Windows PE 無法從磁碟開機,但可以從 LS-120/LS-240 磁碟開機(但效能不佳);以下是目前的 Windows PE 所能支援的開機方式:

  • 光碟

  • PXE(Preboot Execution Environment)

  • RIS(Remote Installation Services)

  • 硬碟

  • USB 隨身碟

  • RAMDisk

圖 2:OPK 1.6 開機之後的畫面

圖 2:OPK 1.6 開機之後的畫面

Windows PE 的限制

Windows PE 是個輕量級的 Windows,而且通常有其特定目的(例如安裝、部署 Windows,或者離線備份資料),因此 Windows PE 的功能自然不若一般的 Windows 完整。以下簡述目前 Windows PE 的功能限制:

  • 預設僅包含磁碟及網路功能及重要的 Win32 API,以下是 Windows PE 不支援的 Windows API:

    1. 存取控制

    2. NetShow 劇院系統管理

    3. OpenGL

    4. 電源選項

    5. 列印及列印多工緩衝處理程式

    6. 靜態映像

    7. 磁帶備份

    8. 終端機服務

    9. 使用者設定檔

    10. 桌面

    11. Windows Management Instrumentation

    12. Windows 多媒體

    13. Windows Shell

  • 持續使用 24 小時之後會重新開機,這是為了避免 Windows PE 成為盜版作業系統。

  • Windows PE 雖然提供網路功能,但並無法讓您從網路另一端存取 Windows PE 電腦裡的檔案或資料夾。

  • 僅能對獨立根目錄進行分散式檔案系統(DFS)的名稱解析,不支援網域根目錄。

  • 僅支援 TCP/IP(包含 IPv4 和 IPv6)及 NetBIOS over TCP/IP,不支援諸如 SPX/IPX 等其他的網路通訊協定。

  • Windows PE 雖然支援 PXE,但不見得能支援所有廠牌的 PXE 裝置;而RIS伺服器對 Windows PE 網路啟動的支援程度最高。

  • Windows PE 不會儲存所指定的磁碟機代號,也就是說重開機之後會回復成預設順序。

  • 預設的英文版 Windows PE 大小為 160 MB,32 位元 Windows PE 最多可縮到 86 MB;中文版的 Windows PE 大小則為 300 到 370 MB 左右。Windows PE 雖然可藉由客製化減小,但仍然大的無法存入一般磁片(雖然可存入 LS-120/LS-240 磁片並啟動 Windows PE,但效能不佳)。

  • 無法從 Windows XP Home Edition 建置的 Windows PE。

  • 不支援 Microsoft .NET 或 Common Language Runtime。

  • 32 位元及 64 位元版本的 Windows PE 各不支援 Windows on Windows 32(WOW32)及 Windows on Windows 64(WOW64)子系統,因此 32 位元 Windows PE 無法執行 16 位元 Windows 程式,而 64 位元 Windows PE 無法執行 32 位元 Windows 程式。

  • 32 位元版本的 Windows PE 才能安裝 32 位元版本的 Windows;同理,64 位元版本的 Windows PE 才能安裝 64 位元版本的 Windows。

  • Windows PE 能在啟動 Windows 安裝程式之前,設定、分割電腦裡的硬碟。但若啟動 Windows 安裝程式之前,就以 Diskpart.exe 將硬碟轉換成動態磁碟,Windows 安裝程式會將這些硬碟視為外來而無法存取這些硬碟裡的磁區。

  • Windows PE 不支援以 Windows Installer 封裝的應用程式。

  • 記憶體最小需求為 256 MB。

Windows PE 開機流程

Windows PE 的開機流程與一般的 Windows 很接近,若能瞭解開機流程,對自訂 Windows PE 會有相當幫助;以下簡述 Windows PE 開機流程:

  1. 電腦的 BIOS 載入特定媒體的開機磁區,並將控制權交給 Setupldr(一般的 Windows 是交給 ntldr)。

  2. Setupldr 載入並執行 Ntdetect.com,後者會擷取基本的系統設定資訊,並將這些資訊儲存在 HKLM\HARDWARE\DESCRIPTION。若以唯讀媒體開機,Windows PE 會將登錄資料庫的 Hive 存於記憶體,以便應用程式寫入。

  3. 接著 Setupldr 會以 Winpeoem.sif 載入適當的硬體抽象層(HAL)、系統登錄保存檔以及必要的開機驅動程式。載入完成後即準備環境執行核心,也就是 Ntoskrnl.exe。

  4. 執行 Ntoskrnl.exe 並完成環境安裝之後,再將控制權交給「工作階段管理員」(Session Manager Subsystem,SMSS)。

  5. SMSS 會載入其餘的登錄資料庫,並設定 Win32 子系統(Win32k.sys)執行環境及其各個處理程序。SMSS 再載入 Winlogon 處理程序以建立使用者工作階段,然後啟動服務和其他不重要裝置的驅動程式及 LSASS(Local Security Authority Subsystem Service)。

  6. 接著 Windows PE 會執行 Winpeshl.exe,這個程式會執行「命令提示字元」(Cmd.exe)和 Startnet.cmd(這相當於 Windows PE 的 Autoexec.bat)。預設會以 factory –winpe 作為 Startnet.cmd 的參數,而這會根據以下順序執行 Winbom.ini 裡的區段:

    • [WinPE.Net]

    • [DiskConfig]

    • [OEMRunOnce]

    • [OEMRun]

    • [WinPE](除了 Restart 之外)

    • [UpdateSystem]

    • 位於 [WinPE] 的 Restart

  7. 執行完 Startnet.cmd 之後,系統會停在命令提示字元,Windows PE 的開機程序也告完成。

Startnet.cmd 的預設參數為 factory –winpe,您也可以新增其他參數來自訂 Windows PE 開機程序。若要結束 Windows PE,只要在命令提示字元執行 exit 命令即可。

製作 Windows PE

製作 Windows PE 需要對映版本的 Windows PE 建置工具,以及對映版本的 Windows 原版光碟;例如要製作 Windows PE 1.6,就需要 Windows PE 1.6 的建置工具,以及 Windows Server 2003 SP1 原版光碟。Windows PE 建置工具是命令列模式的程式。例如 Windows Server 2003 SP1 原版光碟在 E:,而要製作包含 WMI 功能的 Windows PE,可以利用 mkimg 指令:

mkimg.cmd E:\ D:\wpe1\ /WMI

上述指令會將製作的結果放在 D:\wpe1 資料夾。若還希望加入 WSH 和 HTA 功能,可再補上以下指令:

BuildOptionalComponents.vbs /S:E:\ /D:D:\wpe1\ /HTA

上述指令雖然只加上 /HTA 參數,但此參數也同時具備WSH功能。此外,BuildOptionalComponents.vbs 亦包含在 Windows PE 建置工具。

待一切無誤,便可再以 oscdimg 指令將上述產生的檔案包成光碟 ISO 映像檔,例如:

oscdimg -n -betfsboot.com D:\wpe1\ E:\wpe\wpe1.iso

接著您就能將此 ISO 檔燒成光碟片,但我習慣會先以 Virtual PC 測試 ISO 及其中的 Windows PE 均符合所需再燒光碟(Virtual PC 可直接將 ISO 檔案視為光碟,而不需燒成光碟)。

關於製作 Windows PE 的指令,可參閱 OPK 光碟或 Windows PE 光碟裡的使用手冊及參考手冊的詳細說明。

包含在 WAIK 裡的 Windows PE 2.0

Windows Vista 專用的 Windows PE 2.0 也已包含在 WAIK,而不像原本的 Windows PE 及 OPK 是只有 OEM 廠商或與微軟簽訂大量授權合約的用戶才能取得,WAIK 是能公開下載取得,只要是經過授權的 Windows 用戶皆可使用。Windows PE 2.0 的變革相當大,整個 Windows 部署的架構與技術都有新的作法,例如存放 Windows 映像檔的 Windows Imaging(WIM)技術,以及取代 RIS 的 Windows Deployment Services。

藉由 WIM 技術以及 ImageX 工具(之前稱為 XImage),可以將 Windows 映像檔存放到 WIM 檔案,而且每個 WIM 檔案可以放置好幾個映像。Windows PE 2.0 的映像檔不僅可以利用 ImageX 工具存入 WIM 檔案(亦可取出),最大的優點是能以 WIM 裡的影像檔開機,而且 Windows PE 2.0 也加強了建置工具的功能。

目前您可下載到包含英文版在內的五種語系的 WAIK,但還沒有中文版,下載回來的是超過 800 MB 的 WAIK 光碟映像檔,因此需要燒成 DVD,或以虛擬光碟機程式才能存取 WAIK 的內容。

圖 3:WAIK 光碟的自動執行畫面

圖 3:WAIK 光碟的自動執行畫面

載入 WAIK 光碟內容之後,請以自動執行畫面執行 Windows AIK Setup(如圖 3),這會安裝 WAIK 相關的工具、映像檔、文件(當然也包括 Windows PE 2.0)。安裝 WAIK 之後,我們要在命令字元提示環境,利用 CopyPE.cmd 根據自己的需要產生一份 Windows PE 工具,例如:

CopyPE x86 d:\WinPE2-x86

CopyPE.cmd 有兩個參數,第一個是指定硬體架構,除了上述例中的 x86,如果是 x64 硬體,還可以指定成 amd64;另一個參數是產生的 Windows PE 工具所要放置的資料夾(請勿事先建立資料夾,CopyPE.cmd 可自動建立;CopyPE.cmd 不能使用事先建立的資料夾)。

上述產生的結果當中,ISO 資料夾包含了所有建置 Windows PE 2.0 映像檔所需要的檔案,而建置的指令與之前的 Windows PE 建置工具類似,以下是我使用的例子:

oscdimg -bd:\WinPE2-x86\ISO\boot\etfsboot.com -n -o d:\ WinPE2-x86\ISO c:\WinPE2-x86\x86pe.iso

上述例子的參數說明如下:

  • -b:指定 Windows PE 建置工具所提供的開機檔案(etfsboot.com)及位置,此例為 d:\WinPE2-x86\ISO\boot\etfsboot.com。

  • -n:允許使用長檔名。

  • -o:以忽略重複檔案的方式對映像檔最佳化。

稍候片刻上述指令就會產生出 Windows PE 2.0 的映像檔,同樣的可以利用 Virtual PC 測試這個映像檔(如圖 4)。

圖 4:自製的 Windows PE 2.0

圖 4:自製的 Windows PE 2.0

結語

Windows PE 是羽量級的 Windows 環境,原本的目的是作為安裝、部署 Windows,但隨著不斷的發展與應用,Windows PE 也廣為企業部署 Windows 所接受,並且也有許多應用軟體開發商用來當作軟體的執行平台。Windows PE 最大的目的是要取代 DOS,尤其微軟已於 2005 年 12 月 31 日停止 MS-DOS 的授權之後,廠商會將原本對 DOS 的需求轉移到 Windows PE。

Windows PE 映像檔相當容易製作,OPK、Windows PE 或 WAIK 光碟裡都包含了相當完整的指令參考手冊。製作 Windows PE 映像檔首先要考量 Windows PE 要如何開機,各種開機方式需要不同的技巧及注意事項;其次要考量的是需要哪些 Windows PE 功能,並且要加入適當的驅動程式,最後再視情況加入自身的特定功能(例如加入腳本程式或圖形介面的 HTA 程式)。

Windows PE 2.0 新增、加強了許多功能,而且也擴大使用對象,您只要下載 WAIK,就能取得 Windows PE 2.0;但 WAIK 並不只有 Windows PE,還包括部署 Windows Vista 的諸多技術。

最後順便一提,另一項非微軟提供的 Bart's Preinstalled Environment(BartPE)雖然概念與 Windows PE 接近,但是作法與應用範圍確有 Windows PE 有相當程度的差別;簡而言之,BartPE 比較屬於使用端的工具,而 Windows PE 則是廠商或 IT 人員的工具。

參考資料:

本文對您有任何幫助嗎?
(剩餘 1500 個字元)
感謝您提供意見
Microsoft 正展開一份線上問卷調查,了解您對於 MSDN 網站的看法。 如果您選擇參加,您離開 MSDN 網站時即會顯示線上問卷調查。

您是否想要參加?
顯示:
© 2014 Microsoft