原文轉(zhuǎn)自
Windows PE的全名是WindowsPreinstallationEnvironment(WinPE)直接從字面上翻譯就
是“Windows預(yù)安裝環(huán)境”。微軟的本意是:WinPE僅用做系統(tǒng)維護(hù),并設(shè)置了各種限制??梢院?jiǎn)單的理解為:PE是Windows系統(tǒng)的超級(jí)精簡(jiǎn)版、超級(jí)權(quán)限版(以系統(tǒng)system賬戶登錄)!對(duì)于無(wú)法進(jìn)入系統(tǒng)、修復(fù)系統(tǒng)、分區(qū)、重裝系統(tǒng)等問(wèn)題都可以進(jìn)入PE進(jìn)行操作,因此PE是系統(tǒng)維護(hù)強(qiáng)大的武器!
微軟原版的PE,只有“命令行”即DOS窗口。網(wǎng)上流傳的各種版本都是“高手們”修改出來(lái)的,甚至有的PE可以作為系統(tǒng)來(lái)使用,這都偏離了微軟的本意。我不主張“肆意擴(kuò)展”PE的功能來(lái)彰顯“技術(shù)”,但是“可視化操作界面、常用功能的集成”這些都是必要且必須的,我會(huì)在以后的文章中逐一解說(shuō)。
通常PE啟動(dòng)有兩種方式:1.加載到內(nèi)存 2.直接在某個(gè)介質(zhì)(例如光盤)啟動(dòng)。兩種方式各有利弊:加載到內(nèi)存就會(huì)對(duì)內(nèi)存大小要求高;直接在某種介質(zhì)啟動(dòng)速度就會(huì)減慢。但是就如今電腦配置飛速發(fā)展的趨勢(shì)來(lái)看,內(nèi)存大小已經(jīng)不是限制因素,因此多數(shù)是以“加載到內(nèi)存”的方式啟動(dòng)。
下面簡(jiǎn)要介紹Windows PE的命名規(guī)則:
Windows PE 1.x表示W(wǎng)indows XP內(nèi)核。(x表示系統(tǒng)版本,例如SP1)
Windows PE 1.5表示W(wǎng)indows 2003內(nèi)核。(x表示系統(tǒng)版本,例如SP1)
Windows PE 2.x表示W(wǎng)indows Vista內(nèi)核。(x表示系統(tǒng)版本,例如SP1)
Windows PE 3.x表示W(wǎng)indows 7內(nèi)核。(x表示系統(tǒng)版本,例如SP1)
Windows PE 4.x表示W(wǎng)indows 8內(nèi)核。(x表示系統(tǒng)版本,例如SP1)
舉例:PE 1.3表示W(wǎng)indows XP SP3內(nèi)核的PE。
Windows PE 1.x(1.5類似)引導(dǎo)過(guò)程(以網(wǎng)上常見(jiàn)的PE為例):
第1步.內(nèi)核啟動(dòng):光盤啟動(dòng)后,自動(dòng)尋找光盤WXPE目錄下的SETUPLDR.BIN,并加載它(始引導(dǎo)文件,相當(dāng)于NT系統(tǒng)的NTLDR),需要同目錄下的NTDETECT.COM(同NT系統(tǒng)的同名文件);引導(dǎo)文件中指示了WINNT.SIF(WINNT.XPE)的位置(相當(dāng)于XP系統(tǒng)BOOT.INI)。
WINNT.XPE內(nèi)容如下:
[SetupData]
BootDevice = "ramdisk(0)"
BootPath = "\WXPE\System32"
OsLoadOptions = "/minint /fastdetect /rdpath=MiniPE\winpe.IM_"
以上內(nèi)容表示:
1.以“ramdisk方式”加載光盤鏡像文件;
2.啟動(dòng)后的系統(tǒng)路徑為\WXPE\System32,這里相當(dāng)于我們平常的\Windows\System32;
3.該配置文件指示了系統(tǒng)鏡像(IS_、ISO、IM_或IMA,也就是常說(shuō)的“內(nèi)核”)的位置。
第2步.加載外置程序:外置程序的加載依賴于PECMD.INI(有的存在于WINPE.IS_ 的WXPE\SYSTEM32\目錄下;有的在Programs文件夾的某個(gè)目錄下...),其中形如"LOAD \MiniPE\WinPE.INI"的語(yǔ)句即為加載外置程序的配置文件(WinPE.INI)。這個(gè)文件可以在任何可見(jiàn)分區(qū)(PE下可見(jiàn)的分區(qū)),PECMD在執(zhí)行時(shí)自動(dòng)搜索所有“可見(jiàn)分區(qū)\MiniPE\下的WinPE.INI”,再根據(jù)WinPE.INI實(shí)現(xiàn)加載外部程序。(例如外置程序在PE.WIM包里面,或者直接存在某個(gè)文件夾下,說(shuō)明:以上目錄各個(gè)版本PE名稱略有不同)。
簡(jiǎn)單理解:光盤引導(dǎo)文件(例如pe.bif)——SETUPLDR.BIN——WINNT.XPE——啟動(dòng)PE1.x。
Windows PE 3.x(2.x類似)引導(dǎo)過(guò)程(詳見(jiàn)Waik說(shuō)明文件):
簡(jiǎn)明過(guò)程:光盤啟動(dòng)后自動(dòng)加載引導(dǎo)文件,將控制權(quán)交給Bootmgr,Bootmgr讀取Boot\BCD,根據(jù)BCD文件的信息讀取Sources\Boot.wim文件,進(jìn)入PE。
詳細(xì)過(guò)程(微軟Waik說(shuō)明文檔):
1.加載特定媒體上的啟動(dòng)扇區(qū)(MBR)。將控制傳遞給Bootmgr。Bootmgr從啟動(dòng)配置數(shù)據(jù)(BCD)中提取基本的啟動(dòng)信息,并將控制權(quán)傳遞給Boot.wim中包含的Winload.exe文件。然后Winload.exe加載相應(yīng)的硬件抽象層(HAL),并加載系統(tǒng)注冊(cè)表配置單元和必需的啟動(dòng)驅(qū)動(dòng)程序。完成加載后,將會(huì)準(zhǔn)備執(zhí)行內(nèi)核Ntoskrnl.exe的環(huán)境。
2.執(zhí)行Ntoskrnl.exe,完成環(huán)境設(shè)置。將控制權(quán)傳遞給會(huì)話管理器(SMSS)。
3.SMSS加載注冊(cè)表的剩余部分,配置運(yùn)行Win32子系統(tǒng)(Win32k.sys)的環(huán)境及其各種進(jìn)程。SMSS加載用于創(chuàng)建用戶會(huì)話的Winlogon進(jìn)程,然后啟動(dòng)服務(wù)和剩余的非必要設(shè)備驅(qū)動(dòng)程序及安全子系統(tǒng)(LSASS)。
4.Winlogon.exe根據(jù)注冊(cè)表值HKLM\SYSTEM\Setup\CmdLine來(lái)運(yùn)行設(shè)置。如果存在%SYSTEMDRIVE%\sources\setup.exe,Winpeshl.exe將啟動(dòng)它,否則Winpeshl.exe將查找在%SYSTEMROOT%\system32\winpeshl.ini中指定的應(yīng)用程序。如果未指定任何應(yīng)用程序,則Winpeshl.exe將執(zhí)行cmd /k %SYSTEMROOT%\system32\startnet.cmd。默認(rèn)情況下,Windows PE包含一個(gè)將啟動(dòng)Wpeinit.exe的Startnet.cmd文件。Wpeinit.exe加載網(wǎng)絡(luò)資源,并與網(wǎng)絡(luò)組件(如DHCP)進(jìn)行協(xié)調(diào)。
5.Wpeinit.exe完成后,將顯示命令提示符窗口。此時(shí),WinPE 3.1的啟動(dòng)過(guò)程完成。
簡(jiǎn)單理解:光盤引導(dǎo)文件(例:pe.bif)——bootmgr——BCD——boot.wim——啟動(dòng)PE3.x。