Windows XP启动组件

时间:2020-03-21 11:49:53  来源:igfitidea点击:

关于Windows XP引导过程

本文档概述了启动运行Windows XP的PC的过程中涉及的基本组件,涵盖了从启动到加载NTLDR所涉及的初始过程,然后介绍了显示列出可用OS条目的启动菜单所涉及的后续过程和事件。
并启动进入所选项目。

通用启动程序

在我们详细了解Windows XP引导过程的过程之前,重要的是首先了解任何引导加载程序之前的基本原理,从PC首次上电开始。
我们可以在此处阅读有关标准BIOS引导顺序的更详细说明,但以下内容已足够进行:

可以看出,在启动PC时会有一系列的切换。
从BIOS开始,一直到MBR,引导扇区,最后是引导加载程序。

这种看似复杂的链条有两个不同的原因。
第一个是为了可移植性:我们可以取出并替换为这四个步骤提供动力/便利的四个组件中的任何一个,而无需替换其他组件,因为所有交互都抽象为一组已达成共识的行为-这尤其重要,因为传统上,这些单独的层中的每个层都是由不同的实体制造,编写,设计或者开发的。

第二个是技术上的限制:可执行的Bootloader代码的可用空间量(阅读:允许Bootloader的大小和复杂程度)在第一阶段受到严格限制,并且随着发展而增加。
例如,MBR仅为512字节(实际上,一旦排除分区表,则只有446字节!)—相比之下,仅此段是该字节的两倍!引导扇区的大小也受到类似的限制(尽管确切的限制取决于活动分区的文件系统),并且只有在到达实际引导加载程序文件的最后阶段后,我们才可以编写冗长的引导代码。

这个冗长的过程负责所有事情,直到Windows XP引导加载程序NTLDR(NT加载程序的缩写)最终被定位并由NTFS或者FAT32引导分区的引导区中的代码调用。

Windows XP启动组件

一旦调用了活动分区的引导区中与引导相关的代码,它将在其根目录中搜索一个名为NTLDR的文件(分区本身应为NTFS或者FAT32格式)。
NTLDR本身在传统上获得了所有赞美和荣耀,但它并不能独自完成工作,充其量只是解决方案的三分之一。

NTLDR

NTLDR是Microsoft Windows使用的引导程序的名称,从Windows NT开始一直延续到Windows 2000,Windows XP和Windows Server2003.
随着Windows Vista的发布,NTLDR不再使用,现在被BOOTMGR取代。
新的Windows引导程序。
它通常位于第一个引导驱动器上活动分区的根目录中。
在典型的Windows XP安装中,这通常是C:\,并且与Windows本身安装在同一分区,尽管不一定必须如此。
尤其是在同一计算机(不同分区)上安装了多个操作系统的情况下,NTLDR会充分利用此功能。

开机启动

Boot.ini是纯文本文件,位于第一个引导驱动器上活动分区的根目录中。
NTLDR从boot.ini文件中读取启动配置信息,并使用它来显示然后启动到各种操作系统中。
BOOT.INI1可以包含对基于Windows NT的操作系统(Windows NT,Windows 2000,Windows XP,Windows Server 2003)的引用,以及指向“链加载程序”(其他操作系统的引导加载程序已保存到文件的引导加载程序)的项,以加载非-Windows操作系统。

这是将新的操作系统添加到引导加载程序的地方,可以从中修改或者替换现有条目的引导选项/参数。

NTDETECT.COM

ntdetect.com文件是Windows基于NT的操作系统的一部分,在启动过程中用于检测启动操作系统所需的硬件组件。
在启动过程中,NTLDR启动,并且ntdetect.com收集将发送到ntoskrnl.exe文件(Windows内核)的硬件信息。
在所有基于NT的操作系统:Windows XP,2003和Windows Vista中都可以找到NTDETECT.COM。
它收集以下类型的硬件信息:

  • 视频适配器
  • 硬件日期和时间
  • 键盘
  • 硬盘驱动器
  • 和其他(总线和适配器类型,软盘等)

Information and configuration collected and generated by NTDETECT are passed along to the Windows NT kernel (ntoskrnl.exe) by NTLDR when an operating system is selected.尽管Windows内核具有其他方法(通过HAL或者硬件抽象层)识别PC上的基础硬件并与之进行通信,但NTDETECT提供的信息对于促进对磁盘和其他硬件的首次访问至关重要。

Windows XP引导顺序

如上所述,NTLDR使用BOOT.INI和NTDETECT.COM最终从本地磁盘加载Windows安装。
下表总结了引导过程,重点介绍了Windows XP引导系统的各个组件之间的交互:

NTLDR使用BOOT.INI和NTDETECT.COM来显示NT引导菜单并根据用户选择加载Windows。

排除XP引导错误

如果我们有与NTDETECT或者NTLDR相关的启动错误,请检查Wiki上的其他修复程序:

  • NTLDR已压缩
  • NTDETECT失败
  • NTOSKRNL.EXE丢失或者损坏
  • 无效的BOOT.INI文件