Smallfrogs
序:
很多人对BOOT.INI 的重要性非常熟悉,但是实际上,和Windows NT 架构操作系统启动相关的重要
文件不仅仅是BOOT.INI,更重要的文件是NTLDR。本文件简单的描述了NTLDR 的基本用途和一些常见
的故障分析方法。
本文适用于初次接触Windows NT1架构操作系统的用户。
基本介绍
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 里面设置启动参数。完整的BOOT.INI 的启动参数可以在
http://www.sysinternals.com/Information/bootini.html 查阅到。另外在Windows 帮助文档里面也记录了常
1 Windows NT 架构操作系统:指在Windows NT 操作系统上发展起来的操作系统,目前主流的有:Windows 2000、Windows
XP 和Windows Server 2003 等。
2 BOOTSECT.DOS:Windows 9x 启动扇区的转储文件。文件由Windows NT 安装程创建,一般为512 字节。
NTLDR 的故事 Smallfrogs ( http://www.KZTechs.com )
见的一些参数。此外使用BOOTCFG 命令可以在命令行提示符下对BOOT.INI 进行配置。
如果BOOT.INI 文件里面只有一个启动项,那么NTLDR 将不显示启动选择菜单而直接进入启动流程。
如果BOOT.INI 文件非法或不存在,那么NTLDR 将尝试从默认系统卷启动系统。
进入启动流程的NTLDR 将调用NTDETECT.COM 来获取基本的硬件信息,然后把这些信息传递给
Windows NT 内核程序:NTOSKRNL.EXE。至此,NTLDR 的使命结束。
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 的故事 Smallfrogs ( http://www.KZTechs.com )
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、点击确定两次