微慑信息网

[系统] WINDOWS2K或XP启动过程简介及故障分析

1)、读取硬盘中的0道0面0区(即MBR主引导区)的内容,执行前446个程序代码,分析并检测当前分区表的完好性和可用性,再根据MBR中的分区表信息内容,寻找到当前可引导活动分区,准备加载当前活动分区的引导扇区内容。

2)、加载主活动分区的引导扇区内容,对于FAT32格式的分区为前3个扇区,对于NTFS则为前6个扇区内容。引导扇区的程序代码(BPB表)的作用是向Windows 2000提供磁盘驱动器(硬盘)的结构和格式信息,并且从磁盘根目录中读取Ntldr文件。

  当引导程序将Ntldr加载到内存后,就把系统控制权移交给Ntldr。如果引导扇区代码在根目录中没有找到Ntldr文件的话,若文件系统为FAT格式,则显示:“Boot:无法找到Ntldr”;若引导文件系统是NTFS格式,则显示:“NTLDR丢失”。

4)、然后Ntldr根据内建的文件系统代码从根目录读取boot.ini文件(Ntldr内建代码与引导扇区文件系统代码不同的是,Ntldr文件系统代码可以读取子目录)。

5)、接着,Ntldr清除屏幕,如果boot.ini中有多种引导选项,则显示引导选择菜单;如果在boot.ini制定的超时范围内未有任何动作的话,Ntldr会根据默认选项启动电脑。

  在系统盘的根目录下面有一个BOOTFONT.BIN文件,该文件是WIN2K中文版启动时显示菜单所需要中文字库文件。当该文件丢失或损毁时不影响系统的正常启动,只不过启动菜单变成了英文。

6)、引导选项确定后,Ntldr加载和执行Ntdetect.com(这是一个使用系统bios进行查询计算机基本设备和设置信息的16位实模式程序)。

  接着Ntldr开始清除屏幕并显示:“Starting Windows……”进度栏。这个进度栏保持空白,直到Ntldr开始加载引导驱动程序(假如有100个引导驱动程序,则每加载一个文件,进度条增加1%)。

  在进度条的下面是信息:“For troubleshooting and advanced startup options for windows 2000 , press F8 .”如果此时按下F8键,会出现高级启动菜单,包括:已知的最近正确模式(last known good),安全模式(safe mode),调试模式(debug mode)等等。

7)、Ntldr加载合适的内核和HAL映像文件(缺省为Ntoskrnl.exe和HAL.dll),读入SYSTEM注册表hive文件(hive文件是一种包含注册表子树的文件)以确定该加载哪些引导驱动程序,加载引导驱动程序,为Ntoskrnl.exe的执行准备CPU寄存器。

  Ntoskrnl.exe文件在WINXP系统中存储了WIN XP的启动LOGO画面,在WIN 2K中即使没有此文件也不影响系统的正常启动。我在做试验中,把该文件删除后,系统仍然能够正常启动,只有Kaspersky Anti-Virus在启动时出现错误,没有加载成功。

8)、之后,Ntldr调用Ntoskrnl.exe并由它开始初始化执行程序子系统并引导系统-启动(system-start)设备驱动程序,在一系列的初始化工作完成后Ntoskrnl.exe为系统本机应用程序作准备并运行smss.exe。如果SMSS文件丢失或损毁,系统在完成硬件的检测和虚拟驱动的加载后,就会出现如下图所示蓝屏现象。

9)、Smss的主要任务是:初始化注册表,创建系统环境变量,加载Win32子系统(Win32k.sys)的内核模式部分,启动子系统进程Csrss,启动登陆进程Winlogon。

  如果CSRSS.EXE文件丢失,则当滚动条走到头时直接黑屏重启;如果WINLOGON.EXE文件丢失或损毁时,故障类似于CSRSS文件丢失,只不过是当蓝色背景出现的计算机马上重启。

10)、然后Winlogon开始执行其启动步骤,如创建初始的窗口和桌面对象等,并加载设备驱动程序和本机安全验证子系统(Lsass)进程(Winntsystem32Lsass.exe)。

11)、接着创建服务控制管理器(SCM)进程(WinntSystem32Services.exe),它加载所有的标记为自动启动(auto-start)的服务程序。如果SERVICE.EXE文件丢失,系统则长时间停滞在登录窗口处,无法继续。

11)、当一切加载成功且用户在控制台成功登陆后,SCM则认为系统引导成功,便放弃注册表中已知最近正确配置(HKLMSYSTEMselectLastKnownGood),而改由CurrentControlSet替代;如果用户在引导的时候选择高级菜单中的已知最近正确模式(LastKnownGood)或者加载时驱动程序返回一个严重的或者关键的错误,系统会以LastKnownGood的值作为CurrentControlSet 的值。如果SVCHOST.EXE文件丢失或损毁,系统仍然能够正常加载并登录成功,只是登录时间稍微长一些,并且当我们操作电脑时,经常出现错误提示。

  最后显示登录界面,完成系统启动过程,这时我们就看到了熟悉的桌面。至此,Windows 2000的引导过程结束。

6、其他方面故障

1)、系统在安装过程中,到硬件设备检测时死机,其原因是主机CMOS设置中的病毒检测开关打开,在系统安装中需要向硬盘的引导区写入相关信息,而此时主板系统误认为是病毒破坏,强行终止该操作,造成系统安装中断而死机。

2)、系统在安装WIN98或XP时基本正常,但安装完毕后,进入欢迎界面时死机,重新启动仍然如此。故障原因:当主机的CMOS电池失效后,时间将恢复到1990年的日期,这时对于WIN98和2K,XP系统在进入系统时,会检查日期的有效性。对于在系统出版之前就可以安装的无效日期,系统当然要死机了。

3)、一些编译不完善的应用程序,在卸载后没有完全清除注册表中的相关程序加载内容。

  当卸载后再次启动电脑时会因为系统找不到相关的启动文件而出现在启动过程中中止,系统提示相关文件丢失。由于大部分电脑操作者不熟悉这些提示,就会误认为电脑无法启动。

本文标题:[系统] WINDOWS2K或XP启动过程简介及故障分析
本文链接:
(转载请附上本文链接)
http://vulsee.com/archives/vulsee_2006/0916_364.html
转载请附本站链接,未经允许不得转载,,谢谢:微慑信息网-VulSee.com » [系统] WINDOWS2K或XP启动过程简介及故障分析
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

微慑信息网 专注工匠精神

访问我们联系我们