NTLDR is missing问题的解决

电脑启动不了,总是提示“NTLDR is missing”。网络上的好多方法不太灵光,我的机器是usb软驱,更是排不上用场。
几天来,想来弄去,终于做出来一套方法。
首先,系统盘f8光盘启动,进入nfts dos格式下,
map一下,把所在系统盘分区下的i386ntldr文件,copy到自己的机器上。
重起
光盘启动,根目录下
用下列命令:
attrib c:ntldr -s -h -r -a
copy c:ntldr a:
attrib c:ntldr +s +h +r +a
这样,另一台机的ntldr就到了你的A:盘上了.
到个人的机器,就用以下命令:
copy a:ntldr c:
attrib c:ntldr +s +h +r +a

NTLDR is missing解决方法(续)

一、其实WINDOWS  XP这个NTLDR文件丢失有个最简便的解决办法,不需要任何其它工具,就地起死回生。

1、用其它任何方式启动电脑。

2、用DIR  NTLDR  /S命令从备份文件中找出这个文件。路径比较长,比照抄下就行,复制到C盘根目录下。

3、关键是写入硬盘,不能COPY完就了事,必须执行DEBUG  NTLDR命令。命令行中执行W命令写入,Q命令退出。这样才能保证真正写入硬盘。

4、重新启动。怎么样?让我苦苦盼望的画面马上回来了,是否有点热泪盈洭呢。哈,别谢我,同是天涯沦落人,不过我比你先倒霉,找到解决它的办法罢了,别忘了如果你也有什么好东东与我分享

二、修复WindowsXP启动系统

1.在BIOS设使用光盘驱动器启动电脑

2.放入WindowsXP光盘在光盘驱动器内启动电脑

3.让光盘自动执行至停止便会出现叁个选择,按〔R〕选修复电脑便会询问要进入哪个系统,请选择WindowsXP的代号,然后输入Administrator密码(与安装时输入的Administrator密码相同)如果没有密码直接按输入键便可

4.在C:\Windows>下键入Fixboot及按〔Y〕确认

5.在C:\Windows>下键入光盘\

6.在C:\>下键入ATTRIB-HNTLDR

7.在C:\>下键入ATTRIB-SNTLDR

8.在C:\>下键入ATTRIB-RNTLDR

9.在C:\>下键入ATTRIB-HNTDETECT.COM

10.在C:\>下键入ATTRIB-SNTDETECT.COM

11.在C:\>下键入ATTRIB-RNTDETECT.COM

12.在C:\>下键入COPYX:\I386\NTLDRC:\注:X:是光盘驱动器的代号下同

13.在C:\>下键入COPYX:\I386\NTDETECT.COMC:\

14.完成后取出WinXP光盘及键入〔Exit〕会重新启动电脑

15.在BIOS选回用硬盘启动电脑便可

16.使用中文版WindowsXP如启动时选单出现乱码者可在进入WindowsXP后将WindowsXP光盘I386目录下的bootfont.bin复制至C盘的根目录下便可,如使用英文版WindowsXP者把bootfont.bin从C盘的根目录下删除便可

三、开机时不能正常启动,给出了这样的提示“NTLDR is missing,Press any key to restart”。 即使从系统盘拷贝NTLDR到c盘根目录,也无法解决。

解决办法: 用原来的WINDOWS XP安装盘“假安装”法。

具体操作方法:设置用光盘启动系统安装盘,选择C盘,会提示是否删除原来的WINDOWS目录里的系统,选择“否”,另起一个新目录名,如“WINXP”,然后点确定安装,你会看到正在拷贝系统文件,100%后就会重新启动,这时仍用光盘启动(该光盘有进入DOS的菜单),选择进入“超级DOS”(含有多种DOS应用软件,如EDIT,ATTRIB等),进入C盘(C:),运行"attrib -h -s -r boot.ini"(去掉只读和系统隐藏属性), 然后用编辑软件(如输入EDIT)打开BOOT.INI, 修改其中的timeout时间,将timeout=0 改为timeout=30, 缺省启动也更改为WINDOWS。删掉WINXP的启动项。

例如:

原BOOT.INI [boot loader] timeout=0 default=multi(0)disk(0)rdisk(1)partition(1)\WINXP [operating systems] multi(0)disk(0)rdisk(1)partition(1)\WINXP="Microsoft Windows XP Professional" /noexecute=optin /fastdetect multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect C:\="Microsoft Windows"

更改为: [boot loader] timeout=30 default=multi(0)disk(0)rdisk(1)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect C:\="Microsoft Windows"

然后保存BOOT.INI,退出,重新启动,就可以看到启动菜单,顺利进入系统。

进入系统后,把刚才"假安装"的系统目录WINXP目录删除, 把BOOT.INI属性设置为系统属性。

问题原因:Ntldt、Ntdetect.com、Boot.ini几个文件丢失或破坏引起。 如果是WIN2000,同样道理,稍微有点不同,举例看服务器版:

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键。

重新启动计算机,当上课铃响起的时候,服务器已启动正常。

四、我电脑重新格了一下。再装系统时出现了ntldr is missing  press ctrl+alt+del to restart 所有这些问题可能都是因为电脑引导的主分区出现问题,所以必须更改引导分区的路径,请注意比较: multi(0)disk(0)rdisk(1)partition(1)\ 和 multi(0)disk(0)rdisk(0)partition(1)\

不同在于:rdisk(?)

避免这些问题,安装系统区可采用FAT32格式,便于修改BOOT.INI文件。

这里提供本人设计的一个DOS软件clrboot.exe 用于修复C盘0磁道BOOT区(用于杀BOOT区病毒)http://sky.scnu.edu.cn/blog/more.asp?name=huxj&id=357

经过运行clrboot后,再安装系统可能会解决上述问题。

如果 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:\i386\ntldr c:\ copy drive:\i386\ntdetect.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

2.将该文件作为 Boot.ini 保存到磁盘。 注意:如果您是使用记事本创建的文件,请确保 .txt 扩展名没有附加在Boot.ini 文件名后面。

3.在恢复控制台命令提示符下键入下面的命令,将 Boot.ini 文件从软盘复制到计算机: copy a:\Boot.ini c:\

9.键入 exit,然后按 ENTER 键。计算机将会重新启动

NTLDR is missing汇总

平时,我们偶尔会遇到系统启动时显示“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的启动代码。

按照以上操作后,一般可以使原来的安装程序继续进行。

总结:以上列举的故障现象及其原因都是按照由易到难,由常见到少见来排列的。大家在遇到此故障时,可以按照本文的顺序,进行故障排除。

以Windows XP为例

首先检查一下CMOS中的相关的硬盘参数设置。

在Windows XP下,出现“NTLDR is missing”的错误,缺少的文件可能是 c:\NTLDR、c:\NTDETECT.COM、c:\Boot.ini、IO.sys、msdos.sys、CONFIG.SYS和bootfont.bin等等。

可以到好的Windows XP机器上,把这些文件复制到U盘(软盘),然后用光盘启动到Windows XP修复模式,将文件复制到c:\目录下面;其中的boot.ini文件记录了系统引导的硬盘以及分区的内容。或者直接从启动光盘中搜索相关文件,复制到c:\目录下面。

如果还不行的话,把原操作系统所在硬盘上的重要文件做一下备份,重装系统。

再不行的话,可能是硬盘有问题了,需进行硬盘的检测、修复、更换。