🪟 Windows PE 完全指南(上篇):微型作業系統的誕生與架構剖析 — 從 WIM、RAMDisk 到核心組件全解析
對於熟悉 Windows 系統維運或部署的工程師來說,Windows PE(Windows Preinstallation Environment) 是不可或缺的環境。它是一個可以在記憶體中運行的微型作業系統,專為安裝、維修與部署任務而設計。本文將從歷史、架構到核心組件,完整剖析這個微型系統的誕生與運作機制。
🔰 一、前言:一個能裝進記憶體的作業系統
在早期的安裝流程中,微軟仍依賴 MS-DOS 或文字模式 Setup 進行系統部署,但 DOS 無法支援 NTFS、長檔名與現代驅動。這導致工程師必須使用第三方工具(如 Ghost、PQMagic)進行磁碟分割或還原。
為了解決這些問題,微軟推出了 Windows PE,讓技術人員能在 Windows 核心上執行安裝程式與部署工具,從而取代傳統 DOS 安裝環境。
🏗 二、從 DOS 到 WinPE:歷史的技術轉折
- 2002 年:WinPE 1.0 隨 Windows XP 企業版問世,最初僅供 OEM 使用。
- 2007 年:WinPE 2.x(Vista 版本)導入 WIM 映像格式與全新啟動架構。
- 2012 年:WinPE 4.x 開始支援 PowerShell 與 64 位核心。
- 2018 年起:WinPE 從 Windows ADK 分離,需額外安裝「WinPE Add-ons」。
這段演進代表微軟正式將「可攜式 Windows 核心」納入系統部署流程,也開啟了企業端自動化安裝(WDS、MDT)的時代。
⚙️ 三、WinPE 架構總覽:Bootmgr、BCD、WIM 與 RAMDisk
WinPE 的啟動流程與完整 Windows 相似,只是規模更精簡。以下為啟動流程示意圖:
╔══════════════════════════════════╗
║ BIOS / UEFI ║
╚═══════╦═════════════════════════╝
│
▼
┌──── Bootmgr ────┐ ← 控制啟動流程
│ 讀取 BCD 設定檔 │
└───────┬─────────┘
│
▼
┌──── Winload.exe ─────────────┐
│ 載入 boot.wim → 建立 RAMDisk │
│ 設定 X:\ 為臨時系統磁碟 │
└────────┬────────────────────┘
│
▼
┌────── Kernel 初始化 ────────┐
│ 載入驅動、網路、命令介面 │
│ 進入 CMD / PowerShell 模式 │
└────────────────────────────┘
這個流程使得 WinPE 能在完全脫離硬碟的情況下運行,所有檔案皆在記憶體中展開(X:\),不會影響原系統資料。
💡 四、核心運作機制與模組組成
WinPE 的運作本質是一個縮減版的 Windows 核心。其組件包括:
- Kernel32.dll / Ntdll.dll: 處理系統層呼叫與 API。
- Smss.exe: 系統初始 Session 管理程序。
- Winlogon.exe: 登入階段處理,但在 WinPE 中僅部分執行。
- Plug and Play Manager: 動態偵測硬體與載入驅動。
- TCP/IP Stack: 支援 SMB、DHCP、PXE 網路通訊。
- Cmd.exe / PowerShell: 提供命令與腳本介面。
🧱 五、WinPE 與完整 Windows 的關係
| 項目 | WinPE | 完整 Windows |
|---|---|---|
| 運行位置 | RAMDisk(X:\) | 硬碟(C:\) |
| 登入模式 | SYSTEM 帳號 | 多使用者帳號 |
| 檔案系統 | 支援 FAT / NTFS / exFAT | 完整支援含 ReFS |
| 服務啟動 | 僅核心與網路服務 | 全功能模式 |
| 生命週期 | 72 小時(自動關機) | 無限制 |
這種設計確保了 WinPE 具備足夠功能進行維修與部署,但不會被誤用為一般系統。
🪣 六、boot.wim 與核心檔案結構解析
WinPE 的映像檔通常位於 \sources\boot.wim,其內容包括:
- \Windows: 核心系統目錄,含 System32 與驅動。
- \Program Files: 預設工具,如 DISM、DiskPart。
- \Users: 僅含預設 SYSTEM 結構。
這個 WIM 映像可透過 DISM /mount-wim 進行修改,新增或移除軟體模組,是製作自訂 WinPE 的基礎。
📦 七、ADK 與 WinPE Add-ons:安裝與版本對照
從 Windows 10 1809 起,微軟將 WinPE 拆出 ADK,需額外下載「WinPE Add-ons」。
| Windows 版本 | 對應 WinPE | 主要特性 |
|---|---|---|
| Win10 1507–1709 | 整合於 ADK | 含 ImageX、DISM、PowerShell 1.0 |
| Win10 1809 以後 | ADK + Add-ons | 獨立安裝,支援 UEFI / PXE |
| Win11 24H2 | 最新 PE 11.x | 整合新式 UI 字型與驅動簽章 |
安裝後,預設路徑為:C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment
🧠 八、WinPE 在維運與部署中的應用場景
- 💽 安裝環境: 使用
DISM /apply-image安裝 Windows。 - 🔧 維修與修復: 以
bootrec /fixboot重建開機區。 - 📂 資料救援: 使用
notepad → 開啟檔案總管複製資料。 - 🌐 企業部署: 與 WDS / MDT 整合實現自動化安裝。
🧩 九、與其他救援系統的比較
| 系統 | 核心 | 授權 | 用途 |
|---|---|---|---|
| Windows PE | Windows Kernel | 微軟官方授權 | 部署 / 維修 / 測試 |
| Hiren’s BootCD PE | WinPE 客製版 | 非商業用途 | 多合一維修工具 |
| Linux Live CD | Linux Kernel | GPL 開源 | 資料救援 / 系統修復 |
| Windows To Go | 完整 Windows | 企業授權 | 可攜式作業環境 |
📘 十、結語:理解架構,才能靈活應用
WinPE 不僅是安裝工具,更是整個 Windows 部署生態的基礎。理解它的啟動結構、核心模組與限制,能幫助你在下篇中成功製作自訂開機 USB,整合維修、部署與自動化腳本,打造專屬 IT 工程師的救援平台。
🔗 延伸閱讀
- 🐧 Linux systemd 深入解析與啟動流程管理
- 🧱 Linux Proxy Server 建置教學(Squid 安裝與設定指南)
- 💽 Windows PE 完全指南(下篇):從 ADK 安裝到自動化部署與工具整合實戰
— WWFandy・系統與網路筆記
沒有留言: