NTLDR is missing....

来源:互联网 发布:python 重试机制 编辑:程序博客网 时间:2024/05/04 02:50

NTLDR is missing....

2008年12月10日 评论(4)|浏览(14) 点击查看原文

昨天又明白了一个知识。就是关于NTLDR(NT LoaDeR)的。

同学电脑开机后显示

NTLDR is missing.....

Please press any key to restart

以前ghost时曾遇到过这个问题,那时虽然知道是文件丢失但各方面的知识还不够成熟所以没有别的办法就只有在重新ghost。现在觉得通过查资料或baidu或请教别人可以解决这个问题,而不是一味的重新ghost,要知道,能修复就没必要ghost,虽然ghost所花费的时间不长,但重新安装应用软件有点麻烦,一个visual stdio 2005要花上一段时间,在加上SQL Server 2000,很有可能以前的东西受到一定程度的破坏。把损失减到最少是每个人所希望的。

初步猜测出NTLDR就是NT loader 的意思,所以重新拷贝过来就可以解决问题。

baidu了一下想法正确,不过要拷贝两个文件,一个 NTLDR 一个 NTDETECT.COM.

实施过程中有点小插曲,写出来以后注意。

在我电脑的C盘根目录下搜不到NTLDR文件,真是奇了怪了??

把原版xp盘放进去通过系统恢复控制台进行拷贝文件。问题来了,怎么就找不到那俩文件呢??

既然是要复制这两个文件,通过winPE岂不是更好。

通过winPE顺利找到两个文件并成功复制。启动后一切正常。

又仔细想了想,显示不出来,搜索不到的原因大概是这俩文件的系统属性和隐藏属性在作怪。

更改:“工具”--->"文件夹选项"---->"显示系统文件"---"显示隐藏文件"

果然就出来了.

同理在dos下可通过dir /a:hs命令显示,也可以用attrib -h -s ntldr命令修改属性,使他们现身.

 

过程截图如下:

没修改前:

让电脑显示具有系统属性和隐藏属性的文件的步骤如下:

 

 

 

修改后,那两个文件“浮出水面”:

 

 利用dos命令也能达到相同的目的,如果无法进入windos系统可以用dos引导执行相应操作。

没修改前利用dos命令无法查看那两个文件:

 

 

 

dir命令的有关参数,可以找到用于查看隐藏属性和形同属性文件的参数:

 

 

 

加上相关参数后的dir命令:

 

 

修改属性命令attrib的相关参数和用法:

 

 

 

利用attrib命令去掉他们的系统属性和隐藏属性:

 

 

 

 

去掉属性后的文件和普通文件一样显示出来了:

 

                   百度一下

NTLDR

目录[隐藏]

NTLDR文件是做什么的?
我们如何来修复NTLDR文件类型的故障呢?
[1]Win XP中NTLDR在系统引导过程中的作用
解决方法:

 

 

 
  NTLDR全称是NT Loader,是系统加载程序
 
  NTLDR文件是win nt/win2000/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_MACHINE/HARDWARE中。
 
  10.然后NTLDR装载Ntoskrnl.exe,Hal.dll和系统信息集合。
 
  11.Ntldr搜索系统信息集合,并装载设备驱动配置以便设备在启动时开始工作
 
  12.Ntldr把控制权交给Ntoskrnl.exe,这时,启动程序结束,装载阶段开始
 
  WindowsXP出现此故障的解决办法
 
  当此文件丢失时,我们可以从安装光盘上进行提取,方法是:
 
  1、进入系统故障恢复控制台。
 
  2、转到C盘。
 
  3、输入"copy X:/I386/NTLDR c:/"(说明:X为光驱盘符)并回车,如果系统提示要否覆盖则按下"Y",
 
  输入"copy X:/I386/Ntdetect.com c:/",并回车,
 
  之后输入exit命令退出控制台重新启动即可。
 
  今天刚遇到的一种情况:使用新硬盘安装系统时,在进行格式化未完成时突然重启,再启动时就出现NTLDR IS MISSING这个提示,换了一个新的硬盘后才没有这个提示。
 
  Windows 2003 server出现此故障的解决办法
 
  1. 用Windows 2003的安装盘启动电脑,进入Windows 2003 Server的安装界面; 
 
  2. 界面提示“要修复Windows 2003 server的安装,请按R”,按R键继续;3. 屏幕出现故障恢复控制台提示“C:/Winnt,要登录到哪个Windows 2003安装(要取消,请按Enter)?”,在此键入“1”,然后按Enter键; 
 
  4. 键入管理员密码,然后按Enter键; 
 
  5. 键入Copy H:/WIN2003/ENT/I386/Ntldr c:/,按ENTER键(注:我使 用的光盘是Windows 2003二合一光盘,如果是其他的安装盘,可以使用搜索命令查找一下ntldr文件的位置,一般在i386目录下。“h:”为 我的光盘驱动器号),如果系统提示您是否覆盖文件,键入Y,然后按Enter键。
 
  最近一段时间我出现了这种情况,每次开机,都出现NTLDR is missing,press any key to restart,后面还有一句忘了,出现这种情况后,我重启开机按F10进入选择启动项,选择硬盘启动,year进如了,呵呵,如过你出现这种情况,也可以试试这种方法。
 
  NTLDR is missing解决方法
 
  用WIN XP光盘启动电脑 ,出现“欢迎使用安装程序”屏幕时,按 R 键启动故障恢复控制台。如果您使用的是双启动或多启动计算机,请选择需要从故障恢复控制台访问的安装。 根据提示,键入管理员密码。如果管理员密码为空,只需按 Enter 键。在命令提示符下输入:copy X:\i386\ntldr C:\(回车),copy X:\i386\ntdetect.com C:\(回车),(X:你的光驱,C:操作系统安装目录)如果系统提示是否覆盖文件,键入y,然后按回车键。要查看有关特定命令的信息,请在命令提示符下键入 help 命令名,然后按 Enter 键。要退出并重新启动计算机,请在命令提示符下键入 exit,然后按 Enter 键。
 
  处理过程发现,将系统盘放入引导后,也能正常启动。可能是因为系统丢失了ntldr和ntdetect.com文件,所以在系统盘中找到。正常启动。然后直接在系统盘里找到了ntldr和ntdetect.com,直接复制到C盘目录下。
 

[编辑本段]
[1]Win XP中NTLDR在系统引导过程中的作用

  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将加载NTOSKRNL.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 2003 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在启动过程中如果发生致命错误,那么将以显示蓝屏信息取代自动重启的设置,除此之外,我们也可以通过在系统属性中来关闭自动重启的设置。
 
  具体操作方法:在“系统属性”窗口中点击“高级”标签,然后在“启动和故障恢复”栏里点击“设置”按钮,接着在打开的“启动和故障恢复”窗口中取消“系统失败”栏中“自动重新启动”这一选项的选中状态,点击“确定”,然后再在弹出的警告窗口中点击“确定”即可。