系统启动过程2.docx

上传人:b****6 文档编号:4780847 上传时间:2022-12-08 格式:DOCX 页数:24 大小:41.52KB
下载 相关 举报
系统启动过程2.docx_第1页
第1页 / 共24页
系统启动过程2.docx_第2页
第2页 / 共24页
系统启动过程2.docx_第3页
第3页 / 共24页
系统启动过程2.docx_第4页
第4页 / 共24页
系统启动过程2.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

系统启动过程2.docx

《系统启动过程2.docx》由会员分享,可在线阅读,更多相关《系统启动过程2.docx(24页珍藏版)》请在冰豆网上搜索。

系统启动过程2.docx

系统启动过程2

Windows系统启动过程

此文译自WindowsXPResourceKitWebResource中UnderstandingtheStartupProcess一章

为了诊断和修复启动故障,您需要理解启动过程中发生了什么。

第一步隔离启动问题,判断问题是发生在Microsoft®Windows®XPProfessional启动之前还是之后。

启动失败的根本原因,包括相关因素,可能是来自多方面的,比如用户错误,应用程序错误,硬件问题,病毒问题。

如果问题过于严重,您可能需要重新安装WindowsXPProfessional或者从备份介质中恢复文件。

在基于x86的系统上,发生在启动故障operatingsystemloader(Ntldr)可能意味着启动文件丢失或者被删除,或者硬盘主引导记录(MBR)损坏,或者分区表,或者引导扇区的损坏。

如果问题发生在启动期间,那么系统可能存在不兼容的软件或者驱动,不兼容或者设置错误的硬件,或者系统文件损坏。

基于Itanium系统的计算机启动或者和x86系统类似。

详见后面的章节"StartupPhasesforItanium-basedSystems"

基于x86系统的启动过程

WindowsXPProfessional启动过程和Microsoft®WindowsNT®version4.0andMicrosoft®Windows®2000类似,区别于Microsoft®MS-DOS®,Microsoft®Windows®95,Microsoft®Windows®98,andMicrosoft®Windows®MillenniumEdition(WindowsMe)这些系统。

所有运行WindowsXPProfessional的系统都遵循如下启动顺序:

上电自检(POST)阶段

初始化启动阶段

启动装载阶段

检测、设置硬件阶段

系统核心装载阶段

登陆阶段

上述的启动过程适用于正常关机后的系统启动或者重新启动,从休眠或者待机状态恢复的情况例外,后者请参考后面的章节"ResolvingPowerManagementProblemsonx86-basedSystems"

为了WindowsXPProfessional能够引导,系统和启动分区必须包含表28.1.中的文件。

表28.1基于x86系统上WindowsXPProfessional的启动文件

文件名文件所处位置描述

Ntldr系统分区根目录操作系统装载器

Boot.ini系统分区根目录它指定WindowsXPProfessional的安装路径。

对于多引导系统

Boot.ini包含一个显示在启动菜单上的操作系统选择菜单。

Bootsect.dos(仅适用于多引导系统)系统分区根目录Ntldr将会装载此文件,以读取可能包含MS-DOS,Windows95,Windows98,orWindowsMe等OS的WindowsXPProfessional多引导系统设定。

Bootsect.dos包含这些操作系统的引导扇区,文件属性为系统、隐藏。

N系统分区根目录此文件将扫描硬件设置信息,并传递给Ntldr

Ntbootdd.sys系统分区根目录(SCSI或者ATA等固件本身禁用或者不支持INT-13中断扩展调用的设备需要此文件).该驱动程序用于访问不使用BIOS,而连接到SCSI或者ATA的硬盘驱动器,Thecontentsofthisfiledependonthestartupcontrollerused.

WindowsXPProfessional操作系统的核心(也被叫做kernel)。

作为kernel的一部分,运行在处理器特权模式下的代码,允许直接访问系统数据和硬件。

Ntoskrnl.exesystemroot\System32

