系統文件:WinNT.XPE(WinPE.XPE)和WinPE.IS_(或WinPE.IM_),有些WinPE沒(méi)有內置中文支持,所以還要WNPEFONT.BIN來(lái)支持中文。
以上是老毛桃WinPE啟動(dòng)原理,但一般WinXP盤(pán)中帶的WinPE沒(méi)有OP.WIM文件,原因在于它已經(jīng)把OP.WIM中程序解壓出來(lái)了(更應該說(shuō)是老毛桃把外置程序壓縮到了OP.WIM中)。
從網(wǎng)上下載一個(gè)WinXP操作系統(如電腦公司,番茄花園,雨林木風(fēng))或WinPE系統(如老毛桃WinPE,深山紅葉WinPE)后解壓到移動(dòng)硬盤(pán)(如H:)根目錄下,在H盤(pán)中找到NTDETECT.COM和SETUPLDR.BIN兩個(gè)文件(這兩個(gè)文件一般在A(yíng)XPE文件中)后復制到H盤(pán)根目錄下并將SETUPLDR.COM重命名為NTLDR(無(wú)后綴名),再將H盤(pán)設置為活動(dòng)分區,然后重啟電腦從硬盤(pán)啟動(dòng)就會(huì )進(jìn)入WinPE,
Avldr, Peldr, WinPE.XPE, WNPEFONT.BIN, AXPE目錄(有WINPE.IM_,SETUPLDR.BIN,NTDETECT.COM)
Windows NT5啟動(dòng)管理器: 將以上文件復制到系統盤(pán)(假如是C:)根目錄下,在boot.ini添加C:\AVLDR=“你喜歡的名字”即可。我們可以這樣理解:AVLDR-->pelder-->SETUPLDR.BIN-->NTDETECT.COM-->WinPE.XPE-->WINPE.IM_
Windows NT6管理器:同樣將以上文件復制到系統根目錄下,然后用easyBCD或bcdedit命令添加引導文件即可。引導文件是AVLDR還是peldrq我還試過(guò)。但我個(gè)人認為是peldr,我認為peldr就是GRUB4DOS中g(shù)rldr的重命名,而WinPE.XPX就相當于menu.lst.
Grub4dos菜單:這就簡(jiǎn)單了,同樣要將以上文件復制到根目錄下,avldr可不要了,在grub中添加chainloader (hdx,y)/peldr就可以。
電源開(kāi)啟自檢過(guò)程BIOS--> 初始化啟動(dòng)過(guò)程MBR-->引導程序載入過(guò)程NTLDR (boot.ini或hiberfil.sys或Bootsect.dos)-->檢測和配置硬件過(guò)程NTDETECT.COM-->內核加載過(guò)程NTOKRNL.EXE-->用戶(hù)登錄過(guò)程-->即插即用設備的檢測過(guò)程
虛擬內存文件(大小經(jīng)常自己發(fā)生變動(dòng),小的時(shí)候可能只有幾十兆,大的時(shí)候則有數百兆),也叫頁(yè)面文件,跟你的休眠有關(guān)系,是在你物理內存不足的時(shí)候調用的(當運行一個(gè)程序需要大量數據、占用大量?jì)却鏁r(shí),內存就會(huì )被“塞滿(mǎn)”,并將那些暫時(shí)不用的數據放到硬盤(pán)中,而這些數據所占的空間就是虛擬內存),是系統文件,所以不能刪除(在別的操作系統下刪除,但是你下次登陸,他又自動(dòng)生成),但是可以禁用和修改: 我的電腦>>屬性>>高級>>性能>>設置>>性能選項>>高級>>更改。我強烈的建議你不要禁用,否則后果很?chē)乐?/div>
2.boot.ini
3.bootfont.bin
4.AUTOEXEC.BAT
5.CONFIG.SYS
專(zhuān)業(yè)的系統啟動(dòng)配置文件,它主要用于加載內存管理程序、設置擴充內存及擴展內存、加載有關(guān)硬件驅動(dòng)程序,設置有關(guān)環(huán)境變量等,為用戶(hù)計算機的正常使用創(chuàng )造必要的用戶(hù)環(huán)境(在DOS時(shí)代,精通Config.SYS文件往往是“專(zhuān)家”的標志)。
(在Windows 95/98中,系統已經(jīng)自帶了內存管理、環(huán)境變量等設置功能,Config.sys文件的作用已經(jīng)遠遠沒(méi)有那么重要了,它仍在“服役”的原因主要是為了保持對老版本DOS應用程序的兼容)
6.DOS內核三文件
MSDOS.SYS: 管理和啟動(dòng)系統的各個(gè)部件,為DOS的引導作好準備工作
IO.SYS: 負責系統的基本輸入和輸出,即DOS與各部件之間的聯(lián)系
COMMAND.COM: DOS與用戶(hù)的接口,它主要提供了一些DOS的內部命令,并能接受、判別并執行用戶(hù)輸入的命令
具有這三個(gè)文件的磁盤(pán)就是引導盤(pán)。而除此之外還包含許多DOS外部命令的磁盤(pán)則稱(chēng)為系統盤(pán)。
7.Windows內核兩文件
NTLDR: A: 將處理器的實(shí)模式改為32位平面內存模式
B: 運行適當的小文件系統驅動(dòng)程序
C: 讀boot.ini文件或hiberfil.sys文件
D: 裝載所選操作系統
NTDETECT.COM: 搜索計算機硬件并將硬件信息列表傳送給NTLDR
系統的引導過(guò)程:
預引導階段:
1、電源自檢程序開(kāi)始運行::::檢測系統的總內存以及其他硬件設備的狀況
2、磁盤(pán)主引導記錄被裝入內存,并且程序開(kāi)始執行
3、通過(guò)主引導記錄查找到活動(dòng)分區,活動(dòng)分區的引導扇區被裝入內存
4、NTLDR從引導扇區被裝入并初始化
引導階段-初始引導加載器階段:
5、NTLDR將處理器的實(shí)模式改為32位平面內存模式
6、NTLDR開(kāi)始運行適當的小文件系統驅動(dòng)程序,小文件系統驅動(dòng)程序是建立在NTLDR 內部的,這使NTLDR能讀FAT或NTFS文件系統分區。
引導階段-操作系統選擇階段:
7、NTLDR讀boot.ini文件(如果在系統根目錄下發(fā)現有Hiberfil.sys文件且該文件有 效,那么NTLDR將讀取Hiberfil.sys文件里的信息并讓系統恢復到休眠以前的狀態(tài), 這時(shí)并不處理boot.ini文件)
8、NTLDR裝載所選操作系統
* 如果NT/XP被選擇,,NTLDR運行Ntdetect.com
* 對于其他的操作系統,NTLDR裝載并運行Bootsect.dos然后向它傳遞控制。
windows NT過(guò)程結束。
引導階段-硬件檢測(和配置選擇)階段
9、NTDETECT.COM 搜索計算機硬件(如果有多個(gè)硬件配置列表,那么將會(huì )出現配置文件選擇菜單,如果只有一個(gè)則不會(huì )顯示)并將硬件信息列表傳送給NTLDR,NTLDR將這些硬件信息信息寫(xiě)進(jìn)注冊表“HKEY_LOCAL_MACHINE”中的Hardware中
加載內核階段
10、.然后NTLDR裝載NTOKRNL.EXE內核程序,硬件抽象層HAL.DLL和系統信息集 合。
11、NTLDR搜索系統信息集合,并裝載設備驅動(dòng)配置以便設備在啟動(dòng)時(shí)開(kāi)始工作
12、NTLDR把控制權交給NTOKRNL.EXE,這時(shí),啟動(dòng)程序結束,裝載階段開(kāi)始
8.故障解決
如果你已經(jīng)安裝了一個(gè)新版本的操作系統,但是后面又安裝了一個(gè)舊版本的操作系統,當舊版本操作系統安裝完畢以后可能會(huì )發(fā)現無(wú)法進(jìn)入原先的新版本的操作系統。如果碰到類(lèi)似問(wèn)題,那么問(wèn)題一定出現在NTLDR 和NTDETECT.COM 版本上面。由于舊版本的NTLDR 和NTDETECT.COM 不能夠識別新版本操作系統的NTOSKRNL.EXE,造成系統不能夠啟動(dòng)(一般顯示黑屏)。解決方法很簡(jiǎn)單,只需要使用新版本的NTLDR 和NTDETECT.COM 替換舊版本的就可以了。
9.啟動(dòng)過(guò)程詳解
NTLDR一般存放于C盤(pán)根目錄下,是一個(gè)具有隱藏和只讀屬性的系統文件。它的主要職責是解析Boot.ini文件。如果你對它的理解還不是很清楚,那么下面我們就以Windows XP為例介紹NTLDR在系統引導過(guò)程中的作用。 Windows XP在引導過(guò)程中將經(jīng)歷預引導、引導和加載內核三個(gè)階段,這與Windows 9X直接讀取引導扇區的方式來(lái)啟動(dòng)系統是完全不一樣的,NTLDR在這三個(gè)階段的引導過(guò)程中將起到至關(guān)重要的作用。
1.預引導階段
在預引導階段里計算機所做的工作有:運行POST程序,POST將檢測系統的總內存以及其他硬件設備的狀況,將磁盤(pán)第一個(gè)物理扇區加載到內存,加載硬盤(pán)主引導記錄并運行,主引導記錄會(huì )查找活動(dòng)分區的起始位置。接著(zhù)活動(dòng)分區的引導扇區被加載并執行,最后從引導扇區加載并初始化NTLDR文件。
2.引導階段
在引導階段中,Windows XP將會(huì )依次經(jīng)歷初始引導加載器階段、操作系統選擇階段、硬件檢測階段以及配置選擇階段這四個(gè)小的階段。
(1)在初始引導加載器階段中,NTLDR將把計算機的微處理器從實(shí)模式轉換為32位平面內存模式,在實(shí)模式中,系統會(huì )為MS-DOS預留640KB大小的內存空間,其余的內存都被看做是擴展內存,在32位平面模式中系統將所有內存都視為可用內存,然后NTLDR執行適當的小型文件系統驅動(dòng)程序,這時(shí)NTLDR可以識別每一個(gè)用NTFS或FAT格式的文件系統分區,至此初始引導加載器階段結束。
(2)當初始引導加載器階段結束后將會(huì )進(jìn)入操作系統選擇階段,如果計算機上安裝了多個(gè)操作系統,由于NTLDR加載了正確的Boot.ini文件,那么在啟動(dòng)的時(shí)候將會(huì )出現要求選擇操作系統的菜單,NTLDR正是從boot.ini文件中查找到系統文件的分區位置。如果選擇了NT系統,那么NTLDR將會(huì )運行NTDETECT.COM文件,否則NTLDR將加載BOOTSECT.DOS,然后將控制權交給BOOTSECT.DOS。如果Boot.ini文件中只有一個(gè)操作系統或者其中的timeout值為0,那么將不會(huì )出現選擇操作系統的菜單畫(huà)面,如果Boot.ini文件非法或不存在,那么NTLDR將會(huì )嘗試從默認系統卷啟動(dòng)系統。
小提示:NTLDR啟動(dòng)后,如果在系統根目錄下發(fā)現有Hiberfil.sys文件且該文件有效,那么NTLDR將讀取Hiberfil.sys文件里的信息并讓系統恢復到休眠以前的狀態(tài),這時(shí)并不處理Boot.ini文件。
(3)當操作系統選擇階段結束后將會(huì )進(jìn)入硬件檢測階段,這時(shí)NTDETECT.COM文件將會(huì )收集計算機中硬件信息列表,然后將列表返回到NTLDR,這樣NTLDR將把這些硬件信息加載到注冊表“HKEY_LOCAL_MACHINE”中的Hardware中。
(4)硬件檢測階段結束后將會(huì )進(jìn)入配置選擇階段,如果有多個(gè)硬件配置列表,那么將會(huì )出現配置文件選擇菜單,如果只有一個(gè)則不會(huì )顯示。
3.加載內核階段
在加載內核階段中,NTLDR將加載NTOKRNL.EXE內核程序,然后NTLDR將加載硬件抽象層(HAL.dll),接著(zhù)系統將加載注冊表中的“HKEY_MACHINESystem”鍵值,這時(shí)NTLDR將讀取“HKEY_MACHINESystemselect”鍵值來(lái)決定哪一個(gè)ControlSet將被加載。所加載的ControlSet將包含設備的驅動(dòng)程序以及需要加載的服務(wù)。再接著(zhù)NTLDR加載注冊表“HKEY_LOCAL_MACHINESystemservice”下的start鍵值為0的底層設備驅動(dòng)。當ControlSet的鏡像CurrentControlSet被加載時(shí),NTLDR將把控制權傳遞給NTOSKRNL.EXE,至此引導過(guò)程將結束。
小提示:如果在啟動(dòng)的時(shí)候按F8鍵,那么我們將會(huì )在啟動(dòng)菜單中看到多種選擇啟動(dòng)模式,這時(shí)NTLDR將根據用戶(hù)的選擇來(lái)使用啟動(dòng)參數加載NT內核,用戶(hù)也可以在Boot.ini文件里設置啟動(dòng)參數。
三.WinVista+Win2008+Win7啟動(dòng)原理
一般順序為:BIOS-->MBR--> Bootmgr -->BCD-->Winload.exe-->內核加載。
Windows 7操作系統啟動(dòng)過(guò)程詳解,一般順序為:BIOS-->MBR--> Bootmgr -->BCD-->Winload.exe-->內核加載。
1) 開(kāi)機后,BIOS進(jìn)行開(kāi)機自檢(POST),然后選擇從硬盤(pán)進(jìn)行啟動(dòng),加載硬盤(pán)的MBR并把控制權交給MBR(MBR是硬盤(pán)的第一個(gè)扇區,它不在任何一個(gè)分區內);
2) MBR會(huì )搜索64B大小的分區表,找到4個(gè)主分區(可能沒(méi)有4個(gè))的活動(dòng)分區并確認其他主分區都不是活動(dòng)的,然后加載活動(dòng)分區的第一個(gè)扇區(Bootmgr)到內存;
3) Bootmgr尋找并讀取BCD,如果有多個(gè)啟動(dòng)選項,會(huì )將這些啟動(dòng)選項反映在屏幕上,由用戶(hù)選擇從哪個(gè)啟動(dòng)項啟動(dòng)。
4) 選擇從Windows 7啟動(dòng)后,會(huì )加載C:\windows\system32\winload.exe,并開(kāi)始內核的加載過(guò)程,內核加載過(guò)程比較長(cháng),比較復雜,這里就不一一講了。
在這個(gè)過(guò)程中,bootmgr和BCD存放在Windows 7的保留分區里,而從Winload.exe開(kāi)始,就開(kāi)始進(jìn)入到C盤(pán)執行內核的加載過(guò)程了。
WinXP+Win7+Win2008多啟動(dòng)過(guò)程。
先看各版本windows操作系統的系統文件:
Windows共有: autoexec.bat MS-DOS批處理文件
config.sys 系統啟動(dòng)配置文件(可無(wú),為保持對老版本DOS應用程序的兼容而存在)
pagefile.sys 虛擬內存文件
WinXP獨有: boot.ini
bootfont.bin
io.sys
msdos.sys
ntdetect.com
ntldr
Win7獨有: hibefil.sys 存儲系統休眠前的信息
bootmgr 啟動(dòng)管理即BootManager
boot目錄
//ghldr
Win2008獨有: hibefil.sys 存儲系統休眠前的信息
bootmgr 啟動(dòng)管理即BootManager
boot目錄
//ghldr
一.先安裝WinXP到C盤(pán),然后在XP下安裝Win7到D盤(pán),最后在XP下安裝Win2008到E盤(pán),安裝結束后,操作如下:
1.C盤(pán)下除autoexec.bat config.sys pagefile.sys boot.ini bootfont.ini io.sys msdos.sys ntdetect.com ntldr 和 bootmgr boot目錄 以外的文件夾都可以刪除。
D 盤(pán)下除autoexec.bat config.sys pagefile.sys hibefil.sys 都可以刪除。
E 盤(pán)下除autoexec.bat config.sys pagefile.sys hibefil.sys 都可以刪除。
2.備份bootmgr boot目錄 。
3.重裝WinXP到C盤(pán),將bootmgr boot目錄 復制到C盤(pán)根目錄下,重啟后如果沒(méi)有MBR菜單,則在WinXP下用EsayBCD軟件的Manage Bootloader功能可以恢復。操作過(guò)程:?jiǎn)?dòng)EasyBCD--﹥單擊Manage Bootloader--﹥單擊Reinstall the Vista Bootloader--﹥Write MBR--﹥關(guān)閉窗口--﹥重啟電腦。
二.先安裝WinXP到C盤(pán),再XP下安裝Win7到D盤(pán),安裝結束后,操作如下:
1.C盤(pán)下除autoexec.bat config.sys pagefile.sys boot.ini bootfont.ini io.sys msdos.sys ntdetect.com ntldr 和 bootmgr boot目錄 以外的文件夾都可以刪除。
D 盤(pán)下除autoexec.bat config.sys pagefile.sys hibefil.sys 都可以刪除。
2.備份bootmgr boot目錄 。
3.重裝WinXP到C盤(pán),將bootmgr boot目錄 復制到C盤(pán)根目錄下,重啟后如果沒(méi)有MBR菜單,則在WinXP下用EsayBCD軟件的Manage Bootloader功能可以恢復。操作過(guò)程:?jiǎn)?dòng)EasyBCD--﹥單擊Manage Bootloader--﹥單擊Reinstall the Vista Bootloader--﹥Write MBR--﹥關(guān)閉窗口--﹥重啟電腦。
三.先安裝WinXP到C盤(pán),再XP下安裝Win2008到E盤(pán),安裝結束后,操作如下:
1.C盤(pán)下除autoexec.bat config.sys pagefile.sys boot.ini bootfont.ini io.sys msdos.sys ntdetect.com ntldr 和 bootmgr boot目錄 以外的文件夾都可以刪除。
E 盤(pán)下除autoexec.bat config.sys pagefile.sys hibefil.sys 都可以刪除。
2.備份bootmgr boot目錄 。
3.重裝WinXP到C盤(pán),將bootmgr boot目錄 復制到C盤(pán)根目錄下,重啟后如果沒(méi)有MBR菜單,則在WinXP下用EsayBCD軟件的Manage Bootloader功能可以恢復。操作過(guò)程:?jiǎn)?dòng)EasyBCD--﹥單擊Manage Bootloader--﹥單擊Reinstall the Vista Bootloader--﹥Write MBR--﹥關(guān)閉窗口--﹥重啟電腦。
Windows7
MBR建議采用結構
早期版本的 Windows
Windows Server 2008
Ntldr~Boot.ini
WindowXP
WinServer2003
Grub引導,非Grub引導
Bootmgr~BCD
Grub引導,非Grub引導
WinNT5系列
假設1:按 一. 順序裝了多個(gè)系統,而把 二.2 的兩個(gè)備份文件復制到C盤(pán)根目錄下,在XP用EsayBCD軟件的Manage Bootloader功能操作后,在MBR只有WinXP和Win7這兩個(gè)操作系統,現在我們要把Win2008加到MBR中,操作如下:?jiǎn)?dòng)EasyBCD--﹥單擊ADD/Remove Entries--﹥選擇Windows選項卡--﹥選擇Type為Windows Visat/Longhorn--﹥Name為Windows Sever 2008 或 其它自己喜歡的名字--﹥Driver為E:--﹥單擊Add Entry--﹥重啟電腦。MBR有了Win2008.
假設2:按 一. 順序裝了多個(gè)系統,而把 三.2 的兩個(gè)備份文件復制到C盤(pán)根目錄下,在XP用EsayBCD軟件的Manage Bootloader功能操作后,在MBR只有WinXP和Win2008這兩個(gè)操作系統,現在我們要把Win7加到MBR中,操作如下:?jiǎn)?dòng)EasyBCD--﹥單擊ADD/Remove Entries--﹥選擇Windows選項卡--﹥選擇Type為Windows Visat/Longhorn--﹥Name為Windows7 或 其它自己喜歡的名字--﹥Driver為D:--﹥單擊Add Entry--﹥重啟電腦。MBR沒(méi)有了Win7.
通過(guò)以個(gè)兩個(gè)假設說(shuō)明了什么,我也不清楚,但我們可以明白多操作系統的一些操作了。我個(gè)人認為是激活WIN7后在C盤(pán)上產(chǎn)生的grldr造成的,不深究,等正式版發(fā)布后再探討。
對于 一鍵Ghost WinPE 超級急救盤(pán) 矮人DOS工具箱 等工具可以放到Boot.ini中啟動(dòng),最好不要在MBR中與”Windows7” “ Windows Server 2008” “Windows Vista” 和 “早期版Windows”并列,也就是說(shuō)你安裝了Windows NT6 至NT7的版本之后MBR 中只能有NT6至NT7的windows 版本,“早期版本的 Windows”選項控制NT5版本(Windows 2000/XP/Server 2003),我們只有選擇了“早期版本的 Windows”選項,由 BOOTMGR 將啟動(dòng)控制權移交給 NTLDR 并自動(dòng)切換為 NTLDR 菜單,這時(shí)才可以繼續選擇需要啟動(dòng) Windows XP 還是 Windows Server 2003。換言之,NTLDR 啟動(dòng)菜單就像是 BOOTMGR 啟動(dòng)菜單的子菜單一樣
發(fā)表于