《[精选]诊断和修复启动故障》由会员分享,可在线阅读,更多相关《[精选]诊断和修复启动故障(9页珍藏版)》请在金锄头文库上搜索。
1、一系统启动的简要说明:第一步: 当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还不太稳定,主板上的控制芯片组会向CPU发出并保持一个RESET(重置)信号,让CPU内部自动恢复到初始状态,但CPU在此刻不会马上执行指令。当芯片组检测到电源已经开始稳定供电了(当然从不稳定到稳定的过程只是一瞬间的事情),它便撤去RESET信号(如果是手工按下计算机面板上的Reset按钮来重启机器,那么松开该按钮时芯片组就会撤去RESET信号),CPU马上就从地址FFFF0H处开始执行指令,从前面的介绍可知,这个地址实际上在系统BIOS的地址范围内,无论是Award BIOS还是AMI BIOS,放
2、在这里的只是一条跳转指令,跳到系统BIOS中真正的启动代码处。第二步: 系统BIOS的启动代码首先要做的事情就是进行POST(PowerOn Self Test,加电后自检),POST的主要任务是检测系统中一些关键设备是否存在和能否正常工作,例如内存和显卡等设备。由于POST是最早进行的检测过程,此时显卡还没有初始化,如果系统BIOS在进行POST的过程中发现了一些致命错误,例如没有找到内存或者内存有问题(此时只会检查640K常规内存),那么系统BIOS就会直接控制喇叭发声来报告错误,声音的长短和次数代表了错误的类型。在正常情况下,POST过程进行得非常快,我们几乎无法感觉到它的存在,POST
3、结束之后就会调用其它代码来进行更完整的硬件检测。POST上电自检是BIOS设置的一个功能。计算机接通电源后,系统首先由POST(POWER ON SELF TEST,上电自检)程序来对内部各个设备进行检查,通常完整的POST自检将包括CPU、640K基本内存(640K BASE MEMORY)、1MB以上扩展内存(EXTEND MEMORY)、ROM(READ-ONLY MEMORY,只读存储器)、主板、CMOS存储器、串口、并口、显卡、软盘子系统、硬盘子系统、键盘进行测试,一旦发现问题,系统将给出警告或鸣笛警告。)第三步: 接下来系统BIOS将查找显卡的BIOS,前面说过,存放显卡BIOS的
4、ROM芯片的起始地址通常设在C0000H处,系统BIOS在这个地方找到显卡BIOS之后就调用它的初始化代码,由显卡BIOS来初始化显卡,此时多数显卡都会在屏幕上显示出一些初始化信息,介绍生产厂商、图形芯片类型等内容,不过这个画面几乎是一闪而过。系统BIOS接着会查找其它设备的BIOS程序,找到之后同样要调用这些BIOS内部的初始化代码来初始化相关的设备。第四步: 查找完所有其它设备的BIOS之后,系统BIOS将显示出它自己的启动画面,其中包括有系统BIOS的类型、序列号和版本号等内容。第五步: 接着系统BIOS将检测和显示cpu的类型和工作频率,然后开始测试所有的RAM,并同时在屏幕上显示内存
5、测试的进度,我们可以在CMOS设置中自行决定使用简单耗时少或者详细耗时多的测试方式。第六步: 内存测试通过之后,系统BIOS将开始检测系统中安装的一些标准硬件设备,包括硬盘、CDROM、串口、并口、软驱等设备,另外绝大多数较新版本的系统BIOS在这一过程中还要自动检测和设置内存的定时参数、硬盘参数和访问模式等。第七步: 标准设备检测完毕后,系统BIOS内部的支持即插即用的代码将开始检测和配置系统中安装的即插即用设备,每找到一个设备之后,系统BIOS都会在屏幕上显示出设备的名称和型号等信息,同时为该设备分配中断、DMA通道和I/O端口等资源。第八步: 到这一步为止,所有硬件都已经检测配置完毕了,
6、多数系统BIOS会重新清屏并在屏幕上方显示出一个表格,其中概略地列出了系统中安装的各种标准硬件设备,以及它们使用的资源和一些相关工作参数。第九步: 接下来系统BIOS将更新ESCD(Extended System Configuration Data,扩展系统配置数据)。ESCD是系统BIOS用来与操作系统交换硬件配置信息的一种手段,这些数据被存放在CMOS(一小块特殊的RAM,由主板上的电池来供电)之中。通常ESCD数据只在系统硬件配置发生改变后才会更新,所以不是每次启动机器时我们都能够看到“Update ESCD Success”这样的信息,不过,某些主板的系统BIOS在保存ESCD数据时
7、使用了与Windows 9x不相同的数据格式,于是Windows 9x在它自己的启动过程中会把ESCD数据修改成自己的格式,但在下一次启动机器时,即使硬件配置没有发生改变,系统BIOS也会把ESCD的数据格式改回来,如此循环,将会导致在每次启动机器时,系统BIOS都要更新一遍ESCD,这就是为什么有些机器在每次启动时都会显示出相关信息的原因。第十步: ESCD更新完毕后,系统BIOS的启动代码将进行它的最后一项工作,即根据用户指定的启动顺序从软盘、硬盘或光驱启动。以从C盘启动为例,系统BIOS将读取并执行硬盘上的主引导记录,主引导记录接着从分区表中找到第一个活动分区,然后读取并执行这个活动分区
8、的分区引导记录,而分区引导记录将负责读取并执行IO.SYS,这是DOS和Windows 9x最基本的系统文件。Windows 9x的IO.SYS首先要初始化一些重要的系统数据,然后就显示出我们熟悉的蓝天白云,在这幅画面之下,Windows将继续进行DOS部分和GUI(图形用户界面)部分的引导和初始化工作。为了诊断和修复启动故障,您需要理解启动过程中发生了什么。第一步隔离启动问题,判断问题是发生在WindowsXP启动之前还是之后。 二系统启动的详细说明:启动失败的根本原因,包括相关因素,可能是来自多方面的, 比如用户错误,应用程序错误,硬件问题,病毒问题。如果问题过于严重,您可能需要重新安装
9、Windows XP或者从备份介质中恢复文件。在基于x86的系统上,发生在启动故障 operating system loader (Ntldr) 可能意味着启动文件丢失或者被删除,或者硬盘主引导记录 (MBR)损坏, 或者分区表,或者引导扇区的损坏。如果问题发生在启动期间,那么系统可能存在不兼容的软件或者驱动,不兼容或者设置错误的硬件,或者系统文件损坏。基于 x86 系统的启动过程Windows XP启动过程和NT、2000 类似,区别于MS-DOS、95、98、Me 这些系统。所有运行 Windows XP的系统都遵循如下启动顺序:上电自检 (POST) 阶段 初始化启动阶段 启动装载阶段
10、 检测、设置硬件阶段 系统核心装载阶段 登陆阶段上述的启动过程适用于正常关机后的系统启动或者重新启动,从休眠或者待机状态恢复的情况例外,后者请参考后面的章节 “Resolving Power Management Problems on x86-based Systems“ 为了 Windows XP Professional 能够引导,系统和启动分区必须包含表 28.1.中的文件。表 28.1基于x86 系统上 Windows XP Professional 的启动文件文件名 文件所处位置 描述 Ntldr 系统分区根目录 操作系统装载器 Boot.ini 系统分区根目录 该文件指定 Win
11、dows XP Professional 的安装路径。对于多引导系统 Boot.ini 包含一个显示在启动菜单上的操作系统选择菜单。 Bootsect.dos (仅适用于多引导系统) 系统分区根目录 Ntldr 将会装载此文件,以读取可能包含 MS-DOS, Windows 95, Windows 98, or Windows Me 等OS的Windows XP Professional 多引导系统设定。 Bootsect.dos 包含这些操作系统的引导扇区,文件属性为系统、隐藏。 N 系统分区根目录 此文件将扫描硬件设置信息,并传递给 Ntldr Ntbootdd.sys 系统分区根目录 (
12、SCSI 或者ATA 等固件本身禁用或者不支持 INT-13 中断扩展调用的设备需要此文件). 该驱动程序用于访问不使用 BIOS,而连接到 SCSI 或者 ATA 的硬盘驱动器, The contents of this file depend on the startup controller used. Ntoskrnl.exe systemrootSystem32 Windows XP Professional操作系统的核心 (也被叫做 kernel) 。作为 kernel的一部分,运行在处理器特权模式下的代码,允许直接访问系统数据和硬件。 在安装Windows XP Professi
13、onal 操作系统期间,如果是单处理器系统,setup程序从操作系统光盘上复制 Ntoskrnl.exe 文件,如果是多处理器系统,Setup 从安装光盘上复制 Ntoskrnlmp.exe 并将它重命名为Ntoskrnl.exe. Hal.dll systemrootSystem32 硬件抽象层动态(HAL)链接库文件。HAL abstracts 从操作系统提取底层硬件信息,并给相同类型的设备,提供公用编程接口。 Microsoft® Windows® XP Professional 操作系统光盘包含若干 Hal 文件,Setup 将适合您系统硬件设置的文件复制到您的计算机,
14、并重命名为 Hal.dll. System registry file systemrootSystem32ConfigSystem 此注册表文件包含创建HKEY_LOCAL_MACHINESYSTEM 注册表键值所需要的数据。该键值包含了操作系统启动设备和系统服务所需要的信息。 Device drivers systemrootSystem32Drivers 一些硬件设备的驱动程序文件,比如键盘、鼠标、显卡。 注:Windows NT 4.0, Windows 2000, and Windows XP Professional 定义 “系统“ 和 “启动“ 分区有别于启动操作系统。系统卷包含
15、启动Windows XP Professional所必须的文件,比如 Windows loader (Ntldr)。启动卷 Windows XP Professional 操作系统文件和文件夹比如 systemroot 和 systemrootSystem32。在基于 x86 系统的计算机上,启动卷和系统卷可以但不一定是同一个卷。在表 28.1中,systemroot是众多环境变量之一,用于将象文件和文件路径这样的字符串关联到变量,以便 Windows XP Professional应用程序和服务使用。例如,通过使用环境变量,脚本不同修改就可以运行在不同环境设置的计算机上。您可以通过在命令行执行 set 命令查看环境变量列表。关于环境变量,请参考Windows XP Professional中关于 “To add or change the values of environment variables“ 的描述;关于系统文件的信息,详见 “System Files Reference“ 上电自检当您打开计算机的时候,中央处理器单元 (CPU) 开始执行存放在基本输入输出系统 (BIOS)中的指令。 BIOS, 一种