电脑开机启动时提示(显示)NTLDR文件丢失解决办法及原因分析
一、其实WINDOWS XP这个NTLDR文件丢失有个最简便的解决办法,不需要任何其它工具,就地起死回生。
1、用其它任何方式启动电脑。
2、用DIR NTLDR /S命令从备份文件中找出这个文件。路径比较长,比照抄下就行,复制到C盘根目录下。
3、关键是写入硬盘,不能COPY完就了事,必须执行DEBUG NTLDR命令。命令行中执行W命令写入,Q命令退出。这样才能保证真正写入硬盘。
4、重新启动。怎么样?让我苦苦盼望的画面马上回来了,是否有点热泪盈洭呢。哈,别谢我,同是天涯沦落人,不过我比你先倒霉,找到解决它的办法罢了,别忘了如果你也有什么好东东与我分享
二、修复 Windows XP 启动系统
2.放入 Windows XP 光盘 在光盘驱动器内启动电脑
3.让光盘自动执行至停止便会出现叁个选择,按〔R〕选修复电脑便会询问要进入 哪个系统,请选择 Windows XP 的代号,然后输入 Administrator 密码 (与安装时输入的 Administrator 密码相同) 如果没有密码直接按输入键便可
4.在 C:\Windows> 下键入 Fixboot 及按〔Y〕确认
5.在 C:\Windows> 下键入 光盘 \
6.在 C:\> 下键入 ATTRIB -H NTLDR
7.在 C:\> 下键入 ATTRIB -S NTLDR
8.在 C:\> 下键入 ATTRIB -R NTLDR
9.在 C:\> 下键入 ATTRIB -H NTDETECT.COM
10.在 C:\> 下键入 ATTRIB -S NTDETECT.COM
11.在 C:\> 下键入 ATTRIB -R NTDETECT.COM
12.在 C:\> 下键入 COPY X:\I386\NTLDR C:\ 注: X: 是光盘驱动器的代号下同
13.在 C:\> 下键入 COPY X:\I386\NTDETECT.COM C:\
14.完成后取出 Win XP 光盘及键入〔Exit〕会重新启动电脑
15.在 BIOS 选回用硬盘启动电脑便可
16.使用中文版 Windows XP 如启动时选单出现乱码者可在进入 Windows XP 后将 Windows XP 光盘 I386 目录下的bootfont.bin 复制至 C 盘的根目录下便可,如使用英文版 Windows XP 者把 bootfont.bin 从 C 盘的根目录下删除便可
解决办法:
·如果 MFT 根文件夹碎片较多,则可能会出现此问题。如果 MFT 根文件夹包含多个文件,则 MFT 就会变得非常零碎,以至于需要另外创建一个分配索引。因为文件是按字母顺序映射到分配索引中的,NTLDR 文件可能会被推到第二个分配索引中。如果发生此现象,就会看到NTLDR is missing Press CTRL+ALT+DEL to restart.描述的错误信息。
一般情况下不将文件写入根文件夹。如果一个程序定期在根文件夹中创建和删除临时文件,或者将许多文件误复制到根文件夹,就会造成这一情况。
这个问题是在您将多个文件复制到使用 NTFS 文件系统的启动卷的根文件夹后出现,这个问题已经在Windows 2000 SP4中解决。所以,请您检查您的SP状态。 至于解决的方法:
使用恢复控制台
1.. 使用 Windows 2000 安装盘重新启动计算机,或使用 Windows 2000 光盘重新启动计算机。
2.. 在“欢迎使用安装程序”屏上,按 R 键修复 Windows 2000 安装。
3.. 按 C 键通过使用“恢复控制台”修复 Windows 2000 安装。
4.. 键入与要修复的 Windows 安装对应的数字,然后按 Enter 键。例如,键入 1,然后按 Enter 键。有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 键入管理员密码,然后按 Enter 键。
5.. 键入 map,然后按 ENTER 键。记下分配给包含 Windows 2000 光盘的 CD-ROM驱动器的驱动器号。
6.. 键入以下命令,在键入每个命令后按 ENTER 键,其中 drive 是您在本文
“方法 2:使用恢复控制台”中的第 4 步键入的驱动器号:
copy drive:i386ntldr c:
copy drive:i386ntdetect.com c:
如果系统提示您覆盖现有文件,请键入 y,然后按 Enter 键。
注意:在这些命令中,ntldr 和 c: 之间以及 ntdetect.com 和 c: 之间各有一个空格。
7.. 键入下面的命令,然后按 ENTER 键:
type c:Boot.ini
出现一个类似如下的列表:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)WINNT="Microsoft Windows 2000 Professional" /fastdetect
如果收到以下消息,则 Boot.ini 文件可能丢失或损坏:
The system cannot find the file or directory specified.
8.. 如果 Boot.ini 文件丢失或损坏,请创建一个新的。为此,请按照下列步骤操作:
1.. 使用文本编辑器,如记事本或 Edit.com 创建一个类似于以下内容的启动加载程序文件:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)WINNT="Microsoft Windows 2000 Professional" /fastdetect有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 102873 BOOT.INI and ARC Path Naming Conventions and Usage
301680 HOW TO:Create a Boot Disk for an NTFS or FAT Partition in Windows
2.. 将该文件作为 Boot.ini 保存到磁盘。
注意:如果您是使用记事本创建的文件,请确保 .txt 扩展名没有附加在Boot.ini 文件名后面。
3.. 在恢复控制台命令提示符下键入下面的命令,将 Boot.ini 文件从软盘复制到计算机:
copy a:Boot.ini c:
9.. 键入 exit,然后按 ENTER 键。计算机将会重新启动
在电脑的日常使用过程中,可能有许多人碰到过开机后,提示“NTLDR is Missing Press any key to restart”(NTLDR文件丢失,按任何键重新启动),无法正常进入系统。很多人可能手足无措,尤其是第一次碰到这个问题的人,可能不知道怎么解决,或者选择重新安装操作系统。其实完全不必要的。下面就详细讲解产生个问题的原因及处理解决办法:
一、原因:
1、突然停电;
2、在高版本系统的基础上安装低版本的操作系统;
3、非正常关机或重起(直接关掉电源按钮或按下Reset键);
4、NTLDR文件被破坏或删除。这些都很容易造成NTLDR文件的丢失,这样在开机时就会出现“NTLDR is Missing Press any key to restart”的故障提示。
二、解决办法:
1、在“故障恢复控制台”中进行解决。启动电脑按"DEL"进入BIOS设置,改为从光驱启动,然后保存退出,把Windows XP安装光盘放入光驱中,进入故障恢复控制台,在故障恢复控制台的命令状态下输入“copy x:\i386\ntldr c:\”命令并回车即可(“x”为光驱所在的盘符),然后执行“copy x:\i386\ntdetect.com c:\”命令,如果提示是否覆盖文件,则键入“y”确认,并按回车键。输入“exit”命令退出控制台,重新启动。
2、更简单的办法——DOS下copy NTLDR文件。用软盘或光盘引导,启动电脑进入DOS,使用“dir NTLDR /s”命令从备份文件中找出这个文件(路径比较长,对照着抄下),然后复制到C盘根目录下“copy ……\ntldr c:\”,接着是关键步骤——写入硬盘(不能COPY完就了事),必须执行“DEBUG NTLDR”命令,然后执行“W”命令写入,“Q”命令退出,这样才能保证真正写入硬盘,最后重新启动。
有时,Boot.ini文件也会同时损坏或丢失,可到其他安装Windows XP的电脑中复制该文件,将它拷贝到C盘下,然后重启即可。
三、NTLDR文件是做什么的?
NTLDR文件是winnt/win200/WinXP/Win2003/WinVista等WIN NT架构操作系统的引导文件,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,这时,启动程序结束,装载阶段开始。
四、建议
在系统正常的时候备份NTLDR、Boot.ini等重要系统引导文件。使用中文版Windows XP如启动时选单出现乱码者,可在进入Windows XP后,将Windows XP光盘 I386 目录下的bootfont.bin 复制至 C 盘的根目录下便可,如使用英文版 Windows XP 者把 bootfont.bin 从 C 盘的根目录下删除便可。
五、[更详细的参考资料]
NTLDR一般存放于C盘根目录下,是一个具有隐藏和只读属性的系统文件。它的主要职责是解析Boot.ini文件。下面我们就以Windows XP为例介绍NTLDR在系统引导过程中的作用。
Windows XP在引导过程中将经历预引导、引导和加载内核三个阶段,这与Windows 9X直接读取引导扇区的方式来启动系统是完全不一样的,NTLDR在这三个阶段的引导过程中将起到至关重要的作用。
1.预引导阶段
在预引导阶段里计算机所做的工作有:运行POST程序,POST将检测系统的总内存以及其他硬件设备的状况,将磁盘第一个物理扇区加载到内存,加载硬盘主引导记录并运行,主引导记录会查找活动分区的起始位置。接着活动分区的引导扇区被加载并执行,最后从引导扇区加载并初始化NTLDR文件。
2.引导阶段
在引导阶段中,Windows XP将会依次经历初始引导加载器阶段、操作系统选择阶段、硬件检测阶段以及配置选择阶段这四个小的阶段。
(1)在初始引导加载器阶段中,NTLDR将把计算机的微处理器从实模式转换为32位平面内存模式,在实模式中,系统会为MS-DOS预留640KB大小的内存空间,其余的内存都被看做是扩展内存,在32位平面模式中系统将所有内存都视为可用内存,然后NTLDR执行适当的小型文件系统驱动程序,这时NTLDR可以识别每一个用NTFS或FAT格式的文件系统分区,至此初始引导加载器阶段结束。
(2)当初始引导加载器阶段结束后将会进入操作系统选择阶段,如果计算机上安装了多个操作系统,由于NTLDR加载了正确的Boot.ini文件,那么在启动的时候将会出现要求选择操作系统的菜单,NTLDR正是从boot.ini文件中查找到系统文件的分区位置。如果选择了NT系统,那么NTLDR将会运行NTDETECT.COM文件,否则NTLDR将加载BOOTSECT.DOS,然后将控制权交给BOOTSECT.DOS。如果Boot.ini文件中只有一个操作系统或者其中的timeout值为0,那么将不会出现选择操作系统的菜单画面,如果Boot.ini文件非法或不存在,那么NTLDR将会尝试从默认系统卷启动系统。
小提示:NTLDR启动后,如果在系统根目录下发现有Hiberfil.sys文件且该文件有效,那么NTLDR将读取Hiberfil.sys文件里的信息并让系统恢复到休眠以前的状态,这时并不处理Boot.ini文件。
(3)当操作系统选择阶段结束后将会进入硬件检测阶段,这时NTDETECT.COM文件将会收集计算机中硬件信息列表,然后将列表返回到NTLDR,这样NTLDR将把这些硬件信息加载到注册表“HKEY_LOCAL_MACHINE”中的Hardware中。
(4)硬件检测阶段结束后将会进入配置选择阶段,如果有多个硬件配置列表,那么将会出现配置文件选择菜单,如果只有一个则不会显示。
3.加载内核阶段
在加载内核阶段中,NTLDR将加载NTOKRNL.EXE内核程序,然后NTLDR将加载硬件抽象层(HAL.dll),接着系统将加载注册表中的“HKEY_MACHINESystem”键值,这时NTLDR将读取“HKEY_MACHINESystemselect”键值来决定哪一个ControlSet将被加载。所加载的ControlSet将包含设备的驱动程序以及需要加载的服务。再接着NTLDR加载注册表“HKEY_LOCAL_MACHINESystemservice”下的start键值为0的底层设备驱动。当ControlSet的镜像CurrentControlSet被加载时,NTLDR将把控制权传递给NTOSKRNL.EXE,至此引导过程将结束。
小提示:如果在启动的时候按F8键,那么我们将会在启动菜单中看到多种选择启动模式,这时NTLDR将根据用户的选择来使用启动参数加载NT内核,用户也可以在Boot.ini文件里设置启动参数。
NTLDR具有向下兼容性,也就是说高版本的NTLDR可以启动低版本的Windows NT操作系统,目前最新版本的NTLDR是在Windows Server 2008 SP1附带的版本。
如果你已经安装了一个高版本的操作系统,那么如果再想安装一个低版本的操作系统,那么低版本的操作系统在安装后会出现无法进入原来高版本的操作系统的故障。问题的原因是低版本的NTLDR和NTDETECT.COM不能识别高版本操作系统的NTOSKRNL.EXE,从而造成系统不能正常启动。
解决方法:
只要将高版本的NTLDR和NTDETECT.COM替换低版本的NTLDR和NTDETECT.COM即可(这两个文件可以从安装光盘上提取)。如果是BOOTSECT.DOS文件丢失或损坏,那么只要插入一张Windows 9X启动盘,然后执行SYS C:命令,重新启动系统,接着需要将Windows NT架构的安装光盘选择修复安装即可恢复多重启动菜单。
小提示:从Windows XP SP2系统开始,执行安装程序时将会检测NTLDR和NTDETECT.COM的版本,如果发现现有版本比安装程序上的版本新的话,那么将采用现有版本而不采用安装程序上的NTLDR和NTDETECT.COM版本。
在Windows XP SP2以前,系统在崩溃时往往会自动重启,而现在,微软在NTLDR中增加了一个选项,那么就是:系统崩溃时禁止自动重启(Disable automatic restart on system failure),朋友们可以通过在启动时按F8键从高级启动菜单中找到这个选项,如果启用了这个选项,Windows在启动过程中如果发生致命错误,那么将以显示蓝屏信息取代自动重启的设置,除此之外,我们也可以通过在系统属性中来关闭自动重启的设置。
具体操作方法:
在“系统属性”窗口中点击“高级”标签,然后在“启动和故障恢复”栏里点击“设置”按钮,接着在打开的“启动和故障恢复”窗口中取消“系统失败”栏中“自动重新启动”这一选项的选中状态,点击“确定”,然后再在弹出的警告窗口中点击“确定”即可。
评论
查看更多