郁闷小甜甜 发表于 2008-12-12 09:55:56

NTLDR的故事:用途和常见故障分析方法

<br>  Smallfrogs<br>  <br>  <b>序:</b><br>  <br>  很多人对BOOT.INI 的重要性非常熟悉,但是实际上,和Windows NT 架构操作系统启动相关的重要<br>  <br>  文件不仅仅是BOOT.INI,更重要的文件是NTLDR。本文件简单的描述了NTLDR 的基本用途和一些常见<br>  <br>  的故障分析方法。<br>  <br>  本文适用于初次接触Windows NT1架构操作系统的用户。<br>  <br>  <b>基本介绍</b><br>  <br>  NTLDR,Windows NT 架构操作系统特有的一个文件,用于操作系统的引导。如果这个文件不存在则<br>  <br>  操作系统不能够正常启动。该文件储存在启动卷根目录下,一般为C:\。<br>  <br>  <b>NTLDR 职责;</b><br>  <br>  1. 解析BOOT.INI 文件的内容。<br>  <br>  2. 加载Windows NT 内核或把控制权交给BOOTSECT.DOS2文件用于启动Win9X 或把控制权交给其他<br>  <br>  操作系统引导代码。<br>  <br>  <b>NTLDR 的使用</b><br>  <br>  NTLDR 启动以后,如果在系统卷根目录下发现了Hiberfil.sys 文件且文件是有效的,那么NTLDR 读<br>  <br>  取Hiberfil.sys 里面的信息并让系统恢复到休眠以前的状态。这个时候并不处理BOOT.INI 文件。<br>  <br>  如果BOOT.INI 文件里面有两个或两个以上的启动选项,那么NTLDR 暂停系统引导,让用户选择一<br>  <br>  个启动选项直至超时。超时值由BOOT.INI 里面的TimeOut 值设定。超时以后,NTLDR 读取BOOT.INI<br>  <br>  里面DEFAULT 后面的信息,获取Windows 目录的路径以便执行后面的启动流程。<br>  <br>  提示:<br>  <br>  按下F8 会显示启动菜单,启动菜单里面可以选择多种启动模式。NTLDR 根据用户的选择,设置不同<br>  <br>  的启动参数并使用启动参数来加载NT 内核。<br>  <br>  用户也可以直接在BOOT.INI 里面设置启动参数。完整的BOOT.INI 的启动参数可以在<br>  <br>  http://www.sysinternals.com/Information/bootini.html 查阅到。另外在Windows 帮助文档里面也记录了常<br>  <br>  1 Windows NT 架构操作系统:指在Windows NT 操作系统上发展起来的操作系统,目前主流的有:Windows 2000、Windows<br>  <br>  XP 和Windows Server 2003 等。<br>  <br>  2 BOOTSECT.DOS:Windows 9x 启动扇区的转储文件。文件由Windows NT 安装程创建,一般为512 字节。<br>  <br>  NTLDR 的故事 Smallfrogs ( http://www.KZTechs.com )<br>  <br>  见的一些参数。此外使用BOOTCFG 命令可以在命令行提示符下对BOOT.INI 进行配置。<br>  <br>  如果BOOT.INI 文件里面只有一个启动项,那么NTLDR 将不显示启动选择菜单而直接进入启动流程。<br>  <br>  如果BOOT.INI 文件非法或不存在,那么NTLDR 将尝试从默认系统卷启动系统。<br>  <br>  进入启动流程的NTLDR 将调用NTDETECT.COM 来获取基本的硬件信息,然后把这些信息传递给<br>  <br>  Windows NT 内核程序:NTOSKRNL.EXE。至此,NTLDR 的使命结束。<br>  <br>  <b>NTLDR 的兼容性:</b><br>  <br>  NTLDR 具有向下兼容性。高版本的NTLDR 能够启动低版本的Windows NT 操作系统。目前最新版<br>  <br>  本的NTLDR 是在Windows Server 2003 Service Pack 1 附带的版本。<br>  <br>  经过测试,这个版本能够启动以下一些Windows NT 架构操作系统:<br>  <br>  .. Windows Server 2003 X64 Edition<br>  <br>  .. Windows Server 2003 with Service Pack 1<br>  <br>  .. Windows Server 2003 RTM<br>  <br>  .. Windows XP Professional X64 Edition<br>  <br>  .. Windows XP with Service Pack 2<br>  <br>  .. Windows XP with Service Pack 1<br>  <br>  .. Windows XP RTM<br>  <br>  .. Windows 2000 with Service Pack 4<br>  <br>  .. Windows 2000 with Service Pack 3<br>  <br>  .. Windows 2000 with Service Pack 2<br>  <br>  .. Windows 2000 with Service Pack 1<br>  <br>  .. Windows 2000 RTM<br>  <br>  如果你已经安装了一个新版本的操作系统,但是后面又安装了一个旧版本的操作系统,当旧版本操作<br>  <br>  系统安装完毕以后可能会发现无法进入原先的新版本的操作系统。如果碰到类似问题,那么问题一定出现<br>  <br>  在NTLDR 和NTDETECT.COM 版本上面。由于旧版本的NTLDR 和NTDETECT.COM 不能够识别新版本<br>  <br>  操作系统的NTOSKRNL.EXE,造成系统不能够启动(一般显示黑屏)。解决方法很简单,只需要使用新<br>  <br>  版本的NTLDR 和NTDETECT.COM 替换旧版本的就可以了。<br>  <br>  提示:<br>  <br>  快速的按下F8 还是会显示启动菜单的。不过速度要快。<br>  <br>  提示:<br>  <br>  NTOSKRNL.EXE 和HAL.DLL 文件一样, NTOSKRNL.EXE 不一定是原始的文件名。对于<br>  <br>  multi-processor 系统来说, NTOSKRNL.EXE 是由 Ntoskrnlmp.exe 改名而来。<br>  <br>  NTLDR 的故事 Smallfrogs ( http://www.KZTechs.com )<br>  <br>  NTLDR 新增功能<br>  <br>  从Windows XP Service Pack 2 开始,NTLDR 增加了一个新选项:系统崩溃时禁止自<br>  <br>  动重启(Disable automatic restart on system failure)。用户可以按F8 键在高级启动菜单里<br>  <br>  面找到这个选项。<br>  <br>  默认情况下,如果系统发生致命错误,Windows 将自动重启。如果用户选择了这个选项,<br>  <br>  那么Windows 在启动过程中如果发生致命错误,将以显示蓝屏信息取代自动重启的设置。<br>  <br>  提示:<br>  <br>  从Windows XP with Service Pack 2 开始,安装程序在安装的时候将检测NTLDR和NTDETECT.COM<br>  <br>  版本,如果发现现有的版本比安装源上的版本新的话,将使用现有版本而不使用安装源上的版本。<br>  <br>  提示:<br>  <br>  用户也可以从系统属性里面关闭自动重启设置。不过要求在系统正常运行的情况下。方法是:<br>  <br>  1、打开我的电脑——控制面板——系统属性<br>  <br>  2、找到高级选项卡<br>  <br>  3、点击“启动和故障恢复”下面的设置按钮<br>  <br>  4、取消“自动重新启动”前面的复选框<br>  <br>  5、点击确定两次 <
页: [1]
查看完整版本: NTLDR的故事:用途和常见故障分析方法