在安装WindowsXPProfessional操作系统期间,如果是单处理器系统,setup程序从操作系统光盘上复制Ntoskrnl.exe文件,如果是多处理器系统,Setup从安装光盘上复制Ntoskrnlmp.exe并将它重命名为Ntoskrnl.exe.

硬件抽象层动态(HAL)链接库文件。

HALabstracts从操作系统提取底层硬件信息,并给相同类型的设备,提供公用编程接口。

Hal.dllsystemroot\System32

Microsoft®Windows®XPProfessional操作系统光盘包含若干Hal文件,Setup将适合您系统硬件设置的文件复制到您的计算机,并重命名为Hal.dll.

Systemregistryfilesystemroot\System32\Config\System此注册表文件包含创建HKEY_LOCAL_MACHINE\SYSTEM注册表键值所需要的数据。

该键值包含了操作系统启动设备和系统服务所需要的信息。

Devicedriverssystemroot\System32\Drivers一些硬件设备的驱动程序文件,比如键盘、鼠标、显卡。

注:

WindowsNT4.0,Windows2000,andWindowsXPProfessional定义"系统"和"启动"分区有别于启动操作系统。

系统卷包含启动WindowsXPProfessional所必须的文件,比如Windowsloader(Ntldr)。

启动卷WindowsXPProfessional操作系统文件和文件夹比如systemroot和systemroot\System32。

在基于x86系统的计算机上,启动卷和系统卷可以但不一定是同一个卷。

在表28.1中,systemroot是众多环境变量之一,用于将象文件和文件路径这样的字符串关联到变量,以便WindowsXPProfessional应用程序和服务使用。

例如,通过使用环境变量,脚本不同修改就可以运行在不同环境设置的计算机上。

您可以通过在命令行执行set命令查看环境变量列表。

关于环境变量,请参考WindowsXPProfessional中关于"Toaddorchangethevaluesofenvironmentvariables"的描述;关于系统文件的信息,详见"SystemFilesReference"

上电自检

当您打开计算机的时候,中央处理器单元(CPU)开始执行存放在基本输入输出系统(BIOS)中的指令。

BIOS,一种固件,包含一些代码,处理器依靠这些代码启动计算机,与外围标准设备通讯,形成一个最小环境,从而得以加载其他复杂代码,它与计算机所安装的操作系统无关。

计算机启动过程的第一步就是上电自检(POST),POST负责完成如下系统和检测功能:

执行硬件初始化检测,比如测试当前内存总数

校验启动操作系统所必须的设备,比如硬盘

从位于主板上的CMOS中检索系统设置

即便当您停机后,CMOS存储器中也会保持一些信息,例如存储在CMOS存储器中的硬件设置包含启动设置和即插即用信息。

当主板上电自检(POST)完成后,那些拥有自己固件的附加板卡(比如显卡和硬盘控制器)开始执行自我检测。

设定这些系统和外围设备固件参数,请参考相关厂商提供的系统文档。

初始化启动阶段

在上电自检(POST)阶段后,存储在CMOS存储器中的那些设定,比如启动设定,指明了可以引导操作系统的设备。

比如,如果启动设定指定软盘作为启动的首选设备,而将硬盘作为次要设备(有些固件中显示为"A,C"),那么启动时将可能发生如下情形:

软驱中插有软盘

BIOS将搜索设定为启动软盘的软驱,如果存在,将会把0面0道1扇区(软盘的启动扇区)加载到内存。

如果软盘不能启动,将会提示如下错误:

Non-systemdiskordiskerrorReplaceandpressanykeywhenready计算机将会一直显示上面的信息,直到您插入一张启动软盘或者驱出软盘重新启动计算机。

软驱中没有软盘

如果您重新启动计算机后没有插入软盘,计算机将会装载位于主引导记录(MBR)所在区域的指令。

MBR位于启动硬盘的第一个扇区,包含一些指令(称为启动代码)和一个标示主分区和扩展分区的表(称为分区表)。

