Windows PE 的開機流程與一般的 Windows 很接近,若能瞭解開機流程,對自訂 Windows PE 會有相當幫助;以下簡述 Windows PE 開機流程:
電腦的 BIOS 載入特定媒體的開機磁區,並將控制權交給 Setupldr(一般的 Windows 是交給 ntldr)。
Setupldr 載入並執行 Ntdetect.com,後者會擷取基本的系統設定資訊,並將這些資訊儲存在 HKLM\HARDWARE\DESCRIPTION。若以唯讀媒體開機,Windows PE 會將登錄資料庫的 Hive 存於記憶體,以便應用程式寫入。
接著 Setupldr 會以 Winpeoem.sif 載入適當的硬體抽象層(HAL)、系統登錄保存檔以及必要的開機驅動程式。載入完成後即準備環境執行核心,也就是 Ntoskrnl.exe。
執行 Ntoskrnl.exe 並完成環境安裝之後,再將控制權交給「工作階段管理員」(Session Manager Subsystem,SMSS)。
SMSS 會載入其餘的登錄資料庫,並設定 Win32 子系統(Win32k.sys)執行環境及其各個處理程序。SMSS 再載入 Winlogon 處理程序以建立使用者工作階段,然後啟動服務和其他不重要裝置的驅動程式及 LSASS(Local Security Authority Subsystem Service)。
接著 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
執行完 Startnet.cmd 之後,系統會停在命令提示字元,Windows PE 的開機程序也告完成。
Startnet.cmd 的預設參數為 factory –winpe,您也可以新增其他參數來自訂 Windows PE 開機程序。若要結束 Windows PE,只要在命令提示字元執行 exit 命令即可。