Windows Server 2003 启动中常见错误的解决方法

摘要:在Windows Server 2003启动过程中,会出现各种各样的问题,本文介绍了操作系统启动过程的几个阶段,收集了一些经常出现的错误,并结合 Windows 操作系统启动过程,针对这些错误提出了解决方法。

当诊断一个系统启动错误时,判断系统是在哪一阶段出现错误非常关键,系统启动过程根据 CPU 架构不同略微有些差异,下面我们简单介绍一下 x86-based 系统启动过程的几个阶段:

1. Pre-Boot Sequence
2. Boot Sequence
3. Kernel Load Sequence
4. Kernel Initialization Sequence
5. Logon Sequence
6. Plug and Play detection

阶段 1: Pre-Boot Sequence
在计算机加电后开始准备启动操作系统之前,有一个 Pre-Boot Sequence 的过程,主要是计算机的 BIOS 中配置的设备引导顺序寻找启动设备,Pre-Boot Sequence 可以分下以下步骤:
(1)系统加电自检:主要监测主板、CPU,内存及其他计算机所使用的硬件设备的信息;
(2)找到合适的启动设备并加载MBR,MBR中有分区表和主引导代码,通过主引导代码定位到活动分区;
(3)通过 MBR 找到活动分区后,从活动分区中加载 BOOT SECTOR 到内存并执行其中的代码;
(4)通过 BOOT SECTOR  找到 NTLDR 文件,加载 NTLDR 到内存中并执行;

可能出现的问题及解决方法:

(1)MBR 损坏
现象 - 分区表不正确

现象 - 主引导代码损坏

现象 - NTDETECT.COM 搜集硬件信息失败

原因:

由于病毒或者其他人为的误编辑导致引导硬盘的 MBR 损害;

解决方法:

利用Windows PE系统引导计算机后,使用 WinHex 工具对引导磁盘的 MBR 进行修复操作;

(2)硬件配置不正确
现象:主板报错;
原因:关键的硬件损害或者配置不正确,如内存条损坏;
解决方法:要通过进一步硬件故障检测,针对不同硬件故障做不同处理;

(3)找不到活动分区
现象:按照设备启动顺序遍历后,最后停在如下界面:

原因:可能是通过 fdisk 工具编辑磁盘分区表后没有指定活动分区;
解决方法:利用Windows PE系统引导计算机后,使用 WinHex 工具对引导磁盘的 MBR 的分区表进行编辑,指定正确的分区表条目的属性为活动分区,然后重新引导操作系统;

(4)NTLDR 文件缺失或损坏

现象:如下图所示,输出错误信息“NTLDR is missing”;

原因:NTLDR 文件被病毒删除或损害,或者文件系统损坏,导致了 NTLDR 文件的损坏;
解决方法:可以通过系统恢复或者 Windows Server 2003 引导盘 NTLDR 文件;

(2)BIOS 配置不正确
现象:

原因:
解决方法:根据实际情况调整 BIOS 配置;

阶段 2: Boot Sequence

当 Pre-Boot Sequence 的阶段完成后,开始进入 Boot Sequence 阶段。可以分下以下步骤:
(1)NTLDR 将 CPU 工作模式从 Real-Mode 切换至 Protected-Mode,然后启动文件系统驱动用于 支持计算机上的文件系统;
(2)NTLDR 读取 BOOT.INI 文件内容,用于创建初始化引导选项,如果选择的是 Windows Server 2003, Windows NT 之外的操作系统,BOOTSECT.DOS 文件被读入内存,用于加载其他的操作系统,Windows Server 2003 引导过程中断;
(3)当系统初始化引导选项被选中后,根据该引导项对应的磁盘号和分区号定位启动卷;
(4)从启动卷中找到 NTDETECT.COM 文件,NTDETECT.COM 检测系统基本的硬件配置信息并且把配置信息写入注册表中的 HKEY_LOCAL_MACHINE 键,NTDETECT.COM 识别的硬件包括并不仅限于 串口、并口、键盘、鼠标、软盘、SCSI 适配器 和 显卡;
(5)将控制权交给 NTOSKRNL.EXE,进入下一阶段;

