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

本文详细介绍了NTLDR作为Windows NT架构操作系统中关键的引导文件的作用和功能,包括其如何解析BOOT.INI文件、加载内核及与其他操作系统引导代码交互的过程。同时探讨了NTLDR的兼容性和新增功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 帮助文档里面也记录了常见的一些参数。此外使用BOOTCFG 命令可以在命令行提示符下对BOOT.INI 进行配置。

    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 )
  
    
  如果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、点击确定两次

NTLDR文件是win nt/win200/WinXP的引导文件,当此文件丢失时启动系统会提示"NTLDR is missing..."并要求按任意键重新启动,不能正确进入系统 。所以应该在系统正常的时候给予备份。 NTLDR文件是做什么的?我们如何来修复NTLDR文件类型的故障呢? NTLDR文件的是一个隐藏的,只读的系统文件,位置在系统盘的根目录,用来装载操作系统。 一般情况系统的引导过程是这样的: 代码 1、电源自检程序开始运行 2、主引导记录被装入内存,并且程序开始执行 3、活动分区的引导扇区被装入内存 4、NTLDR从引导扇区被装入并初始化 5、将处理器的实模式改为32位平滑内存模式 6、NTLDR开始运行适当的小文件系统驱动程序。 小文件系统驱动程序是建立在NTLDR内部的,它能读FAT或NTFS。 7、NTLDR读boot.ini文件 8、NTLDR装载所选操作系统 *如果NT/XP被选择,, NTLDR运行Ntdetect.com 对于其他的操作系统, NTLDR装载并运行Bootsect.dos然后向它传递控制。 windows NT过程结束。 9.Ntdetect.com 搜索计算机硬件并将列表传送给NTLDR,以便将这些信息写进HKE Y_LOCAL_MACHINEHARDWARE中。 10.然后NTLDR装载Ntoskrnl.exe,Hal.dll系统信息集合。 11.Ntldr搜索系统信息集合,并装载设备驱动配置以便设备在启动时开始工作 12.Ntldr把控制权交给Ntoskrnl.exe,这时,启动程序结束,装载阶段开始 当此文件丢失时,我们可以从安装光盘上进行提取,方法是: 1、进入系统故障恢复控制台。 2、转到C盘。 3、输入"copy X:\I386\NTLDR c:\"(说明:X为光驱盘符)并回车, 如果系统提示要否覆盖则按下"Y",之后输入exit命令退出控制台重新启动即可。 症状 当试图在一台运行 Microsoft Windows 95、Microsoft Windows 98 或 Microsoft Windows Millennium Edition (Me) 的计算机上安装 Windows XP 或者升级到 Windows XP 时,可能在安装过程中的第一次重新启动后接收到下面的错误信息: NTLDR is missing Press any key to restart 此行为只有当 Windows 95、Windows 98 或者 Windows Me 安装于使用 FAT32 文件系统的大容量驱动器之上时才会出现。 原因 如果克隆现有的 Windows 95、Windows 98 或 Windows Me 的安装,然后应用于与克隆副本的源驱动器有不同布局的驱动器上,则可能发生此行为。 一种可能的情况如下所示:正在一个 4 GB 的驱动器上运行 Windows 98。在升级后,例如升级到一块 30 GB 的硬盘后,使用第三方磁盘映像实用程序对 Windows 98 安装进行镜像操作并应用镜像到新驱动器上。在晚些时候,接着在 Windows 98 的克隆映像上安装 Windows XP 以升级到 Windows XP。 要发生此行为,则下面的条件必须存在: ? 系统/启动分区用 FAT32 文件系统格式化。 ? 计算机通过使用 INT-13 扩展(大于 7.8 GB 且分区表内有 0C 的 System-ID 类型的分区)启动。 ? 由于克隆过程,造成了 FAT32 BIOS Parameter Block (BPB) 中的头(边)值与物理驱动器的布局不匹配。 Windows 95、Windows 98 或者 Windows Me 启动代码忽略 BPB 中的头值,并且即使在值无效时仍启动程序。但是,Windows 2000 Windows XP 中的启动代码需要这个值,如果此值无效则启动过程不会成功。 解决方案 若要解决此问题,请改正 FAT32 BPB 中的无效头(边)值以使得 Windows XP 启动过程得以继续。更新此字段最简单的方法是通过使用下面的过程重写 Windows 95、Windows 98 或者 Windows Me 的启动代码: 代码 一. 使用包含 Sys.com 文件(默认情况下包含此文件)的 Windows 95、Windows 98 或者 Windows Me 启动盘重新启动计算机。 二. 在系统驱动器的根目录中制作 msdos.sys 文件的备份副本。为此,请从命令提示处键入下面的命令: attrib -h -r -s c:\msdos.sys rename msdos.sys *.sys 三. 在命令提示符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值