标题: [转贴]笔记本硬盘的外接分区与“NTLDR is Missing” [打印本页] 作者: 无边思绪 时间: 2007-11-11 22:05 标题: [转贴]笔记本硬盘的外接分区与“NTLDR is Missing” 笔记本硬盘的外接分区与“NTLDR is Missing”
看到很多贴子中提到,安装Windows2000出现NTLDR is missing错误。
出现这个错误有各种各样的情况,但共性就是这些硬盘普遍都是在作为台式机外接硬盘时分区及格式化的。
我装各种系统都是选用启动盘+本机分区的方法,在DOS下,Windows各版本下升级或者全新安装NT/2000/XP次数很多,从未出现过ntldr丢失的问题。
其中加黑的行就是我分析可能产生问题的项。前四个值在某些异源性安装条件下,会不准确。最后这个Flags标志项含有多个唯一性的标志,如起始簇号(A_BF_BPB_RootDirStrtClus)等;在不同的环境中,系统会写入不相同值。当改变环境后,这些项与物理磁盘实际的值不匹配时,Windows 2000 和 XP 就会产生错误,无法加载该FAT32分区,因为BPB信息不准确,从而最终报告 NTLDR is missing。实际上是因为这个值的不匹配,影响了下一步NTLDR的加载。
有趣的是,来回挪动Windows95/98/me从来不会出现这个问题,因为Win95/98/me忽略了对这个结构中某些值的检查,即便是无效的也仍然会继续启动程序。所以这个BPB值的错误问题,根据微软描述,只存在于用FAT32分区,使用int13h扩展启动方式(目前绝大多数硬盘都是此类)安装Windows2000/xp的情况下。同理,根据微软的问题报告,当用异源的Windows98/me克隆(如不同磁盘ghost恢复来的win98)升级Win2k/xp的时候,也会遇到同样的 ntldr is missing 问题。产生这个问题的原因是BPB的HEADS字段,错误的磁头数导致WINDOWS NT不能继续启动过程,而Win95/98/me同样忽略这个检查。
说了这么多大家应该明白问题的根源了。在不同的运行环境下(尤其是不同型号的硬盘控制器,反映出来就是不同型号或者品牌的电脑),起始簇的物理位置,标号不同,或者物理磁盘统计信息的不同,就造成了硬盘BPB信息在不同电脑上的不准确,从而导致了Windows 2000/XP 启动过程失败,NTLDR is missing。
这里也提供几个解决办法:
1。首先考虑要在本机上进行分区。只有这样才能写入正确的和匹配的BPB值,不会使得Windows NT Loader 无法定位。在其他机器,尤其是其他型号硬盘控制器下接驳分区,大多数情况下,会导致写入不同的BPB值。