电脑经常蓝屏是什么原因(电脑总蓝屏?两条命令帮你排查意外关机成因)

电脑总蓝屏?两条下令帮你排查不测关机成因

即使如今的体系比拟 20 年前以前安定了很多了,使用电脑时也不免会碰到蓝屏、不测重启、乃至是不测关机的情况。只管这种成绩约莫只是偶尔产生,可以说是不太交运;但更多的时分放着不管,反而会让电脑的成绩显现得越来越经常。

一个蓝屏小「贴士」

以是,这篇文章就旨在协助各位快速找到让电脑不克不及正常事情的罪魁罪魁,固然不一定能「妙手回春」,但也能让你离准确答案更近一步。

macOS

只管 macOS 是Apple为Mac产物线定制的利用体系,但实践上显现成绩的时机照旧很多的。固然在macOS中我们可以经过控制台获取日志信息,但从macOS Sierra及更高版本开头,思索到宁静和隐私成绩,控制台只允许拜候迩来的日志条目,而不是整个日志文件。

以是想要分析日志中一切和关机有关的事变,就必要经过「终端」和相应的指令举行分析。假如你的 Mac 近期显现了不测重启等成绩,无碍随着底下的步调试一试,掀开「终端」,并输入如下指令:

log show --predicate 'eventMessage contains "Previous shutdown cause"' --last 24h

外表这一串指令会使用 log show 检索体系日志,predicate 可以进一步挑选日志,在本文中我们挑选的日志典范是 eventMessage中包含Previous shutdown cause(此前关机的缘故)的信息,而挑选的时间范围–last 24h则是已往 24 小时,假如有必要的话可以扩展到 36 小时乃至更长。

来自作者群的一个伙伴

悄悄等候一段,你就能看到如上图一样的、将日志挑选后到后果,我们必要注意的信息就是Previous shutdown cause后续跟随的数字,这个数字代表着 Mac 电脑前次是由于什么缘故而关闭的。总的来说,正数的代码通常是因硬件而关机的,该信息由体系办理控制器 (SMC)2或处理器本身3报告;而实数因软件而关机的。以下是每个代码所包含的涵义:

数字

表明

处理方案

5

正常关机

由用户或下令倡导的关机,没有成绩

3

硬关机

因电源按钮关机
假如不是由你按下的话,必要反省电源按钮

0

断电

因断电招致的关机,具体参见下文

-3

多个温度传感器温度过高

安装可以获取传感器温度度数的软件,
反省具体传感器的成绩,并在必要的
情况下向 Apple 哀求维修。

-14

瞬态尖峰或浪涌

Mac Pro 上内置电源的成绩,约莫必要售后

-20

T2 芯片关机

由 T2 芯片或 BridgeOS 惹起的关机
反复显现必要举行售后

-60

毁坏的主目次区块

备份你的数据,擦除磁盘兼顾新安装 macOS
在重新安装前约莫会多数据丧失的风险

-61/-62

定时器监测到未呼应
的步骤并关闭/重启体系

在未呼应的步骤招致内核崩溃之前,
强行重启盘算机,具体参见下文

-65

未知

重装 macOS 约莫率处理

-71

内存模块过热

关于台式机:改换内存,确认对否是硬件成绩
关于条记本:反省温度、电扇和传感器
通用:算账电扇敦睦道,寻求售后

-74

电池温度过高

重置 smc
反省电池硬件对否正常,或寻求售后

-75

无法毗连 AC 适配器

反省插头、适配器、线缆和硬件接口

-78

AC 适配器报答错误的电流

反省插头、适配器、线缆和硬件接口

-79

电池报答错误的电流

反省电池、反省电池对否毗连到主板

-85

芯片温度过高

反省 CPU、GPU、SoC 的散热体系或电扇

-95

CPU 温度过高

反省 CPU 散热或电扇、重置 smc

-100

电源温度过高

反省电扇或气流、移除外接电源

-102

电压过高

电压过高着致关机保护,反省电源或电池

-103

电池欠压

反省电池,或改换电池

-104

未知

约莫与电池有关,反省电池,或改换电池

-108/-112/-128

未知

约莫与内存有关,反省内存,或改换内存

