8
Windows Windows …… Windows BSOD Blue Screen of Death Microsoft Windows System Crash Kernel Error Stop Error Bug Check Windows Windows Windows Windows Windows Windows Windows Windows Windows Windows KeBugCheckEx STOP Code VGA

Windows ! #$%&'()*&+,-.// 012 3 4567,&+,839 ... · >?D Windows &LM Q } T 3 6mqm q 9 6& BSOD T Blue Screen of Death N ¡¢£ }D¤¥¦ 6§ Microsoft Windows ¨©

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Windows ! #$%&'()*&+,-.// 012 3 4567,&+,839 ... · >?D Windows &LM Q } T 3 6mqm q 9 6& BSOD T Blue Screen of Death N ¡¢£ }D¤¥¦ 6§ Microsoft Windows ¨©

提到Windows系统蓝屏报错,即使是普通的电脑用户也有可能经常遇到。导致系统蓝屏的原因有多种多样,

如系统病毒、驱动程序、硬件故障等等,但终其原因大致可以分为软件、硬件两大类问题。

首先,我们需要了解一下究竟什么是蓝屏报错?它产生的机理又是什么?下面我们看到的画面就是典型的

蓝屏报错截图。

人有时候都会闹情绪,更何况是机器呢。微软 Windows 有时候也会跟我们闹闹情绪,嘿嘿……小则是系统

中常见的“应用程序遇到问题,需要关闭”等异常程序终止报错信息,严重时还可能给你脸色看看。但是,

这脸色不是红脸、白脸,而是一张“蓝脸”,即蓝屏报错故障画面。

现在我们一起从Windows系统蓝屏报错的定义、产生的原因及方式三方面展开学习。

第一

第一第一

第一,

,,

,来看针对

来看针对来看针对

来看针对蓝屏

蓝屏蓝屏

蓝屏故障的

故障的故障的

故障的定义

定义定义

定义

这里指的就是大家经常称之为“系统蓝屏”、“系统崩溃”之类的东西,英文称之为 BSOD 也就是英文 Blue

Screen of Death,蓝屏死机的意思。从专业角度讲,这一术语被定义为当Microsoft Windows系统崩溃或停

止执行时,所显示的蓝色屏幕。而我们平时所说的“系统崩溃,System Crash”或“内核错误,Kernel Error”,

异或“停止错误,Stop Error”的诊断专业术语则为“程序错误检查,Bug Check”。

第二

第二第二

第二,

,,

,再

再再

再理解一下

理解一下理解一下

理解一下蓝屏产生原因

蓝屏产生原因蓝屏产生原因

蓝屏产生原因

一旦遇上系统蓝屏崩溃,大多数人都会以为Windows不行了,罪魁祸首就是Windows,或者Windows不够

强悍、不够稳定的意思。可是要知道,每当有内核模式设备驱动程序或者子系统引发了一个非法异常状况,

Windows就会面临这个艰难的抉择,虽然Windows最终还是选择了崩溃,但是这并不代表它就不能够忽略

该异常,如果选择忽略,就意味着将要让设备驱动程序或者子系统继续往下执行。

Windows之所以要选择“自我灭亡”,是因为它不知道该错误是否能被隔离出来,从而不伤害系统的其它程

序与数据,或者该组件将来是否能够恢复正常,而且Windows也非常清楚的知道,这个异常更有可能来源

于更深层的问题,比如由于系统内存的常规功能故障,或者由于其他硬件设备不能正常工作等等。在这种

情况下,如果允许系统继续运行可能导致更多的异常,而且存储在磁盘或其他外设中的数据可能也会遭受

破坏。

Windows 意识到这样做的风险太大了,为了系统程序、数据的安全与完整,将电脑用户的损失在第一时间

内减小至最低,Windows于是产生了蓝屏报错现象的可能。

第三

第三第三

第三,

,,

,我们来稍微了解一下

我们来稍微了解一下我们来稍微了解一下

我们来稍微了解一下蓝屏

蓝屏蓝屏

蓝屏故障

故障故障

故障产生方式

产生方式产生方式

产生方式

当 Windows 操作系统检测到引发崩溃的致命错误时,系统自己执行崩溃函数 KeBugCheckEx 模块。当该函

数接收一个停止代码 STOP Code后:

首先,该系统所有处理器上的所有中断将被屏蔽,然后系统将显示器切换到低分辨率的 VGA图形模式,并

Page 2: Windows ! #$%&'()*&+,-.// 012 3 4567,&+,839 ... · >?D Windows &LM Q } T 3 6mqm q 9 6& BSOD T Blue Screen of Death N ¡¢£ }D¤¥¦ 6§ Microsoft Windows ¨©

绘制出一个蓝色背景,然后显示此停止代码,并且后面紧跟一些对用户诊断错误有帮助的关键信息。至于

为什么要切换到低分辨率的 VGA模式,这是因为所有Windows平台显卡均支持的这种通用显示模式。