可能出现的问题及解决方法:

(1)启动文件缺失或损坏
现象:
原因:NTLDR,BOOT.INI,BOOTSECT.DOC,NTDETECT.COM 或 NTOSKRNL.EXE中的一个缺失或损坏,导致操作系统无法正常启动,一般情况下,通过错误信息能准确的判断是那个文件缺失或损坏;
解决方法:可以通过系统恢复自动修复;

(2)BOOT.INI 配置不正确
现象:

原因:人为误编辑 BOOT.INI 文件或者修改了磁盘配置;
解决方法:利用Windows PE系统引导计算机后,检查 BOOT.INI 文件内容,并根据实际情况重新配置;

(3)硬件无法识别或者配置不正确
现象:界面错误信息指向 NTDETECT.COM
原因:
解决方法:需要进一步排查具体原因,可以通过逐个移除新加硬件和相应驱动程序来定位;

关于此阶段中一些重要的启动文件说明:

BOOT.INI 
用于在系统启动过程中创建系统选择菜单,每个系统项在文件中都有对应的条目与之对应,记录了该系统的启动分区。BOOT.INI 文件一般为位于根目录,具有系统属性和隐藏属性。
BOOTSECT.DOS
一个选项配置文件,在部署了多操作系统的环境中,如果选择引导的是 Windows Server 2003, Windows NT 之外的操作系统,这个文件会被加载。BOOTSECT.DOS 文件位于根目录下,具有系统属性和隐藏属性。
NTDETECT.COM
用于检测操作系统已经安装的硬件设备,并且将这些硬件设备的信息添加到注册表。NTDETECT.COM 文件位于系统分区的根目录下,具有系统属性、隐藏属性和只读属性。
NTOSKRNL.EXE
用于加载 Windows Server 2003 操作系统,NTOSKRNL.EXE 文件位于 %windir%/system32。

阶段 3: Kernel Load Sequence

当 Boot Sequence 的阶段完成后,NTDETECT.COM 搜集的所有信息都传递给了 NTOSKRNL.EXE,Kernel Load Sequence 可以分下以下步骤:
(1)NTOSKRNL.EXE 加载并初始化;
(2)初始化执行子系统,启动类型为 System-Start 的设备驱动程序;
备注:这里说的执行子系统,是指 Process And Thread Manager、Virtual Memory Manager、I/O Manager、Object Manager、Runtime Libraries 以及其他需要工作在内核态的服务。
(3)为运行原生应用程序准备系统环境;
备注:这里说的原生应用程序,需要解释一下,Windows 操作系统提供两种类型的 API,一种是我们通常所说的 Windows API,所有的 Windows 程序都需要依赖 Windows API,另一种是 Native API,一些 Windows 组件如内核驱动程序 和 系统进程(如csrss.exe)依赖 Native API 。
(4)运行 SMSS.EXE

关于此阶段中一些重要的启动文件说明:
NTOSKRNL.EXE 在这一阶段的作用非常关键,它主要用于完成以下功能:
(1)加载 HAL.DLL (Hardware Abstraction Layer,是一个 Kernel-Mode 库),用于提供低级别的硬件交互接口,Windows 组件和第三方的设备驱动程序依赖 HAL 与底层硬件设备通信;
(2)加载操作系统Control Set,Control Set 用于控制系统配置信息(如列出需要被加载的设备驱动程序);
(3)加载低级别的设备驱动程序(如磁盘驱动程序 disk.sys);

可能出现的问题及解决方法:
现象:

原因:硬件设备驱动程序不匹配,或者安装了有 BUG 的安全、加密、过滤、第三方磁盘管理软件、存储管理软件;
解决方法:知道是做了什么变更后出现的就比较好解决,回退操作,也可以借组于系统的 “最后一次正确配置”的高级选项;

