windows 2000是怎样引导的

原创 2004年09月14日 04:23:00

事实上,Windows 2000的引导过程是从安装时候就已经开始的。

那我们首先从windows 2000的安装说起。
当windows 2000 setup运行时,它向硬盘上写入MBR(主引导记录),同时在这个磁盘驱动器的第一个可引导分区(就是我们在fdisk后激活的分区)写入引导扇区,引导扇区的内容根据不同的文件系统格式而变化(FAT或者是NTFS)。如果你的机器上曾装有MS操作系统并建立了引导扇区的话,windows 2000 setup将检测它要覆盖的引导扇区是否有效,如果有效的话,windows 2000 setup安装程序将把引导扇区的内容复制到这个分区的根目录中的文件bootsect.dos中。Setup程序在写完引导扇区后,将把windows 2000所用的文件拷贝到硬盘,包括两个引导文件Ntldr和Ntdetect.com。另外,setup还会在引导分区的根目录中建立引导菜单文件boot.ini。
例:
[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(1)/WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)/WINDOWS="Microsoft Windows "
multi(0)disk(0)rdisk(0)partition(2)/WINDOWS="Windows Server 2000" /fastdetect

这是我的机器上的boot.ini文件,该内容显示装了两个操作系统,win98和win2000,后面的那个参数/fastdetect最常见,是安装系统时默认的,它的作用是使ntdetect忽略秉性和串行设备的枚举。Boot.ini文件中的相关参数还有很多,各有不同的功能,因为与本文没太大关系,所以不作具体介绍,有兴趣的朋友可以到网上找找有关资料。

Windows 2000的启动:
当你按下机器上的power键,计算机就开始启动了,首先是上电自检,通过后bios引导计算机去读取硬盘上的MBR,根据MBR中的信息,找到引导分区,将引导分区内的引导扇区的代码读入内存并把控制权交给该代码。引导扇区代码的作用是向Windows 2000提供磁盘驱动器(硬盘)的结构和格式信息并且从磁盘根目录中读取Ntldr文件,在引导扇区代码将Ntldr加载到内存后,它把控制权交给Ntldr的入口点。如果引导扇区代码在根目录中没有找到Ntldr文件的话,若文件系统为FAT格式,则显示:“Boot:无法找到Ntldr”,若引导文件系统是NTFS格式,则显示:“NTLDR丢失”。然后,Ntldr使用内建的文件系统代码从根目录读取boot.ini文件(Ntldr内建代码与引导扇区文件系统代码不同的是,Ntldr文件系统代码可以读取子目录)。此时,Ntldr清除屏幕,如果boot.ini中存在不止一种引导选项,则显示引导选择菜单,如果在boot.ini制定的超时范围内未有任何动作的话,Ntldr会选择默认的选项。引导选项确定后,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)等等等等。
此后,Ntldr加载合适的内核和HAL映像文件(缺省为Ntoskrnl.exe和HAL.dll),读入SYSTEM注册表hive文件(hive文件是一种包含注册表子树的文件)以确定该加载哪些引导驱动程序,加载引导驱动程序,为Ntoskrnl.exe的执行准备CPU寄存器。之后,Ntldr调用Ntoskrnl.exe并由它开始初始化执行程序子系统并引导系统-启动(system-start)设备驱动程序,在一系列的初始化工作完成后Ntoskrnl.exe为系统本机应用程序作准备并运行smss.exe。
smss的主要任务是:初始化注册表,创建系统环境变量,加载Win32子系统(Win32k.sys)的内核模式部分,启动子系统进程Crss,启动登陆进程winlogon。然后,winlogon开始执行其启动步骤,如创建初始的窗口和桌面对象等等。然后它创建服务控制管理器(SCM)进程(Winnt/System32/Services.exe),它加载所有的标记为自动启动(auto-start)的服务程序和设备驱动程序和本机安全验证子系统(Lsass)进程(Winnt/system32/Lsass.exe)。当一切加载成功且用户在控制台成功登陆后,SCM则认为系统引导成功,注册表中 已知最近正确配置(HKLM/SYSTEM/select/LastKnownGood)由/CurrentControlSet替代。反之,如果用户在引导的时候选择高级菜单中的已知最近正确模式(LastKnownGood)或者加载时驱动程序返回一个严重的或者关键的错误,系统会以LastKnownGood的值作为CurrentControlSet 的值。
之后,我们便看到了熟悉的桌面。至此,windows 2000的引导过程结束。
限于篇幅,本文只简单的讲述一下windows 2000操作系统引导的大体过程,一些细节方面的东东请看我整理的其他windows 2000操作系统方面的文章。

