Windows XP 启动过程概述免费下载.docx
《Windows XP 启动过程概述免费下载.docx》由会员分享,可在线阅读,更多相关《Windows XP 启动过程概述免费下载.docx(16页珍藏版)》请在冰豆网上搜索。
WindowsXP启动过程概述免费下载
一、 WindowsXP启动过程概述
首先,从我们按下计算机开关启动计算机,到登入到桌面完成启动,一共经过了以下几个阶段:
1.预引导(Pre-Boot)阶段;
2.引导阶段;
3.加载内核阶段;
4.初始化内核阶段;
5.登陆。
每个启动阶段的详细介绍
a)预引导阶段
在按下计算机电源使计算机启动,并且在WindowsXP专业版操作系统启动之前这段时间,我们称之为预引导(Pre-Boot)阶段,在这个阶段里,计算机首先运行PowerOnSelfTest(POST),POST检测系统的总内存以及其他硬件设备的现状。
如果计算机系统的BIOS(基础输入/输出系统)是即插即用的,那么计算机硬件设备将经过检验以及完成配置。
计算机的基础输入/输出系统(BIOS)定位计算机的引导设备,然后MBR(MasterBootRecord)被加载并运行。
在预引导阶段,计算机要加载WindowsXP的NTLDR文件。
b)引导阶段
WindowsXPProfessional引导阶段包含4个小的阶段。
首先,计算机要经过初始引导加载器阶段(InitialBootLoader),在这个阶段里,NTLDR将计算机微处理器从实模式转换为32位平面内存模式。
在实模式中,系统为MS-DOS保留640kb内存,其余内存视为扩展内存,而在32位平面内存模式中,系统(WindowsXPProfessional)视所有内存为可用内存。
接着,NTLDR启动内建的mini-filesystemdrivers,通过这个步骤,使NTLDR可以识别每一个用NTFS或者FAT文件系统格式化的分区,以便发现以及加载WindowsXPProfessional,到这里,初始引导加载器阶段就结束了。
接着系统来到了操作系统选择阶段,如果计算机安装了不止一个操作系统(也就是多系统),而且正确设置了boot.ini使系统提供操作系统选择的条件下,计算机显示器会显示一个操作系统选单,这是NTLDR读取boot.ini的结果。
在boot.ini中,主要包含以下内容:
[bootloader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition
(1)\WINDOWS
[operatingsystems]
multi(0)disk(0)rdisk(0)partition
(1)\WINDOWS="MicrosoftWindowsXPProfessional"/fastdetect
multi(0)disk(0)rdisk(0)partition
(2)\WINNT="WindowsWindows2000Professional"
其中,multi(0)表示磁盘控制器,disk(0)rdisk(0)表示磁盘,partition(x)表示分区。
NTLDR就是从这里查找WindowsXPProfessional的系统文件的位置的。
(*本文不会更详细地讲解boot.ini的组成结构,因为其与本主题关系不大,如果想了解,可以到一些专门的网站处查询相关信息。
)
如果在boot.ini中只有一个操作系统选项,或者把timeout值设为0,则系统不出现操作系统选择菜单,直接引导到那个唯一的系统或者默认的系统。
在选择启动WindowsXPProfessional后,操作系统选择阶段结束,硬件检测阶段开始。
在硬件检测阶段中,将收集计算机硬件信息列表并将列表返回到NTLDR,这样做的目的是便于以后将这些硬件信息加入到注册表HKEY_LOCAL_MACHINE下的hardware中。
硬件检测完成后,进入配置选择阶段。
如果计算机含有多个硬件配置文件列表,可以通过按上下按钮来选择。
如果只有一个硬件配置文件,计算机不显示此屏幕而直接使用默认的配置文件加载WindowsXP专业版。
引导阶段结束。
在引导阶段,系统要用到的文件一共有:
NTLDR,Boot.ini,,ntokrnl.exe,Ntbootdd.sys,bootsect.dos(可选的)。
c)加载内核阶段
在加载内核阶段,ntldr加载称为WindowsXP内核的ntokrnl.exe。
系统加载了WindowsXP内核但是没有将它初始化。
接着ntldr加载硬件抽象层(HAL,hal.dll),然后,系统继续加载HKEY_LOCAL_MACHINE\system键,NTLDR读取select键来决定哪一个ControlSet将被加载。
控制集中包含设备的驱动程序以及需要加载的服务。
NTLDR加载HKEY_LOCAL_MACHINE\system\service\...下start键值为0的最底层设备驱动。
当作为ControlSet的镜像的CurrentControlSet被加载时,ntldr传递控制给内核,初始化内核阶段就开始了。
d)初始化内核阶段
在初始化内核阶段开始的时候,彩色的WindowsXP的logo以及进度条显示在屏幕中央,在这个阶段,系统完成了启动的4项任务:
内核使用在硬件检测时收集到的数据来创建了HKEY_LOCAL_MACHINE\HARDWARE键。
内核通过引用HKEY_LOCAL_MACHINE\system\Current的默认值复制ControlSet来创建了CloneControlSet。
CloneControlSet配置是计算机数据的备份,不包括启动中的改变,也不会被修改。
系统完成初始化以及加载设备驱动程序,内核初始化那些在加载内核阶段被加载的底层驱动程序,然后内核扫描HKEY_LOCAL_MACHINE\system\CurrentControlSet\service\...下start键值为1的设备驱动程序。
这些设备驱动程序在加载的时候便完成初始化,如果有错误发生,内核使用ErrorControl键值来决定如何处理,值为3时,错误标志为危机/关键,系统初次遇到错误会以LastKnownGoodControlSet重新启动,如果使用LastKnownGoodControlSet启动仍然产生错误,系统报告启动失败,错误信息将被显示,系统停止启动;值为2时错误情况为严重,系统启动失败并且以LastKnownGoodControlSet重新启动,如果系统启动已经在使用LastKnownGood值,它会忽略错误并且继续启动;当值是1的时候错误为普通,系统会产生一个错误信息,但是仍然会忽略这个错误并且继续启动;当值是0的时候忽略,系统不会显示任何错误信息而继续运行
SessionManager启动了WindowsXP高级子系统以及服务,SessionManager启动控制所有输入、输出设备以及访问显示器屏幕的Win32子系统以及Winlogon进程,初始化内核完毕。
e)登陆
Winlogon.exe启动LocalSecurityAuthority,同时WindowsXPProfessional欢迎屏幕或者登陆对话框显示,这时候,系统还可能在后台继续初始化刚才没有完成的驱动程序。
提示输入有效的用户名或密码。
ServiceController最后执行以及扫描HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servives来检查是否还有服务需要加载,ServiceController查找start键值为2或更高的服务,服务按照start的值以及DependOnGroup和DepandOnService的值来加载。
只有用户成功登陆到计算机后,WindowsXP的启动才被认为是完成,在成功登陆后,系统拷贝CloneControlSet到LastKnownGoodControlSet,完成这一步骤后,系统才意味着已经成功引导了。
二、 WindowsXP引导过程错误全解
WindowsXP的引导过程可以分解为11步。
好的,下面就跟我来一招一招的拆解吧
第一步、主引导信息
主要工作:
BIOS检查主引导信息并开始引导步骤
可能出现的错误:
存取失败
状况:
显示类似“Cannotreadfromthisdatacarried”的信息。
对付它:
重写MBR
怎么做:
进入XP的修复控制台,键入fixmbr
第二步、分区表信息
主要工作:
检查引导所需的文件是否存在
可能出现的错误:
没有找到分区信息
状况:
BIOS提示“Partitionnotfound”。
对付它:
测试和修复磁盘
怎么做:
安装开源软件Testdisk(http:
//www.cgsecuring.org/wiki/TestDisk或华军下载:
接着选择“FixParitionTable”或“RecoverDeletedParition”
第三步、NTLoader
主要工作:
加载“ntldr.exe”对“boot.ini”文件进行分析并按设置执行相应步骤
可能出现的错误:
找不到该文件
状况:
出现提示信息“ntldrfilemisssing”。
对付它:
重新拷贝文件
怎么做:
在故障控制台里输入"fixbootC:
","copyG:
\i386\ntldrc:
"重新从安装光盘中拷贝ntldr.exe到磁盘上
第四步、引导菜单
主要工作:
boot.ini显示引导菜单,让用户选择WindowsXP
可能出现的错误:
丢失文件
状况:
提示信息“boot.inifilemisssing”的信息。
对付它:
修复
怎么做:
在XP的修复控制台下键入"bootcfg/rebuild"
第五步、NTDetect
主要工作:
检查安装的所有硬件设备
可能出现的错误:
失败提示或错误信息
状况:
提示信息“mdetectfilenotfound”或“DISKI/OErrorFehler=000010000NTDETECT”。
对付它:
重新拷贝文件
怎么做:
在XP的修复控制台下键入"copyG:
\i386\ c:
"
第六步、核心\硬件抽象层
主要工作:
加载Windows核心和硬件抽象层(HAL)
可能出现的错误:
蓝屏
状况:
引导中止并显示“kernelerror”蓝屏信息
对付它:
修复XP
怎么做:
使用XP安装光盘启动并选择“RepairExistingWindowsPartition”。
如果仍然无效,那么重新安装你的系统是唯一的选择。
第七步、加载驱动
主要工作:
XP加载驱动并在注册表中标示载入的驱动为“-activated”
可能出现的错误:
失败蓝屏
状况:
引导中止并显示“IRQ_LESS_OR_EQVAL”蓝屏信息。
对付它:
安全模式
怎么做:
引导到安全模式下清除出现问题的驱动程序。
如果仍无法恢复正常,则将相关的硬件组件移除。
第八步、初始化核心
主要工作:
NTLoader把命令传递到Windows核心
可能出现的错误:
电脑死机
状况:
显示“Windowsisbooting....”
对付它:
修复
怎么做:
参考微软知识库文章
第九步、启动Windows服务
主要工作:
Smss.exe、Winlogon.exe、lsass.exe、Services.exe等服务启动
可能出现的错误:
蓝屏
状况:
启动失败,出现莫名其妙的死机
对付它:
检查病毒
怎么做:
浏览本版区所有帖子20遍
第十步、登录
主要工作:
Windows要求输入用户名和密码
可能出现的错误:
用户名或密码错误
状况:
。
。
。
。
。
。
。
。
对付它:
删除密码
怎么做:
浏览本版区所有帖子20遍
第十一步、XP运行
主要工作:
桌面、图标显示;加载的程序自动运行
可能出现的错误:
各种死机、系统崩溃、蓝屏
状况:
提示信息“boot.inifilemisssing”的信息。
对付它:
完全检查系统
怎么做:
查看Msconfig等
三、 WindowsVista引导过程错误全解
WindowsVista的引导过程比起XP来缩短了流程,整个步骤被压缩成了7步。
好的,继续来学习一下Vista的引导吧。
第一步、主引导信息
主要工作:
BIOS检查主引导信息并开始引导步骤
可能出现的错误:
存取失败
状况:
显示类似“Cannotreadfromthisdatacarried”的信息。
对付它:
重写MBR
怎么做:
插入Vista的安装DVD,选择“Systemstartrepair”。
如果修复失败,尝试在XP控制台下使用bootrec/fixmbr
第二步、分区表信息
主要工作:
检查引导所需的文件是否存在
可能出现的错误:
没有找到分区信息
状况:
BIOS提示“Partitionnotfound”。
对付它:
重装是必要的吗?
怎么做:
如果“Systemstartrepair”失败,推荐你还是重装Vista吧
第三步、bootmgr.exe/BCD
主要工作:
如果电脑采用传统的BIOS,则bootmgr.exe读取BCD数据并展开引导菜单。
如果采用了EFIBIOS,则直接读取BCD数据
可能出现的错误:
黑屏
状况:
计算机进入假死状态,光标在闪动,屏幕却保持黑屏(不知道这算是进步还是退步)
对付它:
更新BCD数据库
怎么做:
如果使用“Systemstartrepair”失败,可以尝试控制台下输入以下命令:
C:
cdboot
attribbcd-s-n-r
rem
c:
\boot\bcdbcd.old
bootrec/rebuildbad
第四步、Winload.exe
主要工作:
加载Win核心(ntoskrnl.exe)硬件抽象层(hall.dll)及关键的“HKEY_LOACL_MACHINE_System”键信息,还有VistaIL注册表加载所有的驱动信息。
可能出现的错误:
系统崩溃和蓝屏
状况:
引导中止并蓝屏;系统崩溃并出现类似“ststus:
0x00000e9”、“Info:
Input/outputerror”、“file:
\windows\system32\winload.ex”等信息
对付它:
寻求帮助
怎么做:
没有通用的解决方法
第五步、初始化内核
主要工作:
ntoskrnl接管Vista的控制权
可能出现的错误:
系统崩溃和蓝屏
状况:
“filentoskrnl.exeismisssing /iscorrupt”等信息
对付它:
不要尝试超频
怎么做:
插入Vista的安装DVD修复
第六步、登录
主要工作:
Windows要求输入用户名和密码
可能出现的错误:
用户名或密码错误
状况:
。
。
。
。
。
。
。
。
对付它:
输入正确的密码
怎么做:
你不知道?
那我也不知道了
第六步、启动Vista
主要工作:
工具栏和defender载入
可能出现的错误:
各种死机、系统崩溃、蓝屏
状况:
提示信息“boot.inifilemisssing”的信息。
对付它:
完全检查系统
怎么做:
查看Msconfig等
1
评分次数
∙精品文章 功勋+5点
蓝色冰河
本主题由R.E.C--F22于2010-5-921:
06提升
收藏分享
您的每一次回帖都会给战友带来温暖和继续发帖的动力,请不要吝啬您的只言片语
回复引用
报告
R.E.C--F22
∙发短消息
∙加为好友
R.E.C--F22当前离线
组织部长[B-01107-T]
来自
南宁
最后登录
2010-7-22
组织部长[B-01107-T]
兵团大校
UID
14786
帖子
3791
功勋
5541点
军饷
2163元
阅读权限
150
沙发
发表于2008-2-2705:
05|只看该作者
自己动手!
修改WindowsVista的系统启动菜单
在之前基于NT的Windows系统中,Windows使用Ntldr作为BootLoader来启动系统(所谓bootloader,在指在操作系统内核运行之前执行的一段小程序,系统通过它来初始化硬件设备、建立内存空间的映射图等,将系统的软硬件环境设置成一个合适的状态,为最终调用操作系统内核准备好正确的环境)在启动过程中,Ntldr使用Boot.ini文件来确定在启动/引导过程中要显示哪些操作系统选项,战友们如果想对启动选项的设置动点手脚可以通过修改boot.ini文件中相应内容实现。
在WindowsVista中,微软引入了一种全新的bootloader架构,WindowsBootManager(Bootmgr.exe)。
与Ntldr严重地依赖于硬件不同的是,WindowsVista中的新架构可以实现完整的硬件独立性,且能够与多种操作系统无缝结合,让WindowsVista的启动/引导过程更加快速与安全。
同时,将之前Windows系统中由Boot.ini管理的内容移交给新的BootConfigurationData(BCD:
启动设置数据),当然,也提供了新的启动选项编辑工具,BCDEdit(BCDEdit.exe),来管理启动设置。
BCDEdit:
WindowsVista启动设置编辑工具
在传统的基于BIOS的计算机中,如果只安装WindowsVista,除了极早期的WindowsVista测试版本外,您将会发现Boot.ini文件已经彻底从系统中消失;如果系统中安装了WindowsVista和之前的WIndows系统如WindowsXP,虽然仍可找到Boot.ini文件,不过,这个文件只作用于那些系统,而不会对WindowsVista的启动有任何影响。
在基于EFI(ExtensibleFirmwareInterface:
可扩展固件接口,以后采用这种接口的PC会越来越多)的计算机中,Boot.ini文件则更不复存在,在基于EFI的系统中,启动选项被贮存在主板的存储器中。
此时要修改启动选项,要么通过能够读写NVRAM的工具如NvrBoot,要么使用上文提到的BCDEdit。
由此可见,在WindowsVista中,想要再像之前WindowsXP中那样通过一个简单的文本编辑器来修改Boot.ini的方式来管理启动选项已经不可能了,要对启动设置进行修改,只能使用命令格式相对要复杂得多的BCDEdit。
此外,微软也在WindowsVista中提供了可通过WMI(WindowsManagementInstrumentation:
Windows管理规范)调用的BCD类,通过它可以用编程的方式修改BCD数据,不过,相信对绝大多数用户而言,这是不可能的任务。
启动BCDEdit
需要注意的是,BCDEdit不是一个运行于图形界面下的程序,而是一个命令行工具,该文件(Bcdedit.exe)位于“/Windows/System32”目录下。
要执行BCDEdit,首先应进入命令行窗口,并要将操作用户并提升至管理员权限;然后在命令行窗口中,转到系统目录如“C:
/windows/system32”下,然后输入“bcdedit”即可。
BCDEdit命令简介
通过命令行工具Bcdedit,我们可以添加、删除及修改BCD(BootConfigurationData)中的对象。
在BCD中,每个对象均具有唯一的GUID(GloballyUniqueIdentifier:
全局唯一标识符),如系统中的每块硬盘、每个分区的GUID(全局唯一标识符)均不相同。
在BCD中,硬盘或分区的GUID可分为如下几类:
{legacy}:
指存在上一代Windows系统如WindowsXP的硬盘或分区;
{default}:
默认操作系统所在硬盘或分区;
{current}:
当前硬盘或分区;
{c34b751a-ff09-11d9-9e6e-0030482375e7}:
类似于这个格式的GUID指其他安装了操作系统的硬盘或分区。
(注:
这只是个例子,具体数字根据硬盘或分区参数会有相应变化,但均会类似于{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}格式)。
BCDEDIT命令
bcdedit/?
:
显示命令帮助
bcdedit.exe/?
CREATESTORE:
显示命令参数“CREATESTORE”的详细信息,——当然,“CREATESTORE”也只是示例,使用中对其他任何可用参数也均可使用类似格式查看该参数的具体说明。
bcdedit或bcdedit/enumall:
显示WindowsVista系统当前的启动设置数据,这时系统中所有安装了操作系统的硬盘或分区均会显示相应的GUID标识,如{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}。
使用BCDEdit备份与恢复启动选项
在对WindowsVista的启动选项修改之前,最好先对其备份,以防万一操作失误或其他故障导致系统无法启动。
bcdedit/export“D:
/BCDBackup/BcdBackup”——将启动设置备份到D盘“BCDBackup”目录下;
bcdedit/import“D:
/BCDBackup/BcdBackup”——恢复之前备份在D盘“BCDBackup”目录下启动选项。
使用BCDEdit修改启动菜单选项
作为一种良好的操作习惯,战友们在对WindowsVista的启动选项进行任何修改前,首先要对BCD中的启动选项进行备份,相应的命令上页我们已介绍过,在此不再赘述;其次,使用“bcdedit”或“bcdedit/enumall”来查看系统中硬盘或分区的正确GUID标识,并将其记录下来。
毕竟,BCDEdit只是一款命令行工具,我们操作时需手动输入类似“{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}”这样的长字符串时,很容易出错,而这往往会导致WindowsVista启动失败。
下面详细介绍使用BCDEdit修改启动选项的常用命令格式:
bcdedit/set{legacy}Description“WindowsXPProfessionalSP2”