BIOS将MBR加载到内存,并将控制权移交给MBR中的代码。

计算机然后搜索分区表,查找激活分区。

激活分区的第一个扇区包含启动代码,这些代码允许计算机进行如下操作:

确定所使用的文件系统

定位并启动操作系统装载文件,Ntldr.

如果激活分区不存在或者启动扇区信息丢失、错误,系统将提示如下信息:

InvalidpartitiontableErrorloadingoperatingsystemMissingoperatingsystemBOOT:

Couldn'tfindNTLDRNTLDRismissing如果激活分区定位成功,启动分区中的代码将会找到并开始启动Ntldr,随BIOS完成使命,释放控制权

关于磁盘和文件系统,MBR,分区以及启动扇区的一些更为详细的信息,请查看"FileSystems"和"TroubleshootingDisksandFileSystems"

指定其他启动设备的启动顺序

除此之外,一些计算机固件允许从其他设备引导操作系统,比如:

CD-ROMs、网卡、可移动存储介质,比如LS-120驱动器或者IomegaZip驱动器

接驳在便携式计算机上的一些存储器

在大多数的计算机上都允许您指定启动次序,比如"CDROM,A,C".当您指定"CDROM,A,C"这样的启动顺序的时候,那么启动时就会是如下情况:

计算机搜索CD-ROM作为启动介质。

如果存在可以启动的CD(光盘),计算机将使用作为启动设备,否则计算机将按照设定的启动次序寻找下一个启动设备。

计算机搜索软盘作为启动介质。

如果存在可以启动的软盘,计算机将使用软盘作为启动设备。

否则将给出错误信息,并按照设定的启动次序寻找下一个启动设备。

计算机使用硬盘作为启动设备。

当CD-ROM驱动器和软盘驱动器都是空的时候,计算机将只会使用硬盘作为启动设备。

不过,引导介质上的代码对硬盘进行传输控制的情况是个例外。

比如,当您使用可引导的WindowsXPProfessional操作系统光盘引导系统的时候,Setup程序将会检测是否存在可用的硬盘以用于WindowsXPProfessional安装过程,如果检索到,那么系统将会提示如下字样PressanykeytobootfromCD,这将给您一个选择,如果不按任何键就会跳过CD-ROM启动。

您不能使用一个不能启动的光盘引导系统,同时一张无法启动的光盘将可能增加系统启动时间,如果不打算从光盘引导系统,请在启动前将光盘从CD-ROM驱动器中取出。

关于启动顺序的选项,请参考您的系统文档。

启动装载阶段

Ntldr从启动分区装载启动文件,然后进行如下步骤:

设置x86系统处理器进入32位内存保护模式运行

基于x86的计算机启动的时候运行在实模式,此在模式下,处理器禁止了一些功能,以便兼容于运行于8位和16位处理上的软件。

随后Ntldr将处理器切换到32位模式,这种模式下,允许访问大容量内存,并可以运行WindowsXPProfessional

启动文件系统

Ntldr包含一些允许WindowsXPProfessional读写NTFS或者文件分配表(FAT16orFAT32)文件系统所需要的程序代码。

读取Boot.ini文件

Ntldr分析Boot.ini文件以确定操作系统启动分区的位置。

如果使用单系统启动设定,那么Ntldr将随后启动N初始化硬件检测.如果存在多系统启动,这可能包括WindowsXPProfessional,Windows2000,WindowsNT4.0,Windows95,Windows98,WindowsMe,或者MS-DOS以及其他可能的操作系统,您将会在启动的时候看到一个操作系统的选择菜单。

注:

运行WindowsNT4.0的计算机如果需要访问之前挂载在Windows2000orWindowsXPProfessional下的NTFS卷,需要安装至少ServicePack4。

关于NTFS互操作性信息,请参考"FileSystems"