阶段 4: Kernel Initialization Sequence
Kernel Initialization Sequence 主要创建 HKEY_LOCAL_MACHINE\HARDWARE 注册表项,运行高优先级的子系统和服务,可以分下以下步骤:
(1)一旦 Kernel 成功加载后,会创建 HKEY_LOCAL_MACHINE\HARDWARE 注册表项,这个注册表项用于指定系统启动时的硬件设备的配置信息;
(2)初始化随 Kernel 加载的设备驱动程序;
(3)运行高优先级的子系统和服务;
备注:高优先级的子系统包括并不仅限于 POSIX Subsystem,OS/2 Subsystem。

可能出现的问题解决方法:知道是做了什么变更后出现的就比较好解决,回退操作,也可以借组于系统的 “最后一次正确配置”的高级选项;

阶段 5: Logon Sequence
smss.exe(Session Manager System)是 Logon Sequence 中的一个非常关键的角色,可以分下以下步骤:
(1)创建系统环境变量;
(2)启动 Win32 Subsystem 的 Kernel-Mode 部分(win32k.sys)和 User-Mode 部分(csrss.exe);
(3)启动在注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems 中列出的子系统;
(4)smss.exe 运行 winlogon.exe(Windows Logon Manager);
备注:附上对 winlogon.exe 程序功能的说明:
winlogon.exe is a system service that enables logging on and off of users. It is also responsible for loading user profile.
It invokes GINA( Graphical Identification and Authentication) which displays login prompt. The GINA accepts the user login credentials and passes it back to Winlogon.
Winlogon then Starts Lsass.exe (the Local Security Authority) and passes login credentials to LSA. LSA determine which user account databases is to be used for authentication eg: Local SAM or Active Directory in case you are in a windows domain.
(5)用户权限验证通过后, smss.exe 运行 Service.exe(Services Subsystem,SCM);
(6)Service.exe 遍历 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services,启动类型为“自动运行”的服务。

可能出现的问题及解决方法:
(1)登陆失败
现象:
原因:用户权限信息验证不通过;
解决方法:尝试找回权限信息,注意是否是域控导致,终极解决方案就是利用 PE 进入系统后用工具重置密码;

(2)服务启动失败
现象:
原因:原因太多,不一一枚举,cmd 输入 eventvwr.msc 打开 System Log 查看具体详情;
解决方法:根据  System Log 记录对症下药;

阶段 6: Plug and Play Device Detection
Plug And Play Device Detection 是一个系统自动检测新增 PnP 设备并为 PnP 设备自动查找驱动程序尝试使之能够正常功能的过程,可以分下以下步骤:
(1)检测启动过程中新增的设备,自动为设备分配系统资源;
(2)如果设备是 PnP 并且可以从对应的 Driver.cab 文件中找到对应的驱动程序,则提取驱动程序并自动安装;

