Board logo

标题: 深入XP之認識神秘的引導檔NTLDR[非註冊會員勿進] [打印本页]

作者: Dark-Destroy     时间: 2006-1-26 22:12    标题: 深入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檔裡設置啟動參數。
作者: Quam     时间: 2006-1-26 22:27
非常及时的一篇贴子,花
作者: ddctczy     时间: 2006-1-26 22:55
高手就是高手!!!!!


佩服!!佩服!!
作者: Scott0902     时间: 2006-1-26 23:22
好贴子!建议加精
作者: wglwx     时间: 2006-1-27 14:39
好贴子!
谢谢!
作者: bach     时间: 2006-1-31 10:47
真详细,收藏了!
作者: 888888     时间: 2006-2-25 20:10
佩服!!佩服!!佩服!!佩服!!佩服!!佩服!!
作者: qinccckencn     时间: 2006-2-27 22:58
好貼,請斑竹加精
作者: cnconfig     时间: 2006-2-28 22:03    标题: 好专业啊!


作者: 本是     时间: 2006-2-28 23:23
好! 来源是什么?
作者: lpclimber     时间: 2006-3-5 21:25
学习一下,谢谢分享,不过NTlDR功能有限
作者: fs999     时间: 2006-3-8 21:21
哦哦哦?不明白说什么
作者: 雨露     时间: 2006-3-10 10:02
繁体字!看着吃力!可不可以发个简体版的?????/
作者: cdy168     时间: 2006-3-11 04:09
高手啊!!!
作者: fujianabc     时间: 2006-3-18 12:57
顶楼的太过简单了,给大家看一篇更详细的:

http://sysoft.zdwx.com/forum/viewthread.php?tid=309&fpage=1

还有一篇最详尽的boot.ini参数介绍,其中包括很多其他地方看不到的参数的解释:
http://rinrin.home4u.china.com/docs/BootINI_Options.txt

[ Last edited by fujianabc on 2006-3-18 at 12:58 ]
作者: xjhlhb     时间: 2006-4-1 17:56
高手多解说些关于系统的基本知识,WINDOWS虽然让更多人使用电脑,也罢大家和机器隔开了,所以有必要多了解系统是如何运作的!!!!!
请高手多多介绍!!
作者: solun     时间: 2006-4-6 14:19
好像是转贴。
作者: weilong888     时间: 2006-4-6 18:26
非常不错。
作者: polter     时间: 2006-4-9 10:16
不错。
但,预引导阶段好像是BIOS的事情吧。不管是什么系统,这一步都是相同的。
POST是Power On Self Test的缩写,不仅仅是程式。
加电自检实际上是固化在BIOS中的一段代码,学过汇编的应该都比较清楚。
作者: liwei123     时间: 2006-4-23 04:30
学习一下,谢谢分享
作者: chineselgs     时间: 2006-5-6 21:53    标题: 支持,不过该灌水时还得灌~~~


作者: ankiller     时间: 2006-5-8 12:13
哇塞,长见识了!
作者: nicklau     时间: 2006-5-11 09:29
厉害,高手又发贴了,呵呵
作者: willsion     时间: 2006-5-25 10:39
学习一下
作者: superfan     时间: 2006-6-19 15:54
学习………………
作者: htysm     时间: 2006-6-29 10:26
简体不用用繁体,我只能说是马马虎虎.
作者: ngh98918     时间: 2006-7-4 17:20
学习了,现在又学到了好东西
作者: 327933380     时间: 2006-7-7 12:43
高手就是高手!!!!!


佩服!!佩服!!
作者: phoenixcw     时间: 2006-7-18 17:21
这个帖子是转自台湾那边的论坛吧?
作者: meiguobu     时间: 2006-7-22 16:59
能不能说的容易懂一些呀
作者: chishingchancn     时间: 2006-8-3 20:42
第一次浏览要花钱,不过我的印象中在某某读过此内容之类。
作者: student00     时间: 2006-10-20 23:20
非常及时的一篇贴子
作者: tyc168518     时间: 2006-10-22 11:28
看的太累,要是是简体字就好啦
作者: sweetdreamlan     时间: 2006-10-22 12:17
不错
作者: htys     时间: 2006-10-27 06:15
有点看8懂!~~有简体的吗??
作者: Michael     时间: 2006-10-27 06:33
楼上,有word吗?
作者: yahoo123456     时间: 2006-10-27 21:07
说的太笼统了 有没有详细点的??
作者: linyusen     时间: 2006-10-28 06:22
谢谢LZ分享.好东西顶起
作者: 32225cr     时间: 2006-11-8 03:57
不错  受教了
作者: x412637729     时间: 2006-11-12 09:22
高手就是高手!!!!!


佩服!!佩服!!
作者: xuantian     时间: 2006-11-15 09:18
晕,这也要积分?
作者: dracular1983     时间: 2006-11-15 22:35
谢谢分享,对我帮助很大
作者: system     时间: 2006-11-19 07:22
恩受益了,不说还真不知道
作者: zh753200     时间: 2006-11-20 07:25
好贴子!谢谢楼主
作者: hxd2054123     时间: 2006-11-21 08:32
学习一下,谢谢分享
作者: dxmg     时间: 2006-12-9 00:15
不错的帖子。
作者: dxmg     时间: 2006-12-9 00:19
请楼主解释一下,为什么先装WINXP后装WIN98,WINXP就不能引导啦。
作者: kill123456     时间: 2006-12-13 05:09
有简体的吗,谁发一个
作者: duckjing688     时间: 2006-12-13 12:20
原来如此,以前都不知道。只知道那个文件丢失进不去系统
作者: freeapple     时间: 2006-12-15 15:52
学习一下,谢谢分享,
作者: gne3     时间: 2007-2-25 03:26
收藏了,谢谢
作者: wmjm     时间: 2007-3-6 14:57
增长了不少知识,谢谢。
作者: lan751     时间: 2007-4-10 01:07    标题: 绝了

绝了:lol:
作者: jayeeliu     时间: 2007-4-11 09:52
一定要收藏

很有用
作者: ycjlhy     时间: 2007-4-16 06:53
唉,看繁体好累啊,但要顶啊
作者: defrag     时间: 2007-5-4 19:03
NTLDR对于写操作系统已经足够了.
作者: panda     时间: 2007-5-17 20:56    标题: 学习

长了知识,谢谢!
作者: lisus     时间: 2007-5-22 00:55
高手...

    这好极了,,,
作者: wfccsqk     时间: 2007-6-8 18:47
受教了 谢谢先
作者: yangtou     时间: 2007-6-9 07:22
这么多人给版主pmp
作者: wuCstar     时间: 2007-6-11 22:56
最好有BOOT文件和MSDOS的文件介绍就好拉
作者: enjoyer     时间: 2007-6-14 23:07
http://sysoft.zdwx.com/forum/viewthread.php?tid=309&fpage=1
楼上的朋友,这个连接已经失效,能不能发个新的?
作者: panminghui     时间: 2007-8-1 17:35
好帖!!!!!
作者: supergame     时间: 2007-8-16 04:31
非學不可~不錯
作者: hankerer     时间: 2007-8-23 12:27
好贴,学习了。
作者: dxmg     时间: 2007-9-4 22:06
通俗易懂,不错!
作者: chinasui     时间: 2007-9-14 17:08
今天才看到
还不算太晚吧
谢谢分享!
作者: hansom     时间: 2008-10-29 15:42
有时灌水还是必要的。




欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5