Windows PE 啟動(dòng)流程簡述微軟原版的Windows PE(Preinstallation Environment預(yù)安裝環(huán)境)是一個(gè)用于系統(tǒng)部署、修復(fù)和恢復(fù)的精簡版Windows操作系統(tǒng). 它的啟動(dòng)過程比完整的Windows系統(tǒng)要輕量和快速得多. 下面簡要說明PE系統(tǒng)的啟動(dòng)步驟.
1. 硬件初始化階段(BIOS/UEFI)BIOS(基本輸入輸出系統(tǒng)) 或 UEFI(統(tǒng)一可擴(kuò)展固件接口) 首先執(zhí)行硬件初始化.這一階段負(fù)責(zé)自檢和初始化系統(tǒng)的硬件,包括CPU、內(nèi)存、硬盤、USB接口等. BIOS/UEFI從用戶配置的啟動(dòng)順序(NVRAM)中檢查可啟動(dòng)設(shè)備,例如硬盤,U盤和光盤.在選擇到合適的啟動(dòng)設(shè)備后,BIOS/UEFI會(huì)將啟動(dòng)控制權(quán)交給該設(shè)備的引導(dǎo)程序.
細(xì)節(jié)說明: UEFI模式通常是現(xiàn)代計(jì)算機(jī)的默認(rèn)啟動(dòng)方式,與BIOS不同,它能夠使用GPT分區(qū)表,支持更大的磁盤,并且具有更快的啟動(dòng)速度. BIOS模式下,會(huì)通過 MBR(主引導(dǎo)記錄) 識(shí)別啟動(dòng)設(shè)備.
2. 引導(dǎo)加載程序(Bootmgr/Bootmgfw.efi)啟動(dòng)Windows PE的引導(dǎo)加載程序是 Bootmgr(Windows Boot Manager)/Bootmgfw.efi. Bootmgr 是負(fù)責(zé)加載Windows PE啟動(dòng)配置的程序,它會(huì)從啟動(dòng)設(shè)備中讀取并執(zhí)行引導(dǎo)配置數(shù)據(jù)(BCD,Boot Configuration Data,啟動(dòng)配置數(shù)據(jù))文件中的啟動(dòng)配置. 在BCD中,定義了系統(tǒng)啟動(dòng)時(shí)需要加載哪些核心組件以及引導(dǎo)過程的參數(shù),比如內(nèi)核文件、啟動(dòng)選項(xiàng)、驅(qū)動(dòng)加載等.
細(xì)節(jié)說明: Bootmgr 并不會(huì)直接啟動(dòng)操作系統(tǒng)內(nèi)核,而是負(fù)責(zé)找到并解析BCD文件,然后加載內(nèi)核相關(guān)文件.BCD文件包含了啟動(dòng)信息的配置,比如啟動(dòng)路徑、設(shè)備標(biāo)識(shí)、系統(tǒng)根目錄等. 如果設(shè)備支持 Secure Boot(安全啟動(dòng)),此時(shí)會(huì)進(jìn)行安全檢查,確保引導(dǎo)文件沒有被篡改.
3. 加載Windows PE核心組件在加載引導(dǎo)配置文件之后,Bootmgr/Bootmgfw.efi會(huì)開始加載PE系統(tǒng)的核心文件,這個(gè)過程主要涉及到 boot.wim 文件的加載. boot.wim 是Windows PE的核心系統(tǒng)鏡像文件,通常位于啟動(dòng)介質(zhì)的 \sources 目錄下.wim文件是一個(gè)壓縮包格式,包含了PE系統(tǒng)運(yùn)行所需的最核心的操作系統(tǒng)文件.
細(xì)節(jié)說明: boot.wim 文件的大小遠(yuǎn)小于完整的Windows映像文件,通常不到500MB,而完整的Windows10系統(tǒng)wim文件高達(dá)4.72GB. WIM解壓:boot.wim 被加載到內(nèi)存后,系統(tǒng)會(huì)解壓其中的必要文件. Windows PE會(huì)將這些文件直接加載到內(nèi)存(也就是Ramdisk模式啟動(dòng),詳見我的第25篇文章:《25Ramdisk 啟動(dòng)模式簡介》)而不是加載到硬盤,這樣就可以在沒有持久存儲(chǔ)的情況下運(yùn)行.
4. 啟動(dòng)WinPE內(nèi)核細(xì)節(jié)說明: 在內(nèi)核加載的同時(shí),Windows PE會(huì)初始化基本的文件系統(tǒng),允許用戶訪問存儲(chǔ)設(shè)備.PE使用 NTFS 文件系統(tǒng),并能夠在啟動(dòng)后訪問掛載的系統(tǒng)分區(qū). 驅(qū)動(dòng)程序的加載通過內(nèi)置的驅(qū)動(dòng)實(shí)現(xiàn),PE系統(tǒng)所包含的驅(qū)動(dòng)相對(duì)有限,可能無法適配所有的硬件而導(dǎo)致無法啟動(dòng).
5. WinPE Shell 啟動(dòng)細(xì)節(jié)說明: 如果PE系統(tǒng)有定制的特殊用途,比如用于自動(dòng)化安裝,winpeshl.exe 還可以啟動(dòng)特定的腳本來執(zhí)行這些任務(wù). 對(duì)于Windows ISO的自動(dòng)化部署,PE啟動(dòng)后winpeshl.exe通常會(huì)調(diào)用 setup.exe 來啟動(dòng)Windows安裝程序.
總結(jié)微軟官方的Windows PE系統(tǒng)啟動(dòng)流程: 硬件初始化:BIOS/UEFI初始化并選擇啟動(dòng)設(shè)備,用戶回車進(jìn)入PE系統(tǒng). 運(yùn)行Bootmgr/Bootmgfw.efi:加載BCD文件,讀取啟動(dòng)配置. 加載boot.wim:解壓并加載Windows PE的核心文件. 內(nèi)核加載:啟動(dòng)精簡的Windows NT內(nèi)核,初始化必要驅(qū)動(dòng). winpeshl.exe啟動(dòng):進(jìn)入PE系統(tǒng)環(huán)境,啟動(dòng)命令行界面. 啟動(dòng)結(jié)束:用戶可以輸入命令操作.
以上為半專業(yè)的PE系統(tǒng)流程解析,如有不足請(qǐng)見諒.
|