即使現(xiàn)在的系統(tǒng)相比 20 年前已經(jīng)穩(wěn)定了很多了,使用電腦時(shí)也難免會(huì)遇到藍(lán)屏、意外重啟、甚至是意外關(guān)機(jī)的情況 。盡管這種問題可能只是偶然發(fā)生,可以說是不太走運(yùn);但更多的時(shí)候放著不管,反而會(huì)讓電腦的問題出現(xiàn)得越來越頻繁 。

文章插圖
一個(gè)藍(lán)屏小「貼士」
所以,這篇文章就旨在幫助大家快速找到讓電腦不能正常工作的罪魁禍?zhǔn)祝m然不一定能「藥到病除」 , 但也能讓你離正確答案更近一步 。
macOS盡管 macOS 是Apple為Mac產(chǎn)品線定制的操作系統(tǒng) , 但實(shí)際上出現(xiàn)問題的機(jī)會(huì)還是很多的 。雖然在macOS中我們可以通過控制臺(tái)獲取日志信息,但從macOS Sierra及更高版本開始,考慮到安全和隱私問題,控制臺(tái)只允許訪問最近的日志條目 , 而不是整個(gè)日志文件 。
所以想要分析日志中所有和關(guān)機(jī)有關(guān)的事件,就需要通過「終端」和相應(yīng)的指令進(jìn)行分析 。如果你的 Mac 近期出現(xiàn)了意外重啟等問題,不妨跟著下面的步驟試一試,打開「終端」,并輸入如下指令:
log show --predicate eventMessage contains "Previous shutdown cause" --last 24h上面這一串指令會(huì)使用 log show 檢索系統(tǒng)日志 , predicate 可以進(jìn)一步篩選日志,在本文中我們篩選的日志類型是 eventMessage中包含Previous shutdown cause(此前關(guān)機(jī)的原因)的信息,而篩選的時(shí)間范圍--last 24h則是過去 24 小時(shí),如果有必要的話可以擴(kuò)展到 36 小時(shí)甚至更長 。

