NTLDR文件是winnt/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:I386NTLDR c:"(说明:X为光驱盘符)并回车,
如果系统提示要否覆盖则按下"Y",之后输入exit命令退出控制台重新启动即可。
问题:
开机时提示NTLDR丢失,应当如何解决?
开机时提示:
NTLDR is losing,please press ‘ctrl + alt + delete’ to restart your computer.
本人机器的环境:
双操作系统:XP和Win2003,无软驱。
解决方法:
1.用Windows 2003的安装盘启动电脑,进入Windows 2003 Server的安装界面;
2.界面提示“要修复Windows 2003中文版的安装,请按R”,按R键继续;
3.界面提示“要用故障恢复控制台修复Windows 2003安装”选项,按C键继续;
4.屏幕出现故障恢复控制台提示“C:\Winnt,要登录到哪个Windows 安装(要取消,请按Enter)?”,在此键入“1”,然后按Enter键;
5.键入管理员密码,然后按Enter键;
6.键入Copy F:\I386\Ntldr c:\,按ENTER键(注:笔者使用的光盘是Windows 2003,如果是其他的安装盘,可以使用搜索命令查找一下ntldr文件的位置,一般在i386目录下。“f:”为我的光盘驱动器号);
7.键入Copy F:\I386\NTDETECT.COM c:\,按 Enter 键,系统提示您是否覆盖文件,键入Y,然后按Enter键。
8.重新启动电脑,就可以看到久违的双系统启动菜单了。
相关背景知识的介绍:
基本介绍
NTLDR,Windows NT架构操作系统(包括Win2000,WinXP,Win2003……)所特有的一个文件,用于操作系统的引导。如果这个文件不存在则操作系统不能够正常启动。该文件储存在启动卷根目录下,一般为C:\。就一般而论,在安装多操作系统的时候,由于人们大多数将较低版本的系统装在C:下,然后在其他盘如D:、E:再安装其他高版本的系统,在安装的时候应当均寻从低版本到高版本原则。
NTLDR 职责
1. 解析BOOT.INI 文件的内容。
2. 加载Windows NT 内核或把控制权交给BOOTSECT.DOS2(BOOTSECT.DOS2是指Windows 9x 启动扇区的转储文件。文件由Windows NT 安装程创建,一般为512 字节)文件用于启动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 的启动参数可以在[url]http://www.sysinternals.com/Information/bootini.html[/url] 查阅到。另外在Windows 帮助文档里面也记录了常用的见的一些参数。此外使用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 (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 替换旧版本的就可以了。
就笔者计算机而言,由于装的是XP和2003Server系统,所以在恢复时应该使较高版本的NTLDR,也就是说是20003Server所带的NTLDR。