如果您选择WindowsXPProfessional,Windows2000,orWindowsNT4.0,Ntldr将随后启动硬件检测阶段,如果没有就会引导启动扇区的其他系统。

如果您选择Windows95,Windows98,WindowsMe,orMS-DOS,Ntldr将会扫描Bootsect.dos文件,读取其中所包含的MBR代码,并执行它。

关于Boot.ini的其他信息请参考"ReviewingandCorrectingBoot.iniSettingsonx86-basedSystems"

检测硬件和硬件配置文件

进入此阶段,Ntldr启动N,后者将执行基础硬件扫描。

随后Ntldr扫描Boot.ini信息,以及保存在注册表中的硬件和软件信息,传送给Ntoskrnl.exe。

N检测硬件配置信息(比如便携计算机上接驳或未接驳设置)和保存在AdvancedConfigurationandPowerInterface(ACPI)表中的信息。

ACPI兼容固件允许WindowsXPProfessional检测设备电源管理功能和设备资源需求。

关于ACPI请参考

检测、设置硬件阶段

在读取Boot.ini并完成其任务后,Ntldr启动N。

在x86系统上N调用系统例行程序收集已经安装的硬件信息,并将收集的信息返回给Ntldr,Ntldr将这些信息收集后存入内部数据库,然后启动Ntoskrnl.exe并将信息传递给它。

N所收集的硬件设备的信息如下:

信息固件信息,比如日期和时间

总线和板卡类型

显卡

键盘

通讯端口

硬盘

软盘

输入设备(比如鼠标)

并行端口

安装在IndustryStandardArchitecture(ISA)总线上的设备

N在非ACPI兼容计算机的设备扫描中扮演了重要的角色。

因为在这些类型的计算机上,固件而不是操作系统决定了分配给设备的资源,对于使用ACPI固件的计算机,WindowsXPProfessional对硬件设备分配资源。

在这个阶段,N收集硬件信息,WindowsXPProfessional为桌面计算机创建一个单独的默认硬件配置文件,而为便携计算机创建两个缺省的配置文件。

对于便携计算机,操作系统基于当前计算机上硬件状态选择适当的配置文件。

桌面型计算机.Profile1

便携式计算机.

DockedProfile

UndockedProfile

硬件配置文件对于便携式计算机是非常有用的,因为这些计算机的硬件状态通常都不是静态的,启动的时候,没有列表在特定的硬件配置文件中的设备驱动是不会被加载的。

关于创建和使用硬件配置文件的信息,请参考WindowsXPProfessional帮助和支持中心,也可以参考知识库文档225810,"HowtoCreateHardwareProfilesonWindows2000–BasedMobileComputers,"查找此文档,请查询WebResources页面上的知识库链接,同时您也可以查看"ManagingDevices"和"SupportingMobileUsers"

核心装载阶段

Ntldr负责将Windows核心层(Ntoskrnl.exe)和硬件抽象层(HAL)装载到内存。

您的系统所使用的Hal.dll文件是可以发生变化的。

在安装期间,WindowsXPProfessional安装程序从若干HAL文件中选择一个复制到系统,(请参看表28.2关于这些文件的列表)并重名为Hal.dll。

在设备管理器中查看计算机描述

1.在运行对话框,输入devmgmt.msc,点击确定。

2.在设备管理器展开计算机察看您计算机的描述。

通过比较设备管理器中的描述和下面表28.2中的描述,您可以确定从WindowsXPProfessional操作系统光盘复制到您系统中的HAL文件

Table28.2关于不同Hal.dll文件的描述

设备管理器中计算机的描述复制的HAL文件

ACPI多处理器PCHalmacpi.dll

ACPI单处理器PCHalaacpi.dll

AdvancedConfigurationandPowerInterface(ACPI)PCHalacpi.dll

MPS多处理器PCHalmps.dll

MPS单处理器PCHalapic.dll

标准PCHal.dll

CompaqSystemPro多处理器或者完全兼容Halsp.dll