可能出现的问题及解决方法:
PnP 设备无法正常工作
现象:
原因:驱动程序不匹配;
解决方法:找到匹配的驱动程序并安装;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Windows Server 2003服务器无法下载.exe文件的解决方法

    今天架设了一台Windows Server 2003的网站服务器,发现打开网页后无法下载网站中的.exe文件,经过研究问题得以解决,拿来做个备忘. 解决方法非常简单,只需要在IIS中,将网站属性里的执行权限设置为"纯脚本"即可. 附:Windows Server 2003服务器无法下载EXE为后缀的文件解决办法 实际操作过程中只进行了第二步就成功了, 即:打开iis管理器,右键网站-点击属性-主目录,将执行权限设置为"无"或者"纯脚本",即取消&

  • Windows server 2003 服务器环境配置 新手简明版

    一.系统约定篇 环境软件下载后存放位置:X:\Server_Tools 环境软件安装位置:X:\Server_Core PHP安装位置:X:\Server_Core\PHP MySQL安装位置:X:\Server_Core\MySQL Zend Optimizer安装位置:X:\Server_Core\Zend IIS网站站点根目录:X:\wwwroot MySQL 数据库位置:X:\Database php.ini存放位置:Y:\Windows\php.ini my.ini 存放位置:X:\S

  • Windows Server 2003 模拟IP-SAN图文教程

    用Windows Server模拟IP-SAN测试操作系统版本:windows 2003 server sp2,软件:MS_iSCSI_Target 配置步骤: 1.       首先下载MS_iSCSI_Target,可从微软官方网站下载.Windowows 2003 对应MS_iSCSI_Target 3.1版本,windows 2008 对应MS_iSCSI_Target 3.2版本: 2.       将下载的MS_iSCSI_Target安装包解压,解压后打开MS-dos命令行,进入到

  • Windows server 2003证书服务器配置方法(图文)

    Windows CA 证书服务器配置(一) -- Microsoft 证书服务安装2008-09-2410:03安装准备:插入Windows Server 2003 系统安装光盘 添加IIS组件: 点击'确定',安装完毕后,查看IIS管理器,如下: 添加"证书服务"组件 如果您的机器没有安装活动目录,在勾选以上'证书服务'时,将弹出如下窗口: 由于我们将要安装的是独立CA,所以不需要安装活动目录,点击'是',窗口跳向如下: 默认情况下,'用自定义设置生成密钥对和CA证书'没有勾选,我们

  • 不错的windows server 2003 工具资源命令集

    这是新年的第一篇日志,呵呵也算是精品吧.在网上闲逛时发现的. accwiz.exe > Accessibility Wizard for walking you through setting up your machine for your mobility needs. 辅助工具向导 acsetups.exe > ACS setup DCOM server executable actmovie.exe > Direct Show setup tool 直接显示安装工具 append

  • Windows Server 2003 系统安全配置方法

    一.系统的安装 1.按照Windows2003安装光盘的提示安装,默认情况下2003没有把IIS6.0安装在系统里面. 2.IIS6.0的安装 开始菜单->控制面板->添加或删除程序->添加/删除Windows组件 应用程序 ---ASP.NET(可选) |--启用网络 COM+ 访问(必选) |--Internet 信息服务(IIS)---Internet 信息服务管理器(必选) |--公用文件(必选) |--万维网服务---Active Server pages(必选) |--Int

  • Tomcat6.0与windows 2003 server 的IIS服务器集成

    1.去对应网站下载jdk和tomcat http://www.sun.com/ http://tomcat.apache.org/ 2.对jdk进行安装,并配置环境变量 3.http://tomcat.apache.org/connectors-doc/上面下载isapi_redirect.dll,此处使用1.2.27版本. 并将isapi_redirect-1.2.27.dll拷贝到<CATALINA_HOME>/bin目录下 4.在<CATALINA_HOME>/conf目录下

  • Windows2003 Server 设置大全

    查有无被激活:开始 -->运行--> oobe/msoobe /a-->回车,稍等一会儿,就会看到提示.如果没有激活,说明你安装的是未破解的系统,抓紧想想办法吧!如用Reset5.02激活补丁进入安全模式激活等. 一.windows server 2003 3790版本识别 RTM=release to manufacture (公开发行批量生产)是给硬件制造商的版本!是送去压盘的,不是拿去卖的.OEM=Original Equipment Manufacturer只能全新安装, 和RT

  • Windows Server 2003 启动中常见错误的解决方法

    摘要:在Windows Server 2003启动过程中,会出现各种各样的问题,本文介绍了操作系统启动过程的几个阶段,收集了一些经常出现的错误,并结合 Windows 操作系统启动过程,针对这些错误提出了解决方法. 当诊断一个系统启动错误时,判断系统是在哪一阶段出现错误非常关键,系统启动过程根据 CPU 架构不同略微有些差异,下面我们简单介绍一下 x86-based 系统启动过程的几个阶段: 1. Pre-Boot Sequence 2. Boot Sequence 3. Kernel Load

  • python中常见错误及解决方法

    python常见的错误有 1.NameError变量名错误 2.IndentationError代码缩进错误 3.AttributeError对象属性错误 详细讲解 1.NameError变量名错误 报错: >>> print a<br>Traceback (most recent call last):<br>File "<stdin>", line 1, in <module><br>NameError:

  • asp.net操作过程中常见错误的解决方法

    错误一:IIS无法识别ASP.NET,并报出以下错误: 名称以无效字符开头.处理资源 'http://localhost/likong/' 时出错.第 1 行,位置: 2 解决方法: 在命令窗口中运行: C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i [.NET 1.1] C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i [.NE

  • Nginx启动常见错误及解决方法

    重新启动服务器,访问web服务发现无法浏览啦!登陆服务器之后进到nginx使用./nginx -s reload重新读取配置文件,发现报nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)错误,进到logs文件发现的确没有nginx.pid文件 [root@localhost sbin]# ./nginx -s reload nginx: [error]

  • Oracle数据库TNS常见错误的解决方法汇总

    TNS是Oracle Net的一部分,是专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,就必须配置TNS.本文主要讲述了Oracle数据库TNS常见错误的解决方法如下: 1.ORA-12541:TNS:没有监听器 原因:没有启动监听器或者监听器损坏.若是前者,使用命令net start OracleOraHome10gTNSListener(名字可能有出入)即可;如果是后者,则使用"Net Configuration Assistant"

  • Oracle数据库中ora-12899错误的解决方法

    在使用ORACLE的过程中,会出现各种各样的问题,各种各样的错误,其中ORA-12899就是前段时间我在将数据导入到我本地机器上的时候一直出现的问题.不过还好已经解决了这个问题,现在分享一下,解决方案; 出现ORA-12899,是字符集引起的,中文在UTF-8中占3个字节,ZHS16GBK中占2个字节,而源dmp文件字符集是ZHS16GBK库里倒出来的数据,现在要导入到目标字符集为UTF-8的库里,所以会出现ORA-12899 其实只要修改一下ORACLE 的字符集就可以很好的解决这个问题; 但

  • 再谈javascript常见错误及解决方法

    初学Javascript,每天总是被很小的问题折磨半天,今晚就有好几个小问题. 第一:全部使用双引号造成匹配错误 <input type="checkbox" onmouseover="document.getElementById("test").style.display="none":"/> 改行一直报错误:unexpected toke "}"  检查半天也没有发现错误,对照发现视频上是

  • 关于javaWeb中405错误的解决方法

    今天写了一个servlet,可是一直405报错,开始以为web.xml里面的servlet配置有问题,可是那样的话应该报404错误啊 最后才发现在重写doPost和doGet方法的时候,写成了dopost和doget,因为java对大小写很敏感,故相当于没有重新httpservelt里面的方法. 反思:编程需谨慎!!! 以上这篇关于javaWeb中405错误的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 安装sql server 2008时的4个常见错误和解决方法

    可能由于操作系统不同,或者在安装SQL 2008的时候已经安装SQL其他版本,因此可能会遇到问题,那么这时我们的实际经验和动手测试的能力也是非常重要的,这样才能少走弯路. 问题1:安装sql server 2008 R2,安装过程中提示错误:此计算机上安装了 Microsoft Visual Studio 2008 的早期版本.请在安装 SQL Server 2008 前将 Microsoft Visual Studio 2008 升级到 SP1. 之前我的电脑上确实装了vs2008,于是我准

  • Android开发中的9个常见错误和解决方法

    经过各种各样的整理,以及和热心网友讨论,终于整理出了九种android开发中最常见的问题和解决方案再次跟大家分享下!!有用的话请顶顶帖子,共同进步.好了不多说了,下面是详解! 1. 如果你的项目的R文件不见的话,可以试下改版本号在保存,R文件不见一般都是布局文本出错导致. 2. 布局文件不可以有大写字母 3. 抛出如下错误WARNING: Application does not specify an API level requirement!, 是由于没有指定users sdk的缘故,修改A

随机推荐