文章插圖
來自作者群的一個(gè)朋友
靜靜等待一段,你就能看到如上圖一樣的、將日志篩選后到結(jié)果,我們需要注意的信息就是Previous shutdown cause后續(xù)跟隨的數(shù)字,這個(gè)數(shù)字代表著 Mac 電腦上次是因?yàn)槭裁丛蚨P(guān)閉的 。總的來說 , 負(fù)數(shù)的代碼通常是因硬件而關(guān)機(jī)的,該信息由系統(tǒng)管理控制器 (SMC)2或處理器本身3報(bào)告;而正數(shù)因軟件而關(guān)機(jī)的 。以下是每個(gè)代碼所包含的含義:
數(shù)字
解釋
解決方案
5
正常關(guān)機(jī)
由用戶或命令發(fā)起的關(guān)機(jī),沒有問題
3
硬關(guān)機(jī)
因電源按鈕關(guān)機(jī)
如果不是由你按下的話,需要檢查電源按鈕0
斷電
因斷電導(dǎo)致的關(guān)機(jī) , 具體參見下文
-3
多個(gè)溫度傳感器溫度過高
安裝可以獲取傳感器溫度度數(shù)的軟件,
檢查具體傳感器的問題,并在必要的
情況下向 Apple 申請(qǐng)維修 。-14
瞬態(tài)尖峰或浪涌
Mac Pro 上內(nèi)置電源的問題,可能需要售后
-20
T2 芯片關(guān)機(jī)
由 T2 芯片或 BridgeOS 引起的關(guān)機(jī)
反復(fù)出現(xiàn)需要進(jìn)行售后-60
損壞的主目錄區(qū)塊
備份你的數(shù)據(jù),擦除磁盤并重新安裝 macOS
在重新安裝前可能會(huì)有數(shù)據(jù)丟失的風(fēng)險(xiǎn)-61/-62
定時(shí)器監(jiān)測(cè)到未響應(yīng)
的程序并關(guān)閉/重啟系統(tǒng)在未響應(yīng)的程序?qū)е聝?nèi)核崩潰之前 ,
強(qiáng)行重啟計(jì)算機(jī),具體參見下文-65
未知
重裝 macOS 大概率解決
-71
內(nèi)存模塊過熱
對(duì)于臺(tái)式機(jī):更換內(nèi)存,確認(rèn)是否是硬件問題
對(duì)于筆記本:檢查溫度、風(fēng)扇和傳感器
通用:清理風(fēng)扇和氣道,尋求售后-74
電池溫度過高
重置 smc
檢查電池硬件是否正常,或?qū)で笫酆?75
無法連接 AC 適配器
檢查插頭、適配器、線纜和硬件接口
-78
AC 適配器回報(bào)錯(cuò)誤的電流
檢查插頭、適配器、線纜和硬件接口
-79
電池回報(bào)錯(cuò)誤的電流
檢查電池、檢查電池是否連接到主板
-85
芯片溫度過高
檢查 CPU、GPU、SoC 的散熱系統(tǒng)或風(fēng)扇
-95
CPU 溫度過高
檢查 CPU 散熱或風(fēng)扇、重置 smc
-100
電源溫度過高
檢查風(fēng)扇或氣流、移除外接電源
-102
電壓過高
電壓過高導(dǎo)致關(guān)機(jī)保護(hù) , 檢查電源或電池
-103
電池欠壓
檢查電池,或更換電池
-104
未知
可能與電池有關(guān),檢查電池,或更換電池
-108/-112/-128
未知
可能與內(nèi)存有關(guān),檢查內(nèi)存 , 或更換內(nèi)存
如果你的 Mac 出現(xiàn)大量因?yàn)?0(斷電)導(dǎo)致的意外關(guān)閉,那么就需要進(jìn)行一定的排查 。對(duì)于沒有電池的臺(tái)式 Mac 而言,主要檢查的就是電源線有沒有牢牢插入到電源接口中;如果依然出現(xiàn)這樣的問題則很有可能是計(jì)算機(jī)內(nèi)的電源出現(xiàn)了問題,需要進(jìn)行維修 。對(duì)于有電池的筆記本型 Mac 而言 , 需要同時(shí)檢查電源線和電池;筆記本型 Mac 通常會(huì)在電池耗盡之前進(jìn)入休眠狀態(tài);出現(xiàn)斷電而導(dǎo)致的關(guān)機(jī)很有可能是電池或讀取電量的電池控制器有硬件問題,對(duì)于 Intel 款 Mac 而言需要根據(jù)官方文檔重置 smc , 而 M 系列 Mac 需要手動(dòng)重啟一次 。如果上述步驟依然不起作用的話,也需要進(jìn)行維修 。
長時(shí)間未響應(yīng)可能會(huì)讓整個(gè)系統(tǒng)崩潰 , 嚴(yán)重時(shí)還會(huì)導(dǎo)致相關(guān)數(shù)據(jù)丟失 。定時(shí)器超時(shí)作為 macOS 中一項(xiàng)功能 , 它可以有效防止未響應(yīng)的程序?qū)е碌膬?nèi)核崩潰 。偶然發(fā)生的 -61/-62 錯(cuò)誤可能沒什么問題 , 但短時(shí)間內(nèi)出現(xiàn)大量的類似錯(cuò)誤就要對(duì)電腦進(jìn)行排查了;-61 表示系統(tǒng)認(rèn)為不能自動(dòng)恢復(fù)的情況只能進(jìn)行關(guān)機(jī),而 -62 用于系統(tǒng)確定重啟后可能解決的情況并進(jìn)行重啟 。排查的辦法很簡單,在 macOS 啟動(dòng)時(shí)進(jìn)入安全模式 , 在安全模式下啟動(dòng)項(xiàng)目和守護(hù)程序都被禁用;如果沒有再次意外關(guān)機(jī)則是最近安裝或更新的程序出現(xiàn)了問題,如果再次意外關(guān)機(jī)則和系統(tǒng)本身有關(guān) 。
以上就是 macOS 的部分了,相信這個(gè)指令可以簡單幫你定位問題,并為你后續(xù)的問題解決打下一個(gè)不錯(cuò)的基礎(chǔ) 。
Windows除了 macOS,Windows 系統(tǒng)日志同樣可以在時(shí)間查看器中查看并進(jìn)行篩?。悸墻緱嫦嘍浴父垂擰骨矣糜諫稈〉?UI 選項(xiàng)更為復(fù)雜,因此我也更推薦大家使用命令行工具獲取和篩選日志 。

文章插圖
有的時(shí)候用 UI 界面反而會(huì)讓一件事情變得更復(fù)雜
如果你的 PC 電腦近期出現(xiàn)了意外重啟等問題,不妨跟著下面的步驟試一試:
# 命令 1Get-Eventlog -LogName System -Source "User32" | group EventID# 命令 2Get-EventLog -LogName System -Source "Microsoft-Windows-Kernel-Power" | Where-Object { $_.EventID -eq 41 }Get-EventLog 是 Windows 中獲取日志的命令,-LogName System 則限定了查找由系統(tǒng)生成的命令 。-Source 則是來源,User32 和 Microsoft-Windows-Kernel-Power 則是兩個(gè)不同的來源 。
從用戶或程序?qū)用孢M(jìn)行分析User32 是一個(gè) Windows 系統(tǒng)應(yīng)用程序源,它包含了許多與用戶界面相關(guān)的函數(shù),如窗口創(chuàng)建、消息處理、控件操作等等;它還會(huì)負(fù)責(zé)處理用戶交互方面的任務(wù),例如鼠標(biāo)、鍵盤輸入和窗口管理等 。因此由用戶或是程序發(fā)起的事件,如登錄、注銷、鎖定或解鎖計(jì)算機(jī)等,都可以通過 User32 來源來定位 。而后 | 用于進(jìn)一步處理 Get-EventLog 得到的數(shù)據(jù),這里按照 EventID事件 ID 來group 成組 。

