Nov 3

NTLDR,XP启动的秘密 不指定

felix021 @ 2007-11-3 01:40 [IT » 操作系统] 评论(0) , 引用(0) , 阅读(3928) | Via 本站原创 | |
NTLDR,XP启动的秘密2007年05月06日 09:51解决NTLDR丢失导致的启动故障

1、当打开电脑,系统提示"NTLDR is missing,Press any key to restart".重启按F8 进入不了安全模式。
        方法:把Winxp安装光盘放光驱,用光驱引导系统,当提示“要用恢复控制台修复Windows xp安装,按“R”继续。当提示进入修复系统时,按“1”键并输入管理员密码进入了“故障恢复台”,在命令行输入copy G:\i386\ntldr C:\(G是光盘符)回车,重启。

2、如果是NTLDR文件被破坏,先用attrib c:\ntldr -s -h -r取消其系统只读,隐藏的文件属性,然后再使用复制命令覆盖原来的文件。
        查看NTLDR,在资源管理器中单击“工具”菜单中的“文件夹选项"在"查看"选项卡中取消"隐藏受保护的操作系统文件".并选中下面的"显示所有的文件和文件夹"选项才能看到这些文件。

XP启动的秘密

  当我们按下电源开关后,电脑开始启动,硬件自检通过后.BIOS会引导电脑并读取硬盘的MBR(主引导记录),然后将硬盘引导分区的引导扇区代码读入内存,同时把控制权交给该代码,引导扇区代码则会从引导分区根目录中读取NTLDR文件,并将控制权移交给它.如果这时引导扇区你码没有在根目录中发现NTLDR文件.或NTLDR文件遭到破坏,就会在屏幕上显示NTLDR丢失的信息。

       NTLDR要接管系统引导控制权后,首先它会从根目录中读取Boot.ini文件和BOOT.ini文件中的配置显示出多系统引导菜单(安装了多系统),并根据用户的选择来调入对应操作系统的启动代码,如果用户选择启动Windows 9x,NTLDR会读取BOOTSECT.DOS文件。当用户选择启动Windows xp系统时,NTLDR将会调用NTOSKRNL.EXE和HAL.DLL,读取注册表键值决定加载哪些设备驱动程序,然后把控制权传递给NTOSKRNL.EXE。至此NTLDR的使命结束。

认识NTLDR

  基本介绍

  NTLDR,Windows NT 架构操作系统特有的一个文件,用于操作系统的引导。如果这个文件不存在则操作系统不能够正常启动。该文件储存在启动卷根目录下,一般为C:\。

  NTLDR 职责

  1. 解析BOOT.INI 文件的内容。

  2. 加载Windows NT 内核或把控制权交给BOOTSECT.DOS2文件用于启动Win9X 或把控制权交给其他操作系统引导代码。

  NTLDR 的使用

  NTLDR 启动以后,如果在系统卷根目录下发现了Hiberfil.sys 文件且文件是有效的,那么NTLDR 读取Hiberfil.sys 里面的信息并让系统恢复到休眠以前的状态。这个时候并不处理BOOT.INI 文件。

  如果BOOT.INI 文件里面有两个或两个以上的启动选项,那么NTLDR 暂停系统引导,让用户选择一个启动选项直至超时。超时值由BOOT.INI 里面的TimeOut 值设定。超时以后,NTLDR 读取BOOT.INI里面DEFAULT 后面的信息,获取Windows 目录的路径以便执行后面的启动流程。

  提示:

  按下F8 会显示启动菜单,启动菜单里面可以选择多种启动模式。NTLDR 根据用户的选择,设置不同的启动参数并使用启动参数来加载NT 内核。

  用户也可以直接在BOOT.INI 里面设置启动参数。

