天天看點

Windows PE入門基礎知識:Windows PE的作用、命名規則、啟動方式、啟動原理

windows pe的全名是windowspreinstallationenvironment(winpe)直接從字面上翻譯就

是“windows預安裝環境”。微軟的本意是:winpe僅用做系統維護,并設定了各種限制。可以簡單的了解為:pe是windows系統的超級精簡版、超級權限版(以系統system賬戶登入)!對于無法進入系統、修複系統、分區、重裝系統等問題都可以進入pe進行操作,是以pe是系統維護強大的武器!

   微軟原版的pe,隻有“指令行”即dos視窗。網上流傳的各種版本都是“高手們”修改出來的,甚至有的pe可以作為系統來使用,這都偏離了微軟的本意。我不主張“肆意擴充”pe的功能來彰顯“技術”,但是“可視化操作界面、常用功能的內建”這些都是必要且必須的,我會在以後的文章中逐一解說。

   通常pe啟動有兩種方式:1.加載到記憶體 2.直接在某個媒體(例如CD光牒)啟動。兩種方式各有利弊:加載到記憶體就會對記憶體大小要求高;直接在某種媒體啟動速度就會減慢。但是就如今電腦組態飛速發展的趨勢來看,記憶體大小已經不是限制因素,是以多數是以“加載到記憶體”的方式啟動。

下面簡要介紹windows pe的命名規則:

windows pe 1.x表示windows xp核心。(x表示系統版本,例如sp1)

windows pe 1.5表示windows 2003核心。(x表示系統版本,例如sp1)

windows pe 2.x表示windows vista核心。(x表示系統版本,例如sp1)

windows pe 3.x表示windows 7核心。(x表示系統版本,例如sp1)

windows pe 4.x表示windows 8核心。(x表示系統版本,例如sp1)

舉例:pe 1.3表示windows xp sp3核心的pe。

windows pe 1.x(1.5類似)引導過程(以網上常見的pe為例):

    第1步.核心啟動:CD光牒啟動後,自動尋找CD光牒wxpe目錄下的setupldr.bin,并加載它(始引導檔案,相當于nt系統的ntldr),需要同目錄下的ntdetect.com(同nt系統的同名檔案);引導檔案中訓示了winnt.sif(winnt.xpe)的位置(相當于xp系統boot.ini)。

---------------------------------------------------------------------

winnt.xpe内容如下:

[setupdata]

bootdevice = "ramdisk(0)"

bootpath = "\wxpe\system32\"

osloadoptions = "/minint /fastdetect /rdpath=minipe\winpe.im_"

以上内容表示:

1.以“ramdisk方式”加載CD光牒鏡像檔案;

2.啟動後的系統路徑為\wxpe\system32,這裡相當于我們平常的\windows\system32;

3.該配置檔案訓示了系統鏡像(is_、iso、im_或ima,也就是常說的“核心”)的位置。

----------------------------------------------------------------------

   第2步.加載外置程式:外置程式的加載依賴于pecmd.ini(有的存在于winpe.is_ 的wxpe\system32\目錄下;有的在programs檔案夾的某個目錄下...),其中形如"load \minipe\winpe.ini"的語句即為加載外置程式的配置檔案(winpe.ini)。這個檔案可以在任何可見分區(pe下可見的分區),pecmd在執行時自動搜尋所有“可見分區\minipe\下的winpe.ini”,再根據winpe.ini實作加載外部程式。(例如外置程式在pe.wim包裡面,或者直接存在某個檔案夾下,說明:以上目錄各個版本pe名稱略有不同)。

簡單了解:CD光牒引導檔案(例如pe.bif)——setupldr.bin——winnt.xpe——啟動pe1.x。

--------------------------------------------------------------------------------------

windows pe 3.x(2.x類似)引導過程(詳見waik說明檔案):

   簡明過程:CD光牒啟動後自動加載引導檔案,将控制權交給bootmgr,bootmgr讀取boot\bcd,根據bcd檔案的資訊讀取sources\boot.wim檔案,進入pe。

   詳細過程(微軟waik說明文檔):

1.加載特定媒體上的啟動扇區(mbr)。将控制傳遞給bootmgr。bootmgr從啟動配置資料(bcd)中提取基本的啟動資訊,并将控制權傳遞給boot.wim中包含的winload.exe檔案。然後winload.exe加載相應的硬體抽象層(hal),并加載系統系統資料庫配置單元和必需的啟動驅動程式。完成加載後,将會準備執行核心ntoskrnl.exe的環境。

2.執行ntoskrnl.exe,完成環境設定。将控制權傳遞給會話管理器(smss)。

3.smss加載系統資料庫的剩餘部分,配置運作win32子系統(win32k.sys)的環境及其各種程序。smss加載用于建立使用者會話的winlogon程序,然後啟動服務和剩餘的非必要裝置驅動程式及本機安全性授權(lsass)。

4.winlogon.exe根據系統資料庫值hklm\system\setup\cmdline來運作設定。如果存在%systemdrive%\sources\setup.exe,winpeshl.exe将啟動它,否則winpeshl.exe将查找在%systemroot%\system32\winpeshl.ini中指定的應用程式。如果未指定任何應用程式,則winpeshl.exe将執行cmd /k %systemroot%\system32\startnet.cmd。預設情況下,windows pe包含一個将啟動wpeinit.exe的startnet.cmd檔案。wpeinit.exe加載網絡資源,并與網絡元件(如dhcp)進行協調。

5.wpeinit.exe完成後,将顯示指令提示符視窗。此時,winpe 3.1的啟動過程完成。

簡單了解:CD光牒引導檔案(例:pe.bif)——bootmgr——bcd——boot.wim——啟動pe3.x。

繼續閱讀