Windows XP \Windows 2003
启动过程的学习及故障分析处理
(六B)
细述引导文件(B)——
NTLDR
NTLDR
:
NTLDR全称是NT Loader,是最重要系统加载程序之一,位置在
引导分区(系统卷)的根目录下,它是系统启动到引导分区阶段时的发起者、组织者和管理者。
NTLDR从引导扇区被装入并初始化后,做了一系列重要的工作:
将处理器的实模式改为32位平滑内存模式;
(此时可以运行exe程序,而这之前只能运行bat、com程序)
NTLDR开始运行适当的小文件系统
驱动程序
(小文件系统驱动程序是建立在NTLDR内部的,它能读FAT或NTFS,为下一步寻找、装载ntoskrnl.exe做好准备)
(如果选择了
NT5.x系统
(Windows NT/ Win2000 / Windows XP / Win2003/),那么NTLDR将会运行
NTDETECT.COM文件,然后将控制权交给系统文件分区中Windows文件夹中的Ntoskrnl.exe;如果选择了9X(WINDOWS95/ WINDOWS98/ WINDOWS ME),NTLDR将加载BOOTSECT.DOS,然后将控制权交给BOOTSECT.DOS。)
小提示1:NTLDR启动后,如果在系统根目录下发现有Hiberfil.sys文件且该文件有效,那么NTLDR将读取Hiberfil.sys文件里的信息并让系统恢复到休眠以前的状态,这时并不处理Boot.ini文件。
小提示2:完成Boot.ini引导选择后,此时可以按F8键,那么我们将会在启动菜单中看到高级启动模式(Last known Good,sate modes,hardware profile,Debugging mode等), 这时NTLDR将根据用户的选择来使用启动参数加载NT内核。
总结一下,NTLDR最后最重要的功能是:寻找、装载ntoskrnl.exe并准备运行之。
NTLDR具有向下兼容性,也就是说高版本的NTLDR可以启动低版本的Windows NT
操作系统,也可以引导(通过BOOTSECT.DOS)MS.DOS(即9X)
操作系统。如果你已经安装了一个高版本的操作系统,那么如果再想安装一个低版本的操作系统,那么低版本的操作系统在安装后会出现无法进入原来高版本的操作系统的
故障。问题的原因是低版本的NTLDR和NTDETECT.COM不能识别高版本操作系统的NTOSKRNL.EXE,从而造成系统不能正常启动。
NTLDR
可能出现的故障现象及处理方法:
现象:屏幕提示这个过程中,可能碰到的错误信息是下面这个:
对于NTFS文件系统,"BOOT: Couldn't find NTLDRP";
对于FAT文件系统,"NTLDR is missing";
对于NTFS文件系统,"BOOT: Couldn't find NTLDRP";
对于FAT文件系统,"NTLDR is missing";
意思为“NTLDR丢失,按任意键重启”如下图,这个错误的表明是Boot sector在分区的根目录下没有找到Ntldr。一直停在该界面,不能继续(HANG 挂起)。
处理方法:比较简单,从另外一台正常运行WINDOWS XP SP3的计算机上复制NTLDR,通过Windows PE 环境,将NTLDR粘贴至故障计算机引导分区(一般就是C盘)的根目录下即可。
说明:因为不能通过正常的方法启动,所以必须通过Windows PE(Windows PE通常是U盘启动或者光盘启动的),进入PE后,可以访问故障计算机磁盘的任意分区。
还有一种方法即是把故障计算机的硬盘拆下来,作为从盘挂在另外一台正常运行的计算机上,再把正确的NTLDR粘贴至故障计算机引导分区(此时是从盘,可以被访问及修改)。
NTLDR具有向下兼容性,也就是说高版本的NTLDR可以启动低版本的Windows NT
操作系统,WINDOWS XP SP3的NTLDR可以通用于各Windows NT
操作系统。
(待续)
本文转自madin10000 51CTO博客,原文链接:http://blog.51cto.com/20100823/1060900