假如你的 Mac 显现多量由于 0(断电)招致的不测关闭,那么就必要举行一定的排查。关于没有电池的台式 Mac 而言,主要反省的就是电源线有没有牢牢插进到电源接口中;假如仍然显现如此的成绩则很有约莫是盘算机内的电源显现了成绩,必要举行维修。关于有电池的条记本型 Mac 而言,必要同时反省电源线和电池;条记本型 Mac 通常会在电池耗尽之行进入休眠形态;显现断电而招致的关机很有约莫是电池或读取电量的电池控制器有硬件成绩,关于 Intel 款 Mac 而言必要依据官方文档重置 smc,而 M 系列 Mac 必要手动重启一次。假如上述步调仍然不起作用的话,也必要举行维修。

长时间未呼应约莫会让整个体系崩溃,严峻时还会招致干系数据丧失。定时器超时作为 macOS 中一项功效,它可以好效避免未呼应的步骤招致的内核崩溃。偶尔产生的 -61/-62 错误约莫没什么成绩,但短时间内显现多量的相似错误就要对电脑举行排查了;-61 表现体系以为不克不及主动规复的情况只能举行关机,而 -62 用于体系确定重启后约莫处理的情况并举行重启。排查的办法很简便,在 macOS 启动时进入宁静形式,在宁静形式下启动项目和保卫步骤都被禁用;假如没有再次不测关机则是迩来安装或更新的步骤显现了成绩,假如再次不测关机则和体系本身有关。

以上就是 macOS 的局部了,信赖这个指令可以简便帮你定位成绩,并为你后续的成绩处理打下一个不错的基本。

Windows

除了 macOS,Windows 体系日志相反可以在时间查察器中查察并举行挑选,但思索界面相对「复古」且用于挑选的 UI 选项更为繁复,因此我也更保举各位使用下令行东西获取和挑选日志。

有的时分用 UI 界面反而会让一件事变变得更繁复

假如你的 PC 电脑近期显现了不测重启等成绩,无碍随着底下的步调试一试:

# 下令 1
Get-Eventlog -LogName System -Source "User32" | group EventID

# 下令 2
Get-EventLog -LogName System -Source "Microsoft-Windows-Kernel-Power" | Where-Object { $_.EventID -eq 41 }

Get-EventLog 是 Windows 中获取日志的下令,-LogName System 则限定了查找由体系天生的下令。-Source 则是泉源,User32Microsoft-Windows-Kernel-Power 则是两个不同的泉源。

从用户或步骤层面举行分析

User32 是一个 Windows 体系使用步骤源,它包含了很多与用户界面干系的函数,如窗口创建、消息处理、控件利用等等;它还会卖力处理用户交互方面的职责,比如鼠标、键盘输入和窗口办理等。因此由用户或是步骤倡导的事变,如登录、纪录、锁定或解锁盘算机等,都可以经过 User32 泉源来定位。尔后 | 用于进一步处理 Get-EventLog 取得的数据,这里依照 EventID事变 ID 来group 成组。

现在我电脑中仅有 1074 这个事变,这个 1074 事变是盘算机的正常关机的主要体现情势。假如 User32 有其他的 EventID 那么用底下的下令进一步分析:

# 本例中仍然用 1074 做分析
Get-Eventlog -LogName System -Source "User32" -Newest 1 | Where-Object { $_.EventID -eq 1074} | fl *

前方的下令就不再赘述了,-Newest 1 表现拔取迩来的一个日志, | 用于进一步挑选 Get-EventLog 取得的数据。Where-Object 表现挑选一个目标数组,$_ 表现如今处理的目标(也就是 | 转达过去的数据 ),.EventID 表现目标的 EventID 属性,-eq 是一个比力运算符,表现即是,这里即是的 1074 这个事变。| 仍然是用于进一步处理 Where-Object 取得的数据,由 fl(也可以用完备写法 Format-List 交换)格式化输入目标的*一切属性。

找到此中的 Reason Code: 0x80020010 可以得知这是一个方案内的关机哀求,假如不是办事器的话,这寻常由 Windows Update 主动更新倡导;而由用户倡导的关机则会被标识为 0x0。以下是稀有的 Reason Code 所表现的涵义,完备列表可以参见这里:

涵义

0x00040000/0x00030000

使用/软件成绩招致关机/重启

0x00010000

硬件成绩招致关机/重启

0x00020000

利用体系成绩招致关机/重启

0x00060000

电源成绩招致的关机

0x00050000

体系(通常指的是 UEFI)成绩招致关机/重启

0x0000000F

蓝屏成绩招致关机/重启

0x0000000b

电源断开招致的关机

0x00000007

硬查成绩招致关机/重启

0x0000000d

驱动成绩招致关机/重启

0x00000005

体系长时间无呼应招致关机/重启

蓝屏成绩招致关机或重启,还可以进一步下方的下令举行分析。

从电源办理干系的事变动手举行分析

不外很多不测关机的事变,好比蓝屏招致的,无法被 User32 捕捉,因此从Microsoft-Windows-Kernel-Power 获取电源形态、电源事变以及与电源办理干系的错误和告诫信息取得更多的信息。

Get-EventLog -LogName System -Source "Microsoft-Windows-Kernel-Power" | Where-Object { $_.EventID -eq 41 }

代码中相似的内容不再赘述,在Microsoft-Windows-Kernel-Power和不测关机有关的 EventID 是 41,这个事变通常是在不测关机后重启的阶段中天生的。输入外表的下令今后,Powershell 会输入一段包含十进制 BugcheckCode 的内容,起首必要将它转换为十六进制,以做进一步分析。

如 159 同等于 0x0000009f,209 同等于 0x000000d1 等等,转换后的十六进制就可以取得终极的涵义了。BugcheckCode 内容也和蓝屏时输入的错误码是相反的内容,有的时分蓝屏代码一跳而过,以是这也是找到成绩的好办法。以下是稀有的错误的代码以及涵义,完备列表请看这里:

代码

称呼

涵义

0x0000009f

DRIVER_POWER_STATE_FAILURE

驱动步骤所哀求的电源形态不一律
必要升级或改换驱动

0x000000d1

DRIVER_IRQL_NOT_LESS_OR_EQUAL

驱动步骤试图拜候可分页内存,但中缀太多
必要升级或改换驱动

0x00000024

NTFS_FILE_SYSTEM

NTFS 文件体系显现成绩,反省文件体系
大概改换硬盘

0x000000f3

DISORDERLY_SHUTDOWN

由于内存不敷而无法关机
反省内存或添加更多的内存

0x0000001a

MEMORY_MANAGEMENT

内存成绩
内存交往不良,或是其他内存成绩

0x00000034

CACHE_MANAGER

文件体系的缓存办理器成绩
重装电脑,大概加大非分页池内存

0x000000EF

CRITICAL_PROCESS_DIED

紧张体系历程已停止
必要修复体系,大概重装体系

由于错误码的品种多样,因此这里不太约莫逐一摆列。别的还必要注意的是,同一个错误约莫会有不同的缘故而招致,排查时可以从近期的软件窜改动手去寻觅电脑不测关机的缘故,排查完软件今后才是排查硬件的真正机会。

关于 Powershell 7 使用中的一些细节

值得注意的是,Get-EventLog只能使用 Windows 内的 Powershell 运转;Powershell 7 中由于干系 API 已被弃用,会提示没效指令,因此必要换用Get-WinEvent下令:

# 下令 1
Get-WinEvent -ProviderName 'User32' | group EventID

# 下令 2
Get-WinEvent -ProviderName "Microsoft-Windows-Kernel-Power" | Where-Object { $_.EventID -eq 41}

# 下令 2 改良版
Get-WinEvent -FilterHashtable @{ProviderName = "Microsoft-Windows-Kernel-Power"; Id = 41}

Get-WinEvent 是 Powershell 7 中获取 Windows 日志的新下令,不同于此前的Get-EventLog能同时挑选具体的事变日志-LogName和事变源-SourceGet-WinEvent在使用时只能在挑选事变日志-Logname和事变源-ProviderName二选一Get-WinEvent 还可以使用一个新的写法 -FilterHashtable,低落下令长度的同时提高索引听从。

以上就是本文的全部内容了,渴望可以在将来协助到你。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享