预启动阶段
1. post过程-开机自检:这是每个计算机的电源接通之后,必须要做的第一件事情.post将检查硬件,是否有内存,是否有键盘以及scsi卡等等.虽然这是一个核操作系统无关的过程,但是他却是保证系统正常启动的第一个步骤.
2. 一旦自检完成,计算即将查找启动设备,并将MBR-main boot record(主引导纪录)调入内存.
典型故障:
开机以后蓝屏,"operating system not found",提示"invalid partition table"
这些错误信息的出现是因为Mbr遭到破坏;
解决办法:
用系统启动盘(软盘或者安装光盘)启动计算机,然后执行下面的命令:
Fdisk.exe /mbr
Fdisk /mbr这个命令可以在硬盘上无条件地写入主引导程序和分区表,并且不对dos引导扇区-Dbr-dos boot record,文件分配表和目录区进行初始化;也就是说,执行fdisk/mbr后,可在不破坏硬盘上原有数据信息的情况下,重建主引导程序和分区表;他对单纯感染嵌入式引导区病毒的硬盘,可以起到清除病毒的作用;
Fdisk是ms-dos,windows 95/98/me中的标准命令,windows NT/2k/XP用户,可以采用下面的办法修复主引导纪录:
启动系统故障恢复控制台,在命令提示符下面输入fixmbr,在出现警告信息的时候按Y键,最后输入exit退出故障回复控制台;
3. 计算即将查找活动分区,引导扇区,并将其装入内存;
4. 开始调用Ntldr,Ntldr是系统加载器,他是第二阶段的关键部分;
Plus:Mbr,或者说master boot record的缩写,中文意思就是主引导纪录,硬盘的0磁道第一扇区称为MBR,他的大小是512字节,而这个区域可以分为两个部分:i,pre-boot区(预启动区),占446字节:ii,第二部分是partition table区(分区表)占64个字节,该区相当于一个小程序,作用是判断那个分区被标记为活动分区,然后去读取那个分区的启动区,并运行该区中的代码.最后两个字节是一个标识符,用来表明这个扇区的结束,其二进制数值为0x55AA.
1. 当Ntldr开始运行之后,它首先将处理器的实模式改为32位平滑内存模式;
解释:实模式和32位平滑内存模式:
两者都是电脑系统的寻址方式.实模式指的就是16位模式,运行比较稳定.平滑内存模式则在寻址范围和速度上有明显的优势.
2. 启动小文件系统(例如fat,ntfs),以便从磁盘上访问文件;
3. 随后,Ntldr将访问第一个文件:boot.ini文件,并且根据文件的内容在屏幕上显示启动菜单;
4. 如果用户选择的不是win2k(或者winXp)操作系统,那么Ntldr将调用bootsect.dos,将控制权交给她,并且启动所操作的系统,否则,Ntldr将运行Ntdetect.com文件;
典型故障
当妳选择了其他操作系统之后,出现了错误信息:I/O error accessing bot sector file
Muti(0)disk(0)rdisk(0)partiton(1)/BOOTSS
这种情况是由于找不到启动分区造成的,一般出现在安装了多个操作系统的计算机上.当妳在已有的操作系统-例如win98上安装win2k的时候,安装程序会将原有的启动分区(一般为0分区)保存成bootsect.dos,然后安装程序会将win2k的启动分区放到0分区上.因此,bootsect.dos是在启动的过程中创建的,无法像其他丢失的文件一样可以从光盘上面复制过来,那么,如何解决这种情况?
为原来的操作系统重新生成一个启动分区.例如:对于win98,只需要用win98的启动盘启动系统,然后在命令提示符下输入sys c:,
创建bootsect.dos:
a,将win2k安装光盘放入光驱,启动计算机;
b,在出现欢迎屏幕后,按两次R键;
c,当安装程序运行到修复任务选想的时候,选择"检查启动扇区"选项,然后将光条移动到"继续(执行所选任务)"上按回车;
d,跟随安装向导继续,最后会看见"安装程序已完成修复"的提示;
e,Reset;
5. Ntdetect.com将收集计算机硬件方面的信息,这些硬件包括:计算机ID号,适配卡类型,显卡,键盘以及鼠标,软盘,com口和并口等等.一旦信息收集完成,Ntdetect.com会将信息传递给Ntldr,并将信息写入注册表中的hkey local machinehardware分支;
可以看到:启动阶段调用了3个非常重要的文件:Ntdetect.com,boot.ini和bootsect.dos.而这个过程也是安装了多个操作系统经常出现问题的地方;
典型故障
计算机启动时:
没有出现启动菜单;
这种情况是将显示操作系统列表的时间设为0秒引起的.解决的办法是,我的电脑,属性,高级,启动故障恢复,显示操作系统列表...(修改时间数值)
典型故障
当计算机启动的时候出现:
Ntldr is missing,press any key to restart...
Ntldr文件丢失,出现错误会造成这个故障,其它类似的故障还有,Ntdetect.com is missing..等等,利用下面的解决办法:
-利用win2k安装光盘,这个文件存放在系统安装光盘的i386目录下面,因此,只要将其复制到硬盘就可以了;
a,放入win2k光盘,启动win2k安装;
b,出现欢迎界面的时候,按R;
c,win2k修复选项界面中,按R;
d,当提示选择修复选项的时候,按M;(手动修复)
e,选择 验证win2k系统文件;
f,选择 继续(执行所选任务),然后回车,
g,出现紧急修复盘界面:如果你有紧急修复盘的话,插入紧急修复盘,根据提示修复安装,reset;
h,如果没有紧急修复盘,按L,用光盘修复;
使用控制台:输入map,记下win2k安装光盘所在的光驱盘符L;
输入: copy L:i386tldr c:
提示是否覆盖,Y;
输入exit重新启动;
1. 在这个阶段,Ntldr将调用Ntoskrnl.exe,并将由Ntdetect.com收集的硬件信息传递给它,同时被调用的还有hal.dll文件.如果你有多个硬件配置文件,当运行到这一步的时候,你会在屏幕上看到要求选择硬件配置文件的信息.另外,Ntldr也将从注册表中调用所有启动值为0x0的设备驱动程序.如果你在boot.ini文件中有" /sos"参数,一般在" /fastdetect"后面,那么妳将看到调用设备列表;
典型故障
启动的时候出现错误信息:"Ntoskrnl.exe missing or corrupt on bootup"(ntoskrnl.exe丢失或者损坏)
如果出现下列情形之一,会出现ntoskrnl.exe错误出现:
-新增加了一个硬盘或者改变了原有的分区,例如:删除了原来的一个分区或者将原来的两个分区合并,都可能导致boot.ini文件中的[bot loader]部分的default值丢失或者无效,从而在启动过程中无法找到启动所需的文件;
Ntoskrnl.exe文件被删除或者被损坏;
解决办法
使用启动盘启动操作系统,编辑boot.ini文件,检察与下面一行类似的命令中是否有错误:
muti(0)disk(0)rdisk(0)partition(1)WINNT="microsoft windows 2000 professional" /fastdetect
这一行表示在第一个ide硬盘上rdisk(0)的第一个分区上partition(1)装有win2k,大家可以根据这个规律来查找自己的boot.ini文件中的数值是否正确;
如果没有发现错误,请将win2k安装光盘放入光驱,然后再命令行输入:
expand x:i386toskrnl.ex_ c:toskrnl.exe
回车,提示文件已经释放,取出光盘,reset;
典型故障
Hal.dll is missing...
这个故障是因为缺少hal.dll文件引起的,解决的办法是:
a,启动故障回复控制台;
b,输入: expand x:i386hal.dl_ c:windowssystem32hal.dll
c,输入exit,回车;
2. 内核初始化.这一步将对内核以及上一步中调用的硬件驱动程序进行初始化.
plus:Hal.dll,是英文hardware abstraction layer,硬件抽象层的缩写,这种技术提供了驱动程序与硬件之间的借口,可以防止应用程序直接访问计算机系统内存,cpu以及硬件设备(如声卡和显卡),从而使系统可以跨越多种硬件平台运行;
服务调用阶段
这个阶段将启动会话管理器(smss.exe),会话管理起将读取必须调用的程序列表,在注册表的bootExecute项中,然后设置内存分页并且启动win32子系统;
win32子系统启动阶段
一旦win32子系统启动,会自动运行winlogon.exe,同时移动本地安全管理(lsass.exe)并且显示登陆对话框.然后回运行服务控制器SCreg.exe,服务控制器会检察注册表中启动值为0x2的服务项目,然后调用这些服务,值为0x3的服务表示需要手动启动,值为0x4的服务表示禁用;
用户登陆阶段
最后就是用户登陆阶段了,一旦用户可以登陆进系统,那么也就表明整个启动过程已经结束,成功登陆之后,当前设置也被自动保存为"最后一次正确配置-last known good"以备以后使用;
如何启动故障恢复控制台
1. 使用win2k光盘启动计算机;
2. 在欢迎界面中按R;
3. 按c选择使用故障恢复控制台修复win2k安装;
4. 输入需要修复的windows所在盘符前的序号,回车;
5. 输入管理员口令,回车