免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 992 | 回复: 0
打印 上一主题 下一主题

“NTLDR is missing”故障的解决 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-13 15:40 |只看该作者 |倒序浏览
平时,我们偶尔会遇到系统启动时显示“NTLDR is missing”而无法进入系统的情况。其实导致该故障的原因多,但网上绝大部分文章都只针对一种情况进行讨论。下面笔者将各种情况和原因进行汇总,希望对大家有所帮助。
一、NTLDR损坏或丢失
这种情况解决起来比较简单,而且比较常见,所以也是我们遇到该故障时首先采取的一种方法,即在Recovery Console或其他系统下,把系统的安装光盘中i386目录下的NTLDR文件复制到系统分区(通常为C盘)中即可。
二、NTLDR没有损坏或丢失
如果把光盘中的NTLDR文件复制到C盘后重新启动,问题依然没有解决,这时我们可以认识到,导致该故障的不是NTLDR损坏或丢失,而是系统视而不见。为什么会这样呢?一般说来,导致该现象的原因有以下几点:
1、采用非系统磁盘来启动电脑。如果用一些非系统磁盘引导启动电脑,比如软盘、光盘、USB移动存储设备等,就可能会出现此问题。解决的方法是取出这些设备,然后重新启动电脑即可。
2、BIOS中硬盘中的信息被更改,检测方式被设置为手动。
由于硬盘信息被篡改,导致系统找不到硬盘中的系统分区,所以就找不到系统分区中的启动文件NTLDR了。只要在BIOS的“Standard CMOS Setup”中,把硬盘检测方式设置为“Auto(自动)”即可。
3、系统分区没有被激活。如果用于存放启动文件(包括BOOT.INI、NTLDR、NTDETECT.COM)的系统分区没有被激活而是激活了其他主分区,那么就会导致系统启动时找不到NTLDR文件。解决的方法时用Windows 98启动盘启动电脑,然后运行Fdisk,选择“Set active partition”来激活系统分区。如果仍无法解决,就需要在Recovery Console下运行FIXBOOT命令来使活动分区成为可启动的分区。
4、硬盘中的主引导记录(MBR)被破坏,导致系统找不到系统分区。解决的方法是在Recovery Console下运行fixmbr命令,或者是用Windows 98启动盘启动电脑,然后运行FDISK /MBR。
5、系统分区的MFT根文件夹碎片较多。主文件表(MFT)是一个卷上每一个文件的索引,如果 MFT 根文件夹包含多个文件,则MFT就会变得非常零碎,以至于需要另外创建一个分配索引。因为文件是按字母顺序映射到分配索引中的,NTLDR 文件可能会被推到第二个分配索引中。一般情况下不建议用户将文件直接写入根文件夹,尤其是大量文件。如果有某个程序定期在系统分区的根文件夹中创建和删除临时文件,或者将许多文件误复制到根文件夹,就会造成这一情况。但是,请神容易送神难,如果我们此时去删除那些临时文件或是复制到根文件夹的文件,主文件表(MFT)分配索引并不会降到原来的大小,所以故障依然存在。
这时候我们需要使用微软提供的一个叫bcupdate2的工具(下载地址:
http://www.poseidon.org.uk/bcupdate2.exe
)来强制更新启动代码(Boot Code)。使用方法是在其他硬盘的系统上,运行 bcupdate2 x: /f (x:代表需要修复的硬盘的系统分区),然后按“Y”确认更新启动代码即可。
6、安装了EZ-BIOS。EZ-BIOS是西部数据公司提供的一个可以通过重写分区列表来允许用户创建比 Windows 95 或 Windows 98 支持的分区更大的工具。如果安装了EZ-BIOS,那么在使用Windows 95或Windows 98升级到Windows 2000 或 Windows NT 4.0期间就会出现该故障。解决的方法是卸载EZ-BIOS。
7、BIOS过时。如果主板上的BIOS程序过时,可能会导致该故障,解决的方法是升级BIOS程序。
8、FAT32 BIOS Parameter Block (BPB) 中存在无效头(边)值。如果把一个硬盘上的系统(包括Windows 95、Windows 98 或 Windows Me)做了镜像后克隆到其他不同大小的硬盘上,然后使用这个克隆系统升级到Windows 2000或Windows XP时,就会出现在复制文件后重新启动提示“NTLDR is missing”。因为Windows 95、Windows 98 或者 Windows Me 启动代码忽略 BPB 中的头值,并且即使在值无效时仍启动程序。但是,Windows 2000 和 Windows XP 中的启动代码需要这个值,如果此值无效则启动过程不会成功。这种情况解决方法比较复杂:
step1:使用包含 Sys.com的 Windows 95、Windows 98 或者 Windows Me 启动盘来重新启动电脑。
step2:运行以下命令,在系统分区的根目录下备份msdos.sys文件:
attrib -h -r -s c:\msdos.sys
rename msdos.sys *.ysy
step3:在命令提示符中,输入 sys c:。此命令用正确的 BPB 信息重写 Windows 95、Windows 98 或者 Windows Me 启动代码。
step4:在Recovery Console下运行fixboot命令重写Windows 2000或Windows XP的启动代码。
按照以上操作后,一般可以使原来的安装程序继续进行。
总结:以上列举的故障现象及其原因都是按照由易到难,由常见到少见来排列的。大家在遇到此故障时,可以按照本文的顺序,进行故障排除。
附:另一贴
上课了,笔者打开机房的学生用服务器,结果不能正常启动,给出了这样的提示“NTLDR is missing,Press any key to restart”。这下可坏了,这台服务器是域服务器,学生机的设置是登录到域,并且学生机硬盘都加了保护,学生的作业和资料全部保存在这台服务器上。重新安装系统肯定是来不及了,并且会造成数据的丢失,笔者赶紧上网查找故障的原因,得知很可能是Ntldt、Ntdetect.com、Boot.ini几个文件丢失或破坏引起的。于是赶紧跑到另一个机房服务器处(两台服务器的设置一样),搜索“NTLDR”,结果三个文件全在C盘的根目录下,马上将这三个文件拷到故障服务器的C盘根目录下,重新启动电脑,故障依旧。情急之中,笔者忽然想到用“故障恢复控制台”来修复故障,结果真解了燃眉之急。具体操作如下:
  1. 用Windows 2000的安装盘启动电脑,进入Windows 2000 Server的安装界面;
  2. 界面提示“要修复Windows 2000中文版的安装,请按R”,按R键继续;
  3. 界面提示“要用故障恢复控制台修复Windows 2000安装”选项,按C键继续;
  4. 屏幕出现故障恢复控制台提示“C:\Winnt,要登录到哪个Windows 2000安装(要取消,请按Enter)?”,在此键入“1”,然后按Enter键;
  5. 键入管理员密码,然后按Enter键;
  6. 键入Copy F:\Simpchin\
  Windows2000\Server\I386\Ntldr c:\,按ENTER键(注:笔者使用的光盘是Windows 2000三合一光盘,如果是其他的安装盘,可以使用搜索命令查找一下ntldr文件的位置,一般在i386目录下。“f:”为我的光盘驱动器号);
  7. 键入Copy F:\Simpchin\
  Windows2000\Server\I386\Ntldr c:\,按 Enter 键,系统提示您是否覆盖文件,键入Y,然后按Enter键。
  重新启动计算机,当上课铃响起的时候,服务器已启动正常。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/19307/showart_140214.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP