NTLDR丢失的恢复

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. 重新启动电脑 , 就可以看到久违的双系统启动菜单了。
      
相关背景知识的介绍:
基本介绍
  NTLDRWindows 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 替换旧版本的就可以了。
就笔者计算机而言,由于装的是XP2003Server系统,所以在恢复时应该使较高版本的NTLDR,也就是说是20003Server所带的NTLDR
 
 
 

你可能感兴趣的:(职场,休闲,NTLDR丢失)