NTLDR 的兼容性

  NTLDR 具有向下兼容性。高版本的NTLDR 能够启动低版本的Windows NT 操作系统。目前最新版本的NTLDR 是在Windows Server 2003 Service Pack 1 附带的版本。

  经过测试,这个版本能够启动以下一些Windows NT 架构操作系统:

  .. Windows Server 2003 X64 Edition

  .. Windows Server 2003 with Service Pack 1

  .. Windows Server 2003 RTM

  .. Windows XP Professional X64 Edition

  .. Windows XP with Service Pack 2

  .. Windows XP with Service Pack 1

  .. Windows XP RTM

  .. Windows 2000 with Service Pack 4

  .. Windows 2000 with Service Pack 3

  .. Windows 2000 with Service Pack 2

  .. Windows 2000 with Service Pack 1

  .. Windows 2000 RTM

  如果你已经安装了一个新版本的操作系统,但是后面又安装了一个旧版本的操作系统,当旧版本操作系统安装完毕以后可能会发现无法进入原先的新版本的操作系统。如果碰到类似问题,那么问题一定出现在NTLDR 和NTDETECT.COM 版本上面。由于旧版本的NTLDR 和NTDETECT.COM 不能够识别新版本操作系统的NTOSKRNL.EXE,造成系统不能够启动(一般显示黑屏)。解决方法很简单,只需要使用新版本的NTLDR 和NTDETECT.COM 替换旧版本的就可以了。

  提示:

  快速的按下F8 还是会显示启动菜单的。不过速度要快。

  提示:

  NTOSKRNL.EXE 和HAL.DLL 文件一样, NTOSKRNL.EXE 不一定是原始的文件名。对于

  multi-processor 系统来说, NTOSKRNL.EXE 是由 Ntoskrnlmp.exe 改名而来。

NTLDR 新增功能

  从Windows XP Service Pack 2 开始,NTLDR 增加了一个新选项:系统崩溃时禁止自动重启(Disable automatic restart on system failure)。用户可以按F8 键在高级启动菜单里面找到这个选项。

  默认情况下,如果系统发生致命错误,Windows 将自动重启。如果用户选择了这个选项,

  那么Windows 在启动过程中如果发生致命错误,将以显示蓝屏信息取代自动重启的设置。

  提示:

  从Windows XP with Service Pack 2 开始,安装程序在安装的时候将检测NTLDR和NTDETECT.COM

  版本,如果发现现有的版本比安装源上的版本新的话,将使用现有版本而不使用安装源上的版本。

  提示:

  用户也可以从系统属性里面关闭自动重启设置。不过要求在系统正常运行的情况下。方法是:

  1、打开我的电脑——控制面板——系统属性

     2、找到高级选项卡

        3、点击“启动和故障恢复”下面的设置按钮

  4、取消“自动重新启动”前面的复选框

  5、点击确定两次

从启动过程看NTLDR的功能:

1.运行加电自检(POST)程序
2.BIOS读取磁盘第一个物理扇区,并将其映象加载到内存,然后BIOS把主引导扇区的执行传递给该映象.
3.加载主引导记录到内存,其中包括磁盘分区表和少量的可执行代码.然后,主引导记录查找活动分区的起始位置.
4.活动分区的引导扇区加载到内存并执行.
5.从引导扇区加载并初始化NTLDR.
6.NTLDR执行适当的小型文件系统驱动程序.小型文件系统驱动程序建在NTLDR
中,然后可以读取FAT或NTFS.
7.NTLDR读取BOOT.INI文件
8.NTLDR加载所选择的操作系统,产生以下两个操作之一:
     如果选择了NT系统,则NTLDR运行NTDETECT.COM
     对于其他操作系统,NTLDR则加载BOOTSECT.DOS.然后把控制权交给它,NT过程到此结束.
9.NTDETECT.COM搜索硬件并发送硬件列表给NTLDR,以在HKEY_LOCAL_MACHINE\HARDWARE中登记
10.NTLDR加载NTOSKRNL.EXE,HAL.DLL
11.NTLDR检索系统空间并加载所配置的设备驱动程序,使之在引导时启动
12.NTLDR把控制权传递给NTOSKRNL.EXE,引导过程结束





欢迎扫码关注:




转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   *非必须
网址   电邮   [注册]