1、Win 系统引导过程详解本文适用于 Win NT4.0,Windows 2000 以及 Windows XP 各个版本的使用者。本文旨在以 Windows 2000 为例讨论其系统的引导过程,以期较为深入的揭示引导过程中各种相关故障的原因并提出快捷有效的解决途径。一、 基于 PC 的 Windows 2000 引导过程个人电脑上 Windows 2000 的引导过程是分好几个阶段进行的,通过了解 Windows 2000 引导过程中的各个阶段以及每个阶段使用到的文件,有助于我们之后更有效的分析和处理各种问题。Windows 2000的引导过程分为预引导、引导、内核加载、内核初始化和系统登陆五个
2、阶段,如图一所示,图一表一则列出了在系统引导的不同阶段所引用的文件。表一在这里,我们暂不讨论 Windows 2000 操作系统的内部工作机制,以下通过图文结合的方式,简要给大家说明在这五个阶段,操作系统都在干些什么,那些程序发挥了作用。第一步,预引导阶段,过程如图二所示,首先包括了系统加电自检,这个过程完成硬件设备的枚举和配置。其次计算机 BIOS 确定引导设备的位置,加载并运行 Master Boot Record(MBR)主引导区内容(如 lilo 等) 。然后扫描分区表,定位活动分区,并将活动分区上的引导扇区内容加载到内存中执行。最后加载系统盘根目录中的 Ntldr 文件,这也就是 W
3、indows 2000 操作系统的加载程序。图二第二步,引导阶段,过程如图三所示,首先是初始化引导加载程序,这时 Ntldr 完成处理器模式切换和文件系统(FAT 或 NTFS)驱动的加载,如果使用了 SCSI 设备,Ntldr 将 Ntbootdd.sys 加载到内存中运行。其次 Ntldr 读取系统盘根目录下的 Boot.ini 文件,屏幕显示 Boot Loader Operating System 菜单,等待用户选择要加载的操作系统,关于 Boot.ini 文件的设置我们后面还会详细讨论,如果此时 Ntldr 没有找到Boot.ini 文件,就默认从第一个磁盘的第一个分区的Winnt
4、位置加载系统,如果在所限时间内用户没有做出选择,则启动默认的选项。开始加载 Windows 2000 操作系统之后, Ntldr 读取并运行程序 N以完成硬件的检测,如果安装了多操作系统,而且用户选择启动了 Windows98 或 WindowsMe 那么 Ntldr 就会加载并运行 Bootsect.dos 启动所选的操作系统。最后在 Ntldr 加载了 Windows 2000 并收集了硬件信息后,紧跟着就根据用户选择调用系统的硬件配置文件,如果只有单一的硬件配置文件则直接作为默认配置调用,强烈建议用户自己在系统安装好了之后备份一份原始硬件配置文件。图三第三步,内核加载阶段,过程如图四所示
5、,系统加载了默认硬件配置文件后,就会清除屏幕,接着屏幕上会显示出一个进度条() ,Ntldr 随后进行如下的内核加载操作,首先,加载 Ntoskrnl.exe,但并不进行初始化。其次加载硬件抽象层文件(Hal.dll) ,然后加载%systemrootSystem32ConfigSystem下的注册表项 HKEY_LOCAL_MACHINESYSTEM。之后选择加载控制集,初始化计算机。最后,根据控制集加载低级硬件设备驱动程序。图四第四步,内核初始化,过程如图五所示,当内核加载阶段结束时,内核就开始初始化,然后 Ntldr就把系统的控制权转交给内核。这时屏幕上会显示图形界面,并带有一个状态栏指
6、示加载状态。成功的初始化之后,首先,内核会使用检测到的硬件数据,在注册表中创建HKEY_LOCAL_MACHINEHARDWA 项。其次的工作是内核通过复制HKEY_LOCAL_MACHINESYSTEMSelect 子键 Current 项引用的控制集创建 Clone 控制集。接着内核开始进一步加载和初始化设备驱动程序。最后,Session Manager(Smss.exe)按顺序启动 Windows 2000 更高一层次的子系统和各项服务。图五第五步,系统登陆,过程如图六所示,系统首先启动 Winlogon.exe,随后启动 Local Security Authority(Lsass.e
7、xe),这时屏幕显示出登陆对话框。然后系统执行 Service Controller(Screg.exe)再次扫描注册表 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl 项并自动加载其中系统的或用户的服务。至此,用户已成功的登陆到了 Windows 2000 系统,系统随后把 Clone 控制集拷贝到 LastKnownGood控制集。以上五步顺利结束之后,才可以称之为 Windows 2000 的完美引导过程。图六二、 关于高级引导在正式引导系统之前,也就是第二步的第三项操作之前,如果按下 F8 键,就会进入高级引导选项,表二简要给出了高级引
8、导的选项及它们的功能,可供您引导系统时参考表二三、关于 Boot.ini 文件上边第二步曾提到过 Boot.ini 文件,这个文件存储在系统盘根目录,它的作用是定位加载的操作系统硬件位置,特别是在安装了多重系统时用来实现选择启动的功能,以下是一个标准的 Boot.ini 文件,我们将对此作适当解析。boot loadertimeout=30default=multi(0)disk(0)rdisk(0)partition(1)WINNToperating systemsmulti(0)disk(0)rdisk(0)partition(1)WINNT=“Microsoft Windows 2000
9、 Professional“ /fastdetectC:= “Microsoft Windows 98“Boot.ini 文件包括 boot loader、operating systems两个部分,boot loader包括等待时间和默认引导系统两个参数,timeout 后边的数字表示等待的秒数, default 后边的是默认引导系统的位置。operating systems则包括安装的所有系统的 ARC(Advanced RISC Computing)引导路径(等于号之前的部分)和他们在菜单上显示出的名字(引号之间的文本) ,以及启动参数(斜杠后边的部分) 。下边的表三将详细向您解释 AR
10、C 路径的含义表三注意,在 multi、scsi、disk 和 rdisk 序号都是从 0 开始的 partition 是从 1 开始的。下边的表四将向您解释常用启动参数的意义。表四因为 boot.ini 是系统保护文件,它隐藏在系统盘根目录下,并且具有只读属性,如要修改请先到文件浏览器的工具文件夹选项查看中选中显示所有文件和文件夹,取消隐藏受保护的操作系统文件,并且取消 boot.ini 文件的只读属性,方可使用记事本之类的编辑器编辑它。四、制作两张关键的软盘以上我们较为详细的了解了 Windows 2000 的启动过程和所涉及的一些文件和程序,下边我们就要未雨绸缪,充分利用资源武装自己,如
11、此才能不怕将来故障和崩溃的挑战。首先,我们制作一张 Windows 2000 的启动盘,请依下列步骤操作:1 在运行 Windows 2000 的计算机上格式化一张软盘。2 在安装系统的主分区上,将下表给出的文件拷贝到软盘上,请注意先显示隐藏文件。3立即使用制作好的启动盘引导系统,测试它是否工作正常。接着我们再制作一张系统紧急修复磁盘,遵循路径,开始程序附件系统工具备份,我们就可以方便的制作紧急修复磁盘。注意,紧急修复磁盘存放着系统注册表和启动配置的相关文件,所以只能用于制作的这台机器,同时,该磁盘的内容应当及时的更新,尤其是当机器安装了新的硬件或软件,或者系统配置更改了之后五、常见引导故障的
12、排除上边说了那么多,完全是为了尽可能从理论上武装自己。在进入实战之前,我们先来整理一下所带的装备,1)Window2000 安装盘 2)启动软盘 3)系统紧急修复磁盘 4)备份好的系统原始硬件配置文件 5)备份好的注册表文件 6)一个冷静清楚的头脑。 OK,这就加入 Counter Failure 小组,出发!1) 按下 Power 键,我们的旅行开始了。2) 首先系统开始自检(POST) ,如自检结束之前出了故障请咨询你的硬件供应 J 商。还好没问题,系统自检顺利通过。什么?“Missing operating system ”!怎么办?诊断:这是个 POST 完成之后最普通的错误,你的运气
13、不错。让我们试回忆一下前边描述的预引导阶段,这里故障可能是由以下原因造成:I) 系统分区未激活或激活失败,解决办法请使用 FDISK 类的工具激活。II) 系统盘引导扇区损坏或配置错误,解决办法使用 Windows 2000 安装光盘,运行安装程序,利用其中自带的自动系统恢复功能修复引导扇区。顺便提一下,虽然这里不是可怕的 MBR 损坏,但及时的备份 MBR 也是必要的,使用如 KV 3000 带的类似工具可以轻松实现,以备不时之需。3)接着往下, “Ntldr is missing”!怎么办?诊断:这个好办,用你的启动软盘启动引导系统,再将系统加载文件 Ntldr 拷贝到系统盘的根目录即可。
14、如是多重系统请拷贝的 C 盘根目录。4)接下来的故障就五花八门了,但是万变不离其中,我们都知道此时系统应当读取 Boot.ini 文件确定要引导的系统位置,所以如果 Boot.ini 文件出了问题,最简单的办法就是复制启动盘中的 Boot.ini 到系统盘根目录。5)如果此时硬件配置文件出了问题,我们可以从配置文件菜单中选择先前备份的原始配置文件引导系统,或按下 L 键调用 LastKnowGood 上次成功的配置引导系统。这一般可以解决相关的系统设置错误。6)如果 5 也不能奏效,就试试看能不能进入安全模式,如果能登陆,那么我们可以利用硬件设备管理器排除相关的一些硬件冲突,此时一定要注意显示
15、隐藏设备,它们很可能就是元凶,一定要仔细辨识这些隐藏设备,删除那些并不存在或已不用的驱动程序以避免冲突。利用控制面板中的添加删除程序,我们还可以尝试着删除掉那些有可能造成系统不稳定的程序。试试看导入以前备份的注册表文件,我们也可以借此修复不少不太严重的注册表损坏的故障。7)如果安全模式也不能登陆,甚至出现蓝屏,那么很可能是系统内核不能顺利的初始化和加载,导致这类严重故障的原因多半是因为系统关键性文件丢失。我们先采用 Windows 光盘启动引导系统,运行安装程序,选择快速系统修复程序尝试修复系统;如果快速修复失败,程序会要求您使用紧急修复磁盘,使用您准备好的该磁盘再做一次尝试。8)在进行故障诊
16、断中,我们还可以参考表四 Boot.ini 文件中的一些开关选项,采用修改好的 Boot.ini文件定制引导系统,以便更加准确的定位相关的故障。9)登陆过程中,我们还可能碰到各式各样的软件故障,这些虽然不是致命的但也常常令人心烦,请您尝试着辨识这些软件或服务,在开始程序启动菜单中,或注册表编辑器中的HKEY_LOCAL_MACHINE 或是 HKEY_CURRENT_USER 目录树的SOFEWARE/Microsoft/Windows/CurrentVersion/Run 分支中我们可以查看到自行启动的程序,删除相关键,可以关闭自启动那些可疑的应用程序。利用控制面板管理工具计算机管理中的事件查看器中我们也可以得到不少关于故障原因的提示,如果是系统加载的的服务出了故障,请在计算机管理服务中将那些相关的服务项设置成手动启动,尝试重新运行相关软件的安装或卸载程序修复类似错误。本文来自 CSDN 博客,转载请标明出处:http:/