最后,KeBugCheckEx 调用所有已注册的设备驱动程序错误检查回调函数,这种回调函数通过调用

KeRegisterBugCheckCallback 函数来注册,从而让这些驱动程序停止运行它们所支配的设备。此外也有系统

数据结构已经被破坏得太严重,以至于蓝屏都显示不出来的可能性。

至此,我们了解了Windows系统蓝屏的定义、产生的原因及方式等相关知识,但这还没有达到我们的最终

目的,因为我们最终是要通过系统的蓝屏的相关信息,实现对蓝屏现象的分析及故障解决。

下面,我们将为大家介绍一款微软推出的蓝屏故障诊断工具Windows Debugger,它能帮助故障诊断者根据

系统蓝屏产生的蓝屏代码、Dump 文件等故障信息进行分析、诊断,以便我们尽快定位、解决蓝屏报错的

相关软、硬件故障。现在,以实际操作的形式为大家演示:

步骤

步骤步骤

步骤 1,,,

,软件下载与安装

软件下载与安装软件下载与安装

软件下载与安装。

。。

该工具软件由微软公司免费提供,各位可以直接去微软官方网站下载,目前 6.11.1.404 版本的可用下载地

址为:

http://msdl.microsoft.com/download/symbols/debuggers/dbg_x86_6.11.1.404.msi

该版本可以支持 32位的以下所列版本操作系统:

� Windows 7

� Windows Server 2008

� Windows Vista

� Windows Server 2003

� Windows XP

� Windows 2000

软件安装和其他普通应用软件完全一样,按照提示点击【下一步】直至完成即可。

步骤

步骤步骤

步骤 2,,,

,故障系统设置

故障系统设置故障系统设置

故障系统设置。

。。

Windows Debugger 软件附带的帮助文件可以对系统蓝屏报错时产生的“蓝屏代码” 进行分析,从而有助

Page 3: Windows ! #$%&'()*&+,-.// 012 3 4567,&+,839 ... · >?D Windows &LM Q } T 3 6mqm q 9 6& BSOD T Blue Screen of Death N ¡¢£ }D¤¥¦ 6§ Microsoft Windows ¨©

于我们初步确定蓝屏故障可能因素。但是,当系统发生软件、硬件相关蓝屏

故障时,操作系统在默认安装、设置下会自动重新启动。由于蓝屏画面停留时间很短,诊断者往往无法获

取蓝屏代码情况。针对此类问题,我们可以通过对系统相关设置,实现禁止系

统蓝屏自动重启功能,具体操作如下。

首先,鼠标右击系统桌面【我的电脑(计算机)】,选择【属性】。

其次,在弹出的对话框中选择【高级】选项栏,其后点击页面“启动和故障恢复”栏中的【设置】选项。

再次,将弹出的设置页面中的“系统失败”选项栏中“自动重新启动”的勾选去掉。此外,也要检查“写

入调试信息”选项栏中是否选定为“小内存转储(64K)”及记下蓝屏 Dump文件的产生路径。此处蓝屏 Dump

文件产生路径为“系统所在盘符:\Windows\Minidump”。这样设置目的是提高蓝屏 Dump 文件生成概率。

Page 4: Windows ! #$%&'()*&+,-.// 012 3 4567,&+,839 ... · >?D Windows &LM Q } T 3 6mqm q 9 6& BSOD T Blue Screen of Death N ¡¢£ }D¤¥¦ 6§ Microsoft Windows ¨©

当蓝屏故障发生时,直接去上述路径下拷贝 Dump文件即可。

不过在极端情况下,操作系统在启动过程中就会发生蓝屏、重启现象。针对此类情况,可以通过在开机 LOGO

画面时按下键盘 F8 快捷按键,在启动页面中选择【禁用系统失败时自动重新启动】,这样也可以做到在无

法进入操作系统的情况下,设置蓝屏报错时系统不自动重启选项。

Page 5: Windows ! #$%&'()*&+,-.// 012 3 4567,&+,839 ... · >?D Windows &LM Q } T 3 6mqm q 9 6& BSOD T Blue Screen of Death N ¡¢£ }D¤¥¦ 6§ Microsoft Windows ¨©

步骤

步骤步骤

步骤 3,,,

,蓝屏代码查询

蓝屏代码查询蓝屏代码查询

蓝屏代码查询。

。。

在完成关于蓝屏的系统设置后,就要针对获取到的蓝屏代码进行分析了,当然是要在产品蓝屏故障之后能

够获取到相关的蓝屏代码和 dump文件信息的前提下。

首先,打开Windows Debugger软件的帮助文件,依次展开

【Debugging tools forWindows\Debugging Techniques\Bug Checks(BlueScreens)\Bug Check CodeReference】,

就可以找到相应的蓝屏报错代码的报错信息,以便进一步确定可能故障原因。这里展开的蓝屏代码范围在

0X1~0xC0000221之间。