文章插圖
目前我電腦中只有 1074 這個(gè)事件,這個(gè) 1074 事件是計(jì)算機(jī)的正常關(guān)機(jī)的主要表現(xiàn)形式 。如果 User32 有其他的 EventID 那么用下面的命令進(jìn)一步分析:
# 本例中依然用 1074 做分析Get-Eventlog -LogName System -Source "User32" -Newest 1 | Where-Object { $_.EventID -eq 1074} | fl *前面的命令就不再贅述了,-Newest 1 表示選取最近的一個(gè)日志, | 用于進(jìn)一步篩選 Get-EventLog 得到的數(shù)據(jù) 。Where-Object 表示篩選一個(gè)對(duì)象數(shù)組,$_ 表示當(dāng)前處理的對(duì)象(也就是 | 傳遞過來的數(shù)據(jù) ),.EventID 表示對(duì)象的 EventID 屬性,-eq 是一個(gè)比較運(yùn)算符,表示等于,這里等于的 1074 這個(gè)事件 。| 依然是用于進(jìn)一步處理 Where-Object 得到的數(shù)據(jù),由 fl(也可以用完整寫法 Format-List 替代)格式化輸出對(duì)象的*所有屬性 。

文章插圖
找到其中的 Reason Code: 0x80020010 可以得知這是一個(gè)計(jì)劃內(nèi)的關(guān)機(jī)請(qǐng)求,如果不是服務(wù)器的話,這一般由 Windows Update 自動(dòng)更新發(fā)起;而由用戶發(fā)起的關(guān)機(jī)則會(huì)被標(biāo)識(shí)為 0x0 。以下是常見的 Reason Code 所表示的含義,完整列表可以參見這里:
值
含義
0x00040000/0x00030000
應(yīng)用/軟件問題導(dǎo)致關(guān)機(jī)/重啟
0x00010000
硬件問題導(dǎo)致關(guān)機(jī)/重啟
0x00020000
操作系統(tǒng)問題導(dǎo)致關(guān)機(jī)/重啟
0x00060000
電源問題導(dǎo)致的關(guān)機(jī)
0x00050000
系統(tǒng)(通常指的是 UEFI)問題導(dǎo)致關(guān)機(jī)/重啟
0x0000000F
藍(lán)屏問題導(dǎo)致關(guān)機(jī)/重啟
0x0000000b
電源斷開導(dǎo)致的關(guān)機(jī)
0x00000007
硬盤問題導(dǎo)致關(guān)機(jī)/重啟
0x0000000d
驅(qū)動(dòng)問題導(dǎo)致關(guān)機(jī)/重啟
0x00000005
系統(tǒng)長時(shí)間無響應(yīng)導(dǎo)致關(guān)機(jī)/重啟
藍(lán)屏問題導(dǎo)致關(guān)機(jī)或重啟,還可以進(jìn)一步下方的命令進(jìn)行分析 。
從電源管理相關(guān)的事件入手進(jìn)行分析不過很多意外關(guān)機(jī)的事件,比如藍(lán)屏導(dǎo)致的 , 無法被 User32 捕獲 , 因此從Microsoft-Windows-Kernel-Power 獲取電源狀態(tài)、電源事件以及與電源管理相關(guān)的錯(cuò)誤和警告信息得到更多的信息 。
Get-EventLog -LogName System -Source "Microsoft-Windows-Kernel-Power" | Where-Object { $_.EventID -eq 41 }代碼中相似的內(nèi)容不再贅述,在Microsoft-Windows-Kernel-Power和意外關(guān)機(jī)有關(guān)的 EventID 是 41,這個(gè)事件通常是在意外關(guān)機(jī)后重啟的階段中生成的 。輸入上面的命令以后,Powershell 會(huì)輸出一段包含十進(jìn)制 BugcheckCode 的內(nèi)容 , 首先需要將它轉(zhuǎn)換為十六進(jìn)制,以做進(jìn)一步分析 。
如 159 等同于 0x0000009f,209 等同于 0x000000d1 等等,轉(zhuǎn)換后的十六進(jìn)制就可以得到最終的含義了 。BugcheckCode 內(nèi)容也和藍(lán)屏?xí)r輸出的錯(cuò)誤碼是相同的內(nèi)容 , 有的時(shí)候藍(lán)屏代碼一跳而過,所以這也是找到問題的好辦法 。以下是常見的錯(cuò)誤的代碼以及含義,完整列表請(qǐng)看這里:
代碼
名稱
含義
0x0000009f
DRIVER_POWER_STATE_FAILURE
驅(qū)動(dòng)程序所請(qǐng)求的電源狀態(tài)不一致
需要降級(jí)或更換驅(qū)動(dòng)0x000000d1
DRIVER_IRQL_NOT_LESS_OR_EQUAL
驅(qū)動(dòng)程序試圖訪問可分頁內(nèi)存,但中斷太多
需要降級(jí)或更換驅(qū)動(dòng)0x00000024
NTFS_FILE_SYSTEM
NTFS 文件系統(tǒng)出現(xiàn)問題,檢查文件系統(tǒng)
或者更換硬盤0x000000f3
DISORDERLY_SHUTDOWN
由于內(nèi)存不足而無法關(guān)機(jī)
檢查內(nèi)存或添加更多的內(nèi)存0x0000001a
MEMORY_MANAGEMENT
內(nèi)存問題
內(nèi)存接觸不良,或是其他內(nèi)存問題0x00000034
CACHE_MANAGER
文件系統(tǒng)的緩存管理器問題
重裝電腦 , 或者加大非分頁池內(nèi)存0x000000EF
CRITICAL_PROCESS_DIED
關(guān)鍵系統(tǒng)進(jìn)程已終止
需要修復(fù)系統(tǒng),或者重裝系統(tǒng)由于錯(cuò)誤碼的種類繁多,因此這里不太可能一一列舉 。另外還需要注意的是 , 同一個(gè)錯(cuò)誤可能會(huì)有不同的原因而導(dǎo)致,排查時(shí)可以從近期的軟件改動(dòng)入手去尋找電腦意外關(guān)機(jī)的原因,排查完軟件以后才是排查硬件的真正時(shí)機(jī) 。
關(guān)于 Powershell 7 使用中的一些細(xì)節(jié)值得注意的是 , Get-EventLog只能使用 Windows 內(nèi)的 Powershell 運(yùn)行;Powershell 7 中因?yàn)橄嚓P(guān) API 已被棄用,會(huì)提示無效指令,因此需要換用Get-WinEvent命令:
# 命令 1Get-WinEvent -ProviderName User32 | group EventID# 命令 2Get-WinEvent -ProviderName "Microsoft-Windows-Kernel-Power" | Where-Object { $_.EventID -eq 41}# 命令 2 改進(jìn)版Get-WinEvent -FilterHashtable @{ProviderName = "Microsoft-Windows-Kernel-Power"; Id = 41}Get-WinEvent 是 Powershell 7 中獲取 Windows 日志的新命令,不同于此前的Get-EventLog能同時(shí)篩選具體的事件日志-LogName和事件源-Source;Get-WinEvent在使用時(shí)只能在篩選事件日志-Logname和事件源-ProviderName中二選一 。Get-WinEvent 還可以使用一個(gè)新的寫法 -FilterHashtable,降低命令長度的同時(shí)提高索引效率 。
【電腦總是藍(lán)屏關(guān)機(jī)怎么回事兒呀 電腦總藍(lán)屏自動(dòng)重啟什么原因】以上就是本文的全部內(nèi)容了,希望可以在未來幫助到你 。
- oppo手機(jī)不停的重啟進(jìn)入不了界面怎么辦 oppo手機(jī)不停的重啟進(jìn)入不了界面怎么回事
- win10關(guān)閉自動(dòng)更新軟件方法 win10徹底關(guān)閉自動(dòng)更新軟件
- 電腦突然變得巨卡無比恢復(fù)出廠設(shè)置有用嗎 電腦卡恢復(fù)出廠好還是重裝好
- 建行手機(jī)銀行官方下載 建行手機(jī)銀行下載網(wǎng)址
- 手機(jī)銀行 建設(shè) 下載手機(jī)銀行建行手機(jī)銀行
- 打不開網(wǎng)頁的解決辦法 打不開網(wǎng)頁什么原因
- 電腦連接光貓wifi上不了網(wǎng) 電腦直接連光貓無法上網(wǎng)
- 用手機(jī)當(dāng)無線網(wǎng)卡連接電腦上網(wǎng) 手機(jī)插電腦當(dāng)無線網(wǎng)卡
- 電腦關(guān)機(jī)快捷鍵? 電腦關(guān)機(jī)快捷鍵有哪些