解决Linux和Windows双系统的引导问题

原文地址 http://www.jb51.net/os/RedHat/1198.html 尺有所长, 寸有所短. 虽然能完全用Linux工作, 娱乐. 但计算机只是为人类服务的. 怎么方便怎么来, ...
  • baidu_29950065
  • baidu_29950065
  • 2016年05月23日 16:00
  • 2767

如何使 nginx 支撑更高并发

/** * * * * 如何使 nginx 支撑更高的并发? * 原理: * 服务器方面可以从两个方面阐述: * 1、socket 链接方面:因为每次请求都是一...
  • chenmoimg_
  • chenmoimg_
  • 2017年03月22日 13:53
  • 209

windows/ubuntu双系统找回grub引导

经常看到说,有装了windows+ubuntu双系统的同学,在重装windows系统或者改变了磁盘分区之后,grub无法引导或者干脆就没有了grub引导直接进入了windows,那么,本文介绍一种简单...
  • qazxsw888
  • qazxsw888
  • 2014年12月08日 10:30
  • 1168

重装windows后修复grub2引导

Original url: http://www.cnblogs.com/dolphi/archive/2012/04/30/2477095.html 使用安装版的windows重装w...
  • junmuzi
  • junmuzi
  • 2015年08月17日 17:05
  • 1198

重装win7后如何恢复ubuntu引导

如果电脑之前装了ubuntu,后来又重装了win7,结果发现ubuntu的启动项不见了,是因为重装windows7后,安装系统将把MBR重写,所以安装完成后就会直接进入windows7而不再出现gru...
  • xufaxi
  • xufaxi
  • 2015年04月27日 08:28
  • 1371

windows和Linux启动过程对比

整个Linux的启动如下图所示:
  • dayenglish
  • dayenglish
  • 2014年04月19日 18:02
  • 1650

恢复centos7与windows7系统引导方法-亲测可用

最近本人在自己的笔记本上安装centos 7-minimal版本后,启动时候发现已经安装的windows7系统启动项消失了。于是急用老毛桃 win pe系统u盘启动后恢复了windows引导,结果ce...
  • nmgrd
  • nmgrd
  • 2016年06月24日 17:36
  • 10162

先安装Linux再安装windows双系统引导项处理

建议要玩双系统的千万注意要先装windows在安装linux,不然真的好麻烦。 记录下来,已经搞了2次了,避免以后用到。...
  • oZuiJiaoWeiYang
  • oZuiJiaoWeiYang
  • 2016年03月11日 13:48
  • 1994

UEFI启动-GPT分区,Windows 7+ 系统引导修复

问题描述由于工作需要或者出于兴趣爱好装了多系统的同学,很可能装上了window+linux。有些情况下,不如比如先装上了linxu然后装行了Windows,重启后发现liux启动菜单不见了。找了个中工...
  • bigjordon
  • bigjordon
  • 2017年01月16日 16:52
  • 935

Win7和linux双系统主引导丢失解决办法

前言我们知道当你的计算机是双系统的时候,一般更换系统时会出现主引导丢失问题。就是我们常见的界面 error : unknow filesystem grub rescue> 这是由于重做系统导致分区文...
  • Jeffrey__Zhou
  • Jeffrey__Zhou
  • 2017年02月26日 13:10
  • 1214
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:windows 2000是怎样引导的
举报原因:
原因补充:

(最多只允许输入30个字)