核心层kernel和硬件抽象层HAL初始化一组软件组件,他们统称为windows执行体。

Windows执行体扫描储存在注册表controlsets中的信息,并启动服务和驱动程序。

关于Windowsexecutiveservices,请查看"CommonStopMessagesforTroubleshooting"

控制集ControlSets

Ntldr从HKEY_LOCAL_MACHINE\SYSTEM注册表子键中读取相关信息,该子健中的数据创建于\System32\Config\System文件,故而Ntldr能够决定哪些设备驱动在系统启动时装载。

通常,注册表中存在几个controlsets,其后面的序号取决于系统设定多长时间变更一次。

提示:

如非必要不要直接编辑注册表。

注册表编辑器绕开了系统保护机制,您的修改有可能会破坏系统,严重者甚至需要重新安装Windows。

如果你必须编辑注册表,请事先作备份,并详细阅读Microsoft®Windows®2000ServerResourceKit中关于RegistryReference的章节

典型的注册表控制集controlset子键如下:

\CurrentControlSet,一个注册在\Select\Current项中,指向ControlSetxxx子键的指针(xxx代表一个controlset编号,比如001)

\Clone,一份\CurrentControlSet的拷贝,当您每次启动计算机的时候创建。

(gnaw0725注:

此处原文如此,有待考证)

\Select,包含如下键值:

Default,指针指向系统指定用户下次登陆所使用的控制集编号(比如001=ControlSet001)。

如果没有错误发生,或者并非由LastKnownGood启动项所设置,此controlset编号将为Default,Current和LastKnownGood注册项所影响(假定当前用户可以成功登录)

Current,指向此次用于启动系统的控制集

Failed,指向没有成功启动WindowsXPProfessional的控制集。

当使用LastKnownGood选项启动系统时,此项被更新(gnaw0725注:

表示WindowsXP在其中保存失败启动产生的数据的控件组。

此控件组在用户第一次调用“最近一次的正确配置”选项之前并不实际存在。

LastKnownGood,指向上次用户会话所使用的控制集。

当用户登录的时候,LastKnownGood控制集被前一次用户会话使用的设置信息所更新。

除非您从WindowsAdvancedOptions菜单中选择LastKnownGoodConfiguration,Ntldr将使用Default键值所标示的控制集。

核心层使用Ntldr提供的内部数据结构创建HKEY_LOCAL_MACHINE\HARDWARE子键,其中包含在系统启动阶段收集的硬件信息。

这些数据包含信息包括各种硬件组件和分配给每个设备的系统资源。

您可以通过查看在启动过程中显示的进度指示器来监控核心层加载过程关于LastKnownGoodConfiguration的相关信息,您可以查阅"ToolsforTroubleshooting"

WindowsXPProfessional支持设备扩展。

新的或者更新的驱动程序并不存在于WindowsXPProfessional操作系统光盘上,而是由于硬件厂商提供。

驱动程序是核心模式组件,需要Driversarekernel-modecomponentsrequiredbydevicestofunctionwithinanoperatingsystem.服务是支持操作系统功能和应用程序的组件。

与用户应用程序相比,服务可以运行在一个不同的上下文,通常不会提供用户可以设置的选项。

服务,比如脱机打印PrintSpooler,不需要用户登录即可运行,而且与登陆到系统的用户无关。

WindowsXPProfessional驱动程序和服务系统文件通常被存放在systemroot\System32和systemroot\System32\Drivers目录下,以.exe,.sys,or.dll等扩展名保存。

驱动程序也是服务,因此在核心层初始化期间,Ntldr和Ntoskrnl.exe按照存储在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\servicename注册表子键中的数值来确定装载的驱动程序和服务次序。

例如,Ntldr首先搜索Services子键中Start值为0的服务,比如硬盘控制器。

当Ntldr启动Ntoskrnl.exe后,一个Ntoskrnl.exe

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1