查看單個文章
舊 2006-06-06, 12:42 PM   #11 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

深入Win XP之認識神秘的啟始文件NTLDR!

NTLDR一般存放於C硬碟根目錄下,是一個具有隱藏和只讀內容的系統文件。它的主要職責是解析Boot.ini文件。如果你對它的理解還不是很清楚,那麼下面我們就以Windows XP為例介紹NTLDR在系統啟始過程中的作用。

Windows XP在啟始過程中將經歷預啟始、啟始和載入內核三個階段,這與Windows 9X直接讀取啟始扇區的方式來啟動系統是完全不一樣的,NTLDR在這三個階段的啟始過程中將起到至關重要的作用。

1.預啟始階段

在預啟始階段裡電腦所做的工作有:執行POST程式,POST將檢測系統的總記憶體以及其他硬體設備的狀況,將磁碟第一個物理扇區載入到記憶體,載入硬碟主啟始記錄並執行,主啟始記錄會查找活動分區的起始位置。接著活動分區的啟始扇區被載入並執行,最後從啟始扇區載入並初始化NTLDR文件。

2.啟始階段

在啟始階段中,Windows XP將會依次經歷初始啟始載入器階段、操作系統選擇階段、硬體檢測階段以及配置選擇階段這四個小的階段。

(1)在初始啟始載入器階段中,NTLDR將把電腦的微處理器從實模式轉換為32位平面記憶體模式,在實模式中,系統會為MS-DOS預留640KB大小的記憶體空間,其餘的記憶體都被看做是擴展記憶體,在32位平面模式中系統將所有記憶體都視為可用記憶體,然後NTLDR執行適當的小型文件系統驅動程式,這時NTLDR可以識別每一個用NTFS或FAT格式的文件系統分區,至此初始啟始載入器階段結束。

(2)當初始啟始載入器階段結束後將會進入操作系統選擇階段,如果電腦上安裝了多個操作系統,由於NTLDR載入了正確的Boot.ini文件,那麼在啟動的時候將會出現要求選擇操作系統的表菜單,NTLDR正是從boot.ini文件中查找到系統文件的分區位置。如果選擇了NT系統,那麼NTLDR將會執行NTDETECT.COM文件,否則NTLDR將載入BOOTSECT.DOS,然後將控制權交給BOOTSECT.DOS。如果Boot.ini文件中只有一個操作系統或者其中的timeout值為0,那麼將不會出現選擇操作系統的表菜單畫面,如果Boot.ini文件非法或不存在,那麼NTLDR將會嘗試從預定系統卷啟動系統。

小提示:NTLDR啟動後,如果在系統根目錄下發現有Hiberfil.sys文件且該文件有效,那麼NTLDR將讀取Hiberfil.sys文件裡的訊息並讓系統恢復到休眠以前的狀態,這時並不處理Boot.ini文件。

(3)當操作系統選擇階段結束後將會進入硬體檢測階段,這時NTDETECT.COM文件將會收集電腦中硬體訊息列表,然後將列表返回到NTLDR,這樣NTLDR將把這些硬體訊息載入到註冊表「HKEY_LOCAL_MACHINE」中的Hardware中。

(4)硬體檢測階段結束後將會進入配置選擇階段,如果有多個硬體配置列表,那麼將會出現配置文件選擇表菜單,如果只有一個則不會顯示。

3.載入內核階段

在載入內核階段中,NTLDR將載入NTOKRNL.EXE內核程式,然後NTLDR將載入硬體抽像層(HAL.dll),接著系統將載入註冊表中的「HKEY_MACHINESystem」鍵值,這時NTLDR將讀取「HKEY_MACHINESystemselect」鍵值來決定哪一個ControlSet將被載入。所載入的ControlSet將包含設備的驅動程式以及需要載入的服務。再接著NTLDR載入註冊表「HKEY_LOCAL_MACHINESystemservice」下的start鍵值為0的底層設備驅動。當ControlSet的鏡像CurrentControlSet被載入時,NTLDR將把控制權傳遞給NTOSKRNL.EXE,至此啟始過程將結束。

小提示:如果在啟動的時候按F8鍵,那麼我們將會在啟動表菜單中看到多種選擇啟動模式,這時NTLDR將根據用戶的選擇來使用啟動參數載入NT內核,用戶也可以在Boot.ini文件裡設置啟動參數。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次