举例说明,如果某系统报“0x00000050”蓝屏代码,在展开相应的蓝屏代码选项后,我们会获得如下一段

关于此蓝屏代码的英文描述:

Cause:

“Bug check 0x50 usually occurs after the installation of faulty hardware or in the event of failure of installed

hardware (usually related to defective RAM, be it main memory,

L2 RAM cache, or video RAM)。

Another common cause is the installation of a faulty system service。Antivirus software can also trigger this error,

as can a corrupted NTFS volume。”

文中的大意是

文中的大意是文中的大意是

文中的大意是:

“此蓝屏故障通常由于安装了问题内存或内存相关硬件故障导致。其他常见可能因素还有错误安装系统服

务等。此外,杀毒软件也可以触发此类蓝屏故障,如软件导致系统 NTFS卷标信息崩溃等情形。”

通过上面的信息,我们可以本着“先软件、后硬件”的基本原则,逐步排除上述提到的相关可能因素,重

点放在内存及包含内存控制器部件主板等功能部件上面。

当然,硬件蓝屏报错,Debugger软件往往无法非常准确告知一定是某个硬件故障,它只能大概判定和哪些

功能部件相关,这也是因为电脑主机各个功能部件工作是相互配合,彼此相连的部件完全有可能产生相同

的故障现象及原因。相反,如果是软件类蓝屏故障,诊断工具判定则要准确的多。

此外,展开的蓝屏代码说明页中还有 Resolving the Problem,解决问题、Comments,备注等信息栏,这里

限于篇幅就不再进一步说明。

步骤

步骤步骤

步骤 4,,,

,蓝屏

蓝屏蓝屏

蓝屏 Dump文件分析文件分析文件分析

文件分析

相比于通过蓝屏代码查看蓝屏故障原因的方法,Dump文件分析显得更加正式。通过诊断工具展开的 Dump

文件,能够获取到包含蓝屏代码在内的更多蓝屏故障信息,往往更利于诊断者对蓝屏故障的诊断与定位。

Page 6: Windows ! #$%&'()*&+,-.// 012 3 4567,&+,839 ... · >?D Windows &LM Q } T 3 6mqm q 9 6& BSOD T Blue Screen of Death N ¡¢£ }D¤¥¦ 6§ Microsoft Windows ¨©

如果按照前面的系统设置,则系统发生蓝屏故障时产生的 Dump文件就在“系统盘符:Windows\Minidump”

文件夹下,直接拷贝出来即可。获取的 Dump文件究竟如何展开、分析呢?则需要按照以下步骤操作:

首先,打开桌面WinDbg图标,在弹出窗口中依次点击【File/Open Crash Dump】菜单选项。

现在,我们展开一个名为“Mini032908-01.dmp”蓝屏 Dump文件,展开后将获取部分信息。

通过上面方法展开、获得相关蓝屏信息,其中,倒数第二行有

“Probably Caused by:RtkHDAud.sys… ”这样的描述。我们知道,RtkHDAud.sys为系统

声卡驱动中的一个文件名称,由此可以判断此蓝屏报错可能跟声卡驱动相

关。如果对某些程序、进程不知道是干什么用的,如上图中的“RtkHDAud.sys”,我们可以将“RtkHDAud.sys”

输入到发生蓝屏故障机器系统“搜索”里进行查找,看跟哪些驱动、程序或文件相关。此外,将该关键字

输入到“百度搜索”等网络搜索引擎里进行查找,也是一

个不错的办法。如果将上图实线框中的“!analyze -v”信息输入到“虚线框”中并【回车】,将会得到如图

中所示更详细的蓝屏信息,6.11版本以上软件只需要输入“!analyze -v”连接即可~

Page 7: Windows ! #$%&'()*&+,-.// 012 3 4567,&+,839 ... · >?D Windows &LM Q } T 3 6mqm q 9 6& BSOD T Blue Screen of Death N ¡¢£ }D¤¥¦ 6§ Microsoft Windows ¨©

此外,我们也可以在双击桌面WinDbg图标,打开 Debugger软件窗口,将我们获取到的 dump文件直接拖

入到窗口中展开即可。

Page 8: Windows ! #$%&'()*&+,-.// 012 3 4567,&+,839 ... · >?D Windows &LM Q } T 3 6mqm q 9 6& BSOD T Blue Screen of Death N ¡¢£ }D¤¥¦ 6§ Microsoft Windows ¨©

至此,关于系统蓝屏及微软蓝屏诊断工具Windows Debugger软件应用实例介绍完毕。实际上,此诊断工具

功能非常强大,这里仅仅介绍了两个常用的功能选项而已,尽管如此,也基本满足日常绝大部分蓝屏问题

的诊断需求,各位在后续蓝屏故障诊断作业中,可以逐步加深对系统蓝屏及Windows Debugger诊断工具的

体会。

相关反馈

相关反馈相关反馈

相关反馈

请邮件至 [email protected],谢谢!