艾锑无限桌面运维小知识:
不慌,蓝屏而已
半夜一点半,正在肝图/Debug/做PPT/写论文的你,面对电脑桌面上二十多个窗口正昏昏欲睡。此时,一片蓝色映入眼帘,只见屏幕上出现一个二维码和几行字:
"
:(
你的电脑遇到问题,需要重新启动。
我们只收集某些错误信息,然后你可以重新启动。
30%完成
有关此问题的详细信息和可能的解决方法,请访问
https://www.windows.com/stopcode
如果致电支持人员,请向他们提供以下信息:
xxxxxxxxxxxxxxxxxx
"
你睡意全无,想砸电脑的同时还在担心刚刚的数据有没有自动保存,一夜的辛劳是否付诸东流。
你遇到的是Windows蓝屏死机。
但不慌,蓝屏而已。艾锑无限来帮你解决这些问题
一、何为蓝屏
官方描述为:
"如果某个问题导致设备意外关机或重启,则可能会发生蓝屏错误(也称为停止错误)。你可能会看到一个蓝屏,同时显示消息'你的设备遇到了问题,需要重启'。"
我们可以简单理解为,当Windows系统无法从一个错误中恢复时,用以提示用户错误信息的图像,因为背景是蓝色的,称为蓝屏死机,Blue Screen of Death,缩写为:BSoD,简称蓝屏。
所以这里要给蓝屏洗一下,大多数用户都是谈蓝屏色变,其实大家恐惧的是各种各样的系统崩溃,蓝屏只是帮电脑解脱了,还提醒用户发生了什么事情,只是因为事情有时太复杂蓝屏君说得又很隐晦。但不管出了什么问题,用户都只能看到一张蓝屏和不是那么易懂的终止代码,蓝屏才成了最不招人待见的画面,背了这么多年的黑锅。
先来看一张Windows 7/Vista/XP的蓝屏界面:
再来看一张Windows10的蓝屏界面:
除去一些起到描述和安慰剂作用的语句,Windows 7时代的蓝屏只有四行是有用的,最令人感动的是会提示"可能诱因":
The problemseems to caused bythe following File : XXXXXX.XXX
普通用户就算看不懂这是什么文件,搜索或求助时这个"XXXXXX.XXX"也是非常有效或关键的信息,比如上图中的"SPCMDCON.SYS"。
以及下面一行:
PAGE_FAULT_IN_NONPAGED_AREA
这是一个简单描述的词组,Windows 8及以后大多这样提示了,也是检索时的有效信息。经过简单的检索,我们可以发现错误是由一个名为"SPCMDCON.SYS"的内存设备控制程序的驱动程序引起的,属于内存完整性错误,可以根据情况通过替换文件或修改注册表解决。
而到了Windows 10,有效信息就只有一行半了:
其中半个是链接:,扫描二维码可以得到同样的链接,用浏览器访问会重定向到支持界面。
在这个网页中微软会对蓝屏和终止代码做简单的描述,然后引导你做简单的判断并进行操作。由于针对性较弱,一般作用不大。
最有用的信息就是最后一行终止代码,Windows 8及之后多为描述性语句,如:
CRITICAL_PROCESS_DIED、SYSTEM_THREAD_EXCEPTION_NOT_HANDLED、IRQL_NOT_LESS_OR_EQUAL、VIDEO_TDR_TIMEOUT_DETECTED、PAGE_FAULT_IN_NONPAGED_AREA、SYSTEM_SERVICE_EXCEPTION、DPC_WATCHDOG_VIOLATION等;
Windows 7及之前版本的系统还会显示十六进制错误代码,Windows 10少数情况下也会出现,如:0x0000000A、0x0000003B、0x000000EF、0x00000133、0x000000D1、0x1000007E、0xC000021A、0x0000007B、0xC000000F等。
用户可以根据终止代码查找相关错误信息和解决方案,想必许多人都有过类似经历。
二、诱发因素
导致蓝屏死机的因素可以分为硬件和软件两大类。
1、硬件
先来说硬件,硬盘坏道、内存地址错误甚至是接触不良、电源电压或电流不稳、CPU过热等都可能引起蓝屏死机,一些需要通过外部接口连接的硬件比如USB网卡也会成为罪魁祸首。硬件故障引起的蓝屏一部分通过重启、更换可以解决,还有很大一部分和软件驱动有关系,下面看软件。
2、软件
软件原因导致蓝屏的情况更多,我们分类来讲:
· 系统文件损坏、缺失或查找错误,包括dll、sys、dat等文件,可以通过替换或修复文件解决;
· 系统更新,有时微软都想不到的情况也会发生,某些系统更新会引起蓝屏,可通过卸载更新解决;
· 硬件驱动,最常见的有显卡、声卡、网卡驱动,有些驱动还会对其他硬件造成影响导致蓝屏,驱动造成的蓝屏往往可以通过回滚/更新版本解决,开机蓝屏可以进入安全模式卸载,安全模式都进不去可以通过PE环境配合Dism 卸载;
· 第三方软件,一些第三方软件会和系统任务冲突,导致蓝屏,亦或两个软件相互影响,一般可通过卸载或更改设置解决。
整体来看,第三方软件和驱动造成的蓝屏死机占到总数的绝大部分。
三、解决方案
说了这么多,那么该如何解决呢?
先来说说整体思路,对于有一定专业知识和技能的用户来说,方向是找出导致问题的原因,可以尽快自己解决;对于普通用户或小白用户,肯定是需要搜索解决方案的,我们的目的是找到最精准最有效的检索信息/关键词,也就是我们之前就提到的"probably caused by",尽可能短时间内较为容易地找到有效解决方案。
我们这里提供几种细分思路:一是上网搜索或求助;二是通过分析获取较为准确的起因和问题所在,有针对性的解决;三是重装或还原系统;四是找售后解决。
1、搜索或求助
我们电脑上出现的蓝屏几乎可以确定曾经有人也遇到过,出现过的问题大部分也都有解决方案,他山之石,可以攻玉,所以搜索或求助大部分时间都是省时省力又有效的办法。
搜索的关键词就是终止代码,在贴吧、论坛特别是,长期存在大量精品帖子帮助求助者解答各种各样奇奇怪怪的蓝屏问题,微软官方论坛中高质量帖多为英文,翻译一下不难理解,分析准确、步骤详细且讨论时间长达数年。
2、精确分析,对症下药
现在我们讲重点,首先还是那句话,找到"probably caused by"非常重要。由于一个终止代码往往可以囊括数十种错误原因,所以有时遇到一些疑难杂症通过网上的教程难以修复,这时如果可以分析出引发蓝屏的原因和症结所在,将会节省大量时间,尽早解决问题。当然,一些用户可以凭借经验、专业知识甚至是直觉直接可以解决,普通用户还是难免要搜索一下,不过有了更精准的信息,也更容易找到解决方案。
补充一个我们之后会用到的概念,Dump/dmp文件:Dump文件是进程的内存镜像,文件后缀为".dmp",可以把程序的执行状态通过调试器保存到Dump文件中,多用以调试驱动程序。(根据小编个人习惯,下文中都作"dmp文件"。)Windows蓝屏瞬间也会生成dmp文件,将和蓝屏相关的时间、终止代码、可能诱因、内存地址等信息保存在内。
首先我们要知道的是,蓝屏生成的dmp文件大部分情况下存储在"C:\Windows\Minidump"路径下,打开文件需要权限。
可以分析dmp文件的工具非常多,下面我们分享最有代表性的三个:依次为WinDBG、BlueScreenView和联想蓝屏分析诊断工具。这几款软件都可以载入dmp文件,读取其中堆栈信息等参数,通过分析其中的关键参数,可以大致或精确地推断出症结所在,方便对症下药。虽然基础功能都是一样的,但也有不同点:按照上述提到的顺序,图形化程度、操作便捷性、有效信息展示直观性、易用性等依次提高。
小编找到几个dmp文件,我们以其中一个为例,来看三款软件的使用和分析过程。
· WinDBG
下载地址:WinDBG_64位安装版微软官方下载·-提取码:qhek
①安装
软件安装后打开,界面如下。
②设置符号表
符号表相当于WinDBG的"数据库",离开符号表WinDBG几乎无法分析出太多有效信息。设置方法为:运行软件后单击【File→Symbol File Path...】或按快捷键【Ctrl S】弹出设置对话框,将符号表地址
SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
粘贴于其中,点击确定即可。
注:红色字体为符号表本地存储路径,可自定义。
③载入dmp文件
我们知道蓝屏后生成的dmp文件存储在"C:\Windows\Minidump"路径下,运行软件后,可以通过快捷键【Ctrl D】来打开一个dmp文件,或单击【File→Open Crash Dump...】来打开。
如果想打开第二个dmp文件时上一个文件还未分析完成导致无法打开,可以使用快捷键【Shift F5】来关闭上一个dmp文件的分析记录。
③分析文件
我们选择其中一个dmp文件用WinDBG打开。
打开后经分析得到如下数据:
我们来对几组容易理解且比较关键的数据进行解读:
System Uptime:系统运行时间。通过此项数据可以得知崩溃是在开机后多长时间出现的。如上图数据为0天0时0分48秒出现蓝屏死机。以现在新电脑的开机时间推算,十秒左右基本可以判定为开机蓝屏,反之则为使用过程中出现崩溃。
BugCheck:错误校验码。也即终止代码或错误代码的简写,在MSDN上0x00000139经常表示为139或0x139。由于软件开发较早,无法与Windows 10的描述性终止代码匹配,但也算是一项有用的信息。
Probably caused by:可能诱因。并不是每个dmp文件分析出的此项都是有意义的,但这次运气非常好,此项数据值是名为RNDISMP6.SYS的驱动文件。也就是说很有可能是由于这个驱动出现问题导致蓝屏死机。经过查询得知,本次蓝屏正是手机通过RNDIS设备共享网络时驱动出错引起的,更新驱动并进行一些兼容性更改后得以解决。
!analyze–v:详细分析命令。当然并不是每次分析都会得到可以直接推断出诱因的值,如果得到的是未知的或没有太多参考意义的值,还可以使用此命令进一步分析错误原因。可直接点击运行。
运行后结果如下:
运行该命令得到的结果中包含之前的结果,还有一些更为详细的数据辅助判断,如果崩溃次数统计、崩溃进程名、栈文本信息等。
至此,结合第一次分析和第二次详细分析得到的数据,我们就可以搞定绝大多数的蓝屏了。
更多电脑维修网络维护方面知识请了解北京艾锑无限官网,点击下方更多有专属人员为您全程服务
,