屏停機(jī)碼查詢指南:從STOP代碼到系統(tǒng)日志排查)
簡(jiǎn)介《Windows藍(lán)屏代碼查詢》是一份面向Windows普通用戶、裝機(jī)維護(hù)人員與初級(jí)運(yùn)維的故障排查參考文檔圍繞藍(lán)屏畫面中的停機(jī)碼、故障檢查信息與處理建議展開(kāi)幫助讀者在系統(tǒng)異常重啟或頻繁藍(lán)屏?xí)r快速定位線索。壓縮包內(nèi)共1個(gè)doc文件約133KB篇幅集中便于在另一臺(tái)電腦上查閱或打印備用。文檔梳理了STOP停機(jī)碼、括號(hào)參數(shù)、錯(cuò)誤名及首行驅(qū)動(dòng)/設(shè)備提示的含義并匯總重啟、檢查新硬件、排查新驅(qū)動(dòng)與服務(wù)、查殺病毒、檢查BIOS兼容性、查看系統(tǒng)日志、查詢停機(jī)碼、使用最后一次正確配置、安裝補(bǔ)丁等處理辦法同時(shí)附有常見(jiàn)藍(lán)屏代碼對(duì)照可作為日常排錯(cuò)時(shí)的速查清單。目前已有5449人學(xué)習(xí)下載適合需要理解藍(lán)屏信息并積累基礎(chǔ)診斷思路的讀者參考。1. 藍(lán)屏代碼到底是什么為什么老手只讓你記 STOP 后面那幾個(gè)字符電腦毫無(wú)征兆地整屏變藍(lán)底下壓著一行STOP 0x0000001E多數(shù)人的第一反應(yīng)是掏出手機(jī)拍照然后發(fā)到群里問(wèn)這啥意思。這一串就是藍(lán)屏代碼正式名稱叫停機(jī)碼Stop Code是系統(tǒng)在徹底停下之前留下的唯一一句交代——一段十六進(jìn)制編號(hào)專門標(biāo)明這次崩潰屬于哪個(gè)類型。查藍(lán)屏代碼說(shuō)白了就是拿這個(gè)編號(hào)去比對(duì)一份故障目錄編號(hào)對(duì)上了排查方向也就有了。它值得花十分鐘搞懂不是因?yàn)殡y而是因?yàn)榇蟛糠秩丝ㄔ谧钋懊婺且徊娇床欢?、記不住、不知道拿它去哪兒查。搞清這串?dāng)?shù)字哪幾位有用、哪些是給驅(qū)動(dòng)程序開(kāi)發(fā)人員看的噪音后面無(wú)論是自己動(dòng)手還是找人幫忙都能少繞一大圈。2. 一塊藍(lán)屏其實(shí)分三段停機(jī)碼、參數(shù)和錯(cuò)誤名各管什么2.1 第一段STOP 后面那串十六進(jìn)制才是主角藍(lán)屏畫面信息量最大的地方是頂部那行加粗的故障檢查信息。以一段典型內(nèi)容為例***STOP 0x0000001E(0xC0000005,0xFDE38AF9,0x0000001,0x7E8B0EB4) KMODE_EXCEPTION_NOT_HANDLED ***這一行拆開(kāi)是三個(gè)部分功能完全不同混著看就容易懵。第一部分是停機(jī)碼也就是STOP 0x0000001E。它用來(lái)識(shí)別已經(jīng)發(fā)生的錯(cuò)誤類型是整個(gè)畫面里唯一具有「分類」意義的信息。換句話說(shuō)它回答的不是「哪里壞了」而是「這次壞屬于哪一類」先把范圍從幾萬(wàn)種可能壓縮到幾十種。第二部分是括號(hào)里那四個(gè)數(shù)字集0xC0000005、0xFDE38AF9、0x0000001、0x7E8B0EB4。這四個(gè)數(shù)是隨機(jī)的、由開(kāi)發(fā)人員定義的參數(shù)普通用戶根本無(wú)法理解只有驅(qū)動(dòng)程序編寫者或者操作系統(tǒng)開(kāi)發(fā)人員才看得懂。打個(gè)比方它像汽車故障碼后面附帶的一串實(shí)時(shí)數(shù)據(jù)流維修電腦能讀出來(lái)但車主盯著看沒(méi)用讀懂了也改不了任何東西。第三部分是錯(cuò)誤名KMODE_EXCEPTION_NOT_HANDLED全大寫、帶下劃線讀起來(lái)像亂碼其實(shí)是崩潰類型的英文短語(yǔ)縮寫。信息的第一行通常就是用來(lái)識(shí)別產(chǎn)生錯(cuò)誤的驅(qū)動(dòng)程序或者設(shè)備的這也是為什么值得把整行拍下來(lái)。2.2 第二段和第三段推薦操作與調(diào)試端口在說(shuō)什么藍(lán)屏畫面的第二段是推薦操作也就是系統(tǒng)建議你接下來(lái)做什么。這部分要降低期待有時(shí)它只是一般性的建議比如到銷售商網(wǎng)站查找 BIOS 的更新有時(shí)它會(huì)顯示一條與當(dāng)前問(wèn)題相關(guān)的提示指向性稍強(qiáng)一點(diǎn)。但絕大多數(shù)情況下屏幕上給出的唯一建議就是重啟。這不是系統(tǒng)偷懶而是它此刻已經(jīng)停機(jī)手里沒(méi)有更多信息可以給。重啟是成本最低、也最有可能見(jiàn)效的動(dòng)作先給你一個(gè)「現(xiàn)在就能做」的選項(xiàng)剩下的分析得等系統(tǒng)重新跑起來(lái)才能做。第三段是調(diào)試端口信息。這段東西看起來(lái)最技術(shù)作用其實(shí)很實(shí)在它告訴你內(nèi)存轉(zhuǎn)儲(chǔ)映像有沒(méi)有寫到磁盤上還會(huì)告訴你調(diào)試信息是否被傳到了另一臺(tái)電腦上以及用了什么端口完成這次通訊。內(nèi)存轉(zhuǎn)儲(chǔ)映像的價(jià)值在于它可以用來(lái)確定發(fā)生問(wèn)題的性質(zhì)——相當(dāng)于飛機(jī)失事后的黑匣子記錄的是崩潰那一瞬間內(nèi)存里的現(xiàn)場(chǎng)。對(duì)普通用戶來(lái)說(shuō)這段可以忽略但如果你打算把問(wèn)題交給更懂行的人一句「轉(zhuǎn)儲(chǔ)文件已經(jīng)落在磁盤上了」能省下不少溝通成本。2.3 為什么只記第一行就夠信息密度的取舍原文里有句大實(shí)話發(fā)生藍(lán)屏?xí)r只要記下 STOP 后面的停機(jī)碼就行。這話不是敷衍而是基于信息密度的判斷。第一行是個(gè)案信息。停機(jī)碼對(duì)應(yīng)具體的崩潰類型錯(cuò)誤名對(duì)應(yīng)具體的異常名稱兩者合起來(lái)能直接拿去檢索。第二段是通用建議不管你是內(nèi)存條松了還是驅(qū)動(dòng)沖突它大概率還是那句「重啟試試」。第三段是配置狀態(tài)描述的是這臺(tái)機(jī)器的調(diào)試設(shè)置跟故障原因沒(méi)有因果關(guān)系。所以實(shí)際的記錄方法可以很簡(jiǎn)單手機(jī)拍下整屏事后只抄第一行。如果只來(lái)得及記一樣?xùn)|西記停機(jī)碼如果還來(lái)得及記第二樣記錯(cuò)誤名。這兩個(gè)東西是你后面所有排查工作的入口別的都可以先放下。提示拍照時(shí)盡量把整屏拍全包括底部的進(jìn)度百分比。某些情況下進(jìn)度卡在某個(gè)數(shù)字不動(dòng)本身也是一條線索。3. 為什么一串?dāng)?shù)字能定位故障停機(jī)碼背后的排查邏輯3.1 系統(tǒng)寧可停機(jī)的理由藍(lán)屏是保護(hù)而不是壞掉很多人把藍(lán)屏理解成「系統(tǒng)崩了」這個(gè)理解方向反了。操作系統(tǒng)在遇到嚴(yán)重錯(cuò)誤時(shí)主動(dòng)停下來(lái)是一種為了防止系統(tǒng)進(jìn)一步損壞而采取的保護(hù)措施。它不是故障本身而是故障的剎車。打個(gè)比方家里的電路過(guò)載時(shí)保險(xiǎn)絲會(huì)燒斷你不會(huì)怪保險(xiǎn)絲質(zhì)量差因?yàn)樗鼰龜嗾菫榱瞬蛔岆娋€起火。藍(lán)屏也是同一個(gè)邏輯內(nèi)核層面已經(jīng)出現(xiàn)了無(wú)法安全處理的狀況如果繼續(xù)跑下去內(nèi)存里的錯(cuò)誤數(shù)據(jù)可能被寫進(jìn)磁盤文件系統(tǒng)可能被寫壞損失會(huì)從「重啟一次」擴(kuò)大到「重裝系統(tǒng)」。這時(shí)候主動(dòng)停機(jī)是代價(jià)最小的選擇。理解了這一點(diǎn)很多疑問(wèn)就順了。為什么藍(lán)屏不能「點(diǎn)一下繼續(xù)」因?yàn)槔^續(xù)下去就是帶病運(yùn)行。為什么藍(lán)屏信息這么簡(jiǎn)陋因?yàn)樗窃谙到y(tǒng)已經(jīng)半癱瘓的狀態(tài)下、用最保守的方式往屏幕上寫幾個(gè)字能寫出來(lái)已經(jīng)不錯(cuò)了。3.2 停機(jī)碼為什么比錯(cuò)誤描述更可靠文字描述是給人讀的停機(jī)碼是給檢索用的兩者定位不同。文字描述天生帶主觀色彩。同一類問(wèn)題不同版本的系統(tǒng)可能寫成不同的措辭翻譯成中文之后表述還會(huì)再變一次。你拿著「系統(tǒng)無(wú)法讀取指定的裝置」去搜搜到的可能是打印機(jī)問(wèn)題也可能是硬盤問(wèn)題因?yàn)檫@句話太寬泛了。停機(jī)碼不一樣它是一個(gè)枚舉值一個(gè)編號(hào)固定對(duì)應(yīng)一個(gè)崩潰類型不隨語(yǔ)言變、不隨版本措辭變。這種穩(wěn)定性帶來(lái)兩個(gè)好處。第一它可以作為搜索項(xiàng)在官方知識(shí)庫(kù)和其他技術(shù)資料里直接使用命中率高。第二它讓不同的人描述同一個(gè)問(wèn)題時(shí)能對(duì)得上號(hào)——你說(shuō)「我這是 0x0000001E」對(duì)方立刻知道該往哪個(gè)方向想不用再問(wèn)十句「什么時(shí)候藍(lán)的、藍(lán)之前裝了什么」。錯(cuò)誤名同樣是穩(wěn)定標(biāo)識(shí)而且語(yǔ)義比純數(shù)字直觀KMODE_EXCEPTION_NOT_HANDLED一看就知道跟內(nèi)核模式下的異常處理有關(guān)。所以最理想的檢索組合是「停機(jī)碼 錯(cuò)誤名」一起用數(shù)字負(fù)責(zé)精確匹配單詞負(fù)責(zé)讓搜索引擎和人腦都更容易理解。3.3 十六進(jìn)制與十進(jìn)制那張長(zhǎng)對(duì)照表怎么讀藍(lán)屏上所有編號(hào)都帶0x前綴這是十六進(jìn)制的標(biāo)記。日常用的十進(jìn)制滿十進(jìn)一十六進(jìn)制滿十六進(jìn)一多出來(lái)的六個(gè)數(shù)位用 A 到 F 表示A 是 10F 是 15。拿0x0000001E舉例前面六個(gè) 0 是補(bǔ)位真正有效的是最后的1E。E 代表 14所以這個(gè)數(shù)是 1×16 14 30。同樣0x00000050就是 5×16 0 80。心算不需要多快記住「前一位乘十六、后一位直接加」就夠用。這份資料里附了一張從 0 到 1320 的長(zhǎng)表左列是十進(jìn)制、右列是十六進(jìn)制后面跟著中文解釋。這張表非常有用但有個(gè)前提得先講清楚它是一張系統(tǒng)返回碼對(duì)照表不是藍(lán)屏停機(jī)碼表。兩者都用十六進(jìn)制書寫數(shù)值撞車的情況很常見(jiàn)但含義完全是兩回事。這個(gè)坑放到下一章細(xì)說(shuō)這里先用一小段代碼把換算關(guān)系跑一遍建立手感。# 演示把藍(lán)屏上抄到的十六進(jìn)制停機(jī)碼換算成十進(jìn)制并與返回碼表比對(duì) # 注意停機(jī)碼和系統(tǒng)返回碼是兩套編號(hào)體系數(shù)值相同不代表含義相同 return_code_table { 0x0000: 作業(yè)完成, 0x001E: 系統(tǒng)無(wú)法讀取指定的裝置, 0x0050: 檔案已經(jīng)存在, } stop_code 0x0000001E # 藍(lán)屏第一行抄下來(lái)的停機(jī)碼 value int(stop_code, 16) # 按十六進(jìn)制解析得到十進(jìn)制 30 print(stop_code, 換算成十進(jìn)制是, value) print(返回碼表里 0x001E 的解釋, return_code_table.get(0x001E)) # 停機(jī)碼 0x0000001E 對(duì)應(yīng)的錯(cuò)誤名是 KMODE_EXCEPTION_NOT_HANDLED # 與上面返回碼表中 0x001E 的解釋并不是同一件事代碼里做了三件事。int(stop_code, 16)是核心第二個(gè)參數(shù)告訴解釋器「這個(gè)字符串按十六進(jìn)制讀」不寫這個(gè)參數(shù)就會(huì)按十進(jìn)制解析然后報(bào)錯(cuò)。return_code_table是一個(gè)字典鍵用十六進(jìn)制字面量寫查的時(shí)候直接傳0x001E不用手動(dòng)換算。最后兩行注釋是關(guān)鍵提醒同一個(gè) 1E在兩套體系里指向完全不同的東西。參數(shù)上唯一要注意的是位數(shù)。藍(lán)屏停機(jī)碼通常寫成八位十六進(jìn)制0x0000001E而返回碼表里往往只寫四位0x001E高位補(bǔ)零不影響數(shù)值比對(duì)時(shí)把前導(dǎo)零無(wú)視掉就行。4. 常見(jiàn)誤區(qū)藍(lán)屏代碼查詢里最容易搞混的幾件事4.1 易混點(diǎn)一停機(jī)碼和系統(tǒng)返回碼不是一回事這是最要命的一條也是最多人翻車的地方。你抄下0x0000001E翻到資料里那張長(zhǎng)表找到30 0x001E 系統(tǒng)無(wú)法讀取指定的裝置然后開(kāi)始懷疑自己的硬盤。方向從一開(kāi)始就偏了。為什么容易混兩個(gè)原因。一是長(zhǎng)得像都是0x開(kāi)頭的一串十六進(jìn)制位數(shù)還經(jīng)常撞上。二是資料本身把它們放在了一起——一邊是藍(lán)屏信息解析一邊是幾百行的返回碼表中間沒(méi)有明顯的分隔說(shuō)明讀者很自然會(huì)把它們當(dāng)成同一套東西。實(shí)際上返回碼表描述的是應(yīng)用程序調(diào)用系統(tǒng)接口失敗時(shí)的返回狀態(tài)屬于「某次操作沒(méi)成功」停機(jī)碼描述的是「整個(gè)系統(tǒng)停下來(lái)了」兩者的嚴(yán)重程度差著好幾個(gè)數(shù)量級(jí)。怎么區(qū)分看來(lái)源。從藍(lán)屏畫面上抄下來(lái)的一定是停機(jī)碼。從軟件報(bào)錯(cuò)彈窗、日志文件、程序返回值里看到的多半是返回碼。另一個(gè)判據(jù)是位數(shù)和寫法停機(jī)碼習(xí)慣補(bǔ)齊八位且總跟著一個(gè)全大寫的錯(cuò)誤名返回碼通常不配錯(cuò)誤名就那么孤零零一個(gè)數(shù)。4.2 易混點(diǎn)二停機(jī)碼和錯(cuò)誤名誰(shuí)更好查有人只記數(shù)字有人只記單詞兩種做法都有短板。為什么容易混因?yàn)樗鼈冊(cè)谄聊簧习ぶ雌饋?lái)像同一信息的兩種寫法實(shí)際上分工不同。停機(jī)碼精確但抽象0x0000001E這串東西對(duì)人腦沒(méi)有任何聯(lián)想錯(cuò)誤名直觀但可能有變體同一個(gè)詞根下不同系統(tǒng)版本可能給出略有差異的拼寫。怎么區(qū)分使用把停機(jī)碼當(dāng)成「精確檢索鍵」把錯(cuò)誤名當(dāng)成「理解入口」。搜索時(shí)兩個(gè)一起丟進(jìn)去命中率最高。如果只能用一個(gè)優(yōu)先用錯(cuò)誤名因?yàn)樗阉饕鎸?duì)英文短語(yǔ)的容錯(cuò)更好而純數(shù)字容易被拆錯(cuò)位——少抄一個(gè) 0結(jié)果就跑到另一個(gè)故障類型上去了。抄寫停機(jī)碼時(shí)務(wù)必?cái)?shù)清楚零的個(gè)數(shù)這是血淚經(jīng)驗(yàn)。4.3 易混點(diǎn)三括號(hào)里那四個(gè)參數(shù)不是密碼0xC0000005、0xFDE38AF9、0x0000001、0x7E8B0EB4四個(gè)數(shù)排在一起很像某種校驗(yàn)碼或者解鎖密鑰于是有人試著把它們填進(jìn)搜索框逐個(gè)查。能查到東西但查到的多半是別人的討論帖看完還是不知道跟自己有什么關(guān)系。為什么容易混因?yàn)樗鼈兛雌饋?lái)「有信息」而且確實(shí)只有開(kāi)發(fā)人員才懂——這一點(diǎn)資料里寫得很明白。人的直覺(jué)是「看不懂的東西一定很重要」但在藍(lán)屏這個(gè)場(chǎng)景里恰恰相反這四位數(shù)是隨機(jī)的、由開(kāi)發(fā)人員定義的參數(shù)服務(wù)于驅(qū)動(dòng)程序編寫者和系統(tǒng)開(kāi)發(fā)人員普通人既無(wú)法解讀也沒(méi)法據(jù)此采取任何動(dòng)作。怎么區(qū)分記住一條邊界這四個(gè)參數(shù)是給「能改代碼的人」看的不是給「要修電腦的人」看的。你要做的動(dòng)作只有拍照留存萬(wàn)一以后要把問(wèn)題交給更專業(yè)的人這四個(gè)數(shù)就是完整的現(xiàn)場(chǎng)記錄。除此之外不必在它們身上花任何精力。4.4 易混點(diǎn)四重啟后不再藍(lán)屏不等于修好了重啟能解決相當(dāng)一部分藍(lán)屏這是真的——有時(shí)只是某個(gè)程序或者驅(qū)動(dòng)程序一時(shí)犯錯(cuò)重啟后就會(huì)恢復(fù)正常。但「恢復(fù)正?!购汀竼?wèn)題消失」是兩件事。為什么容易混因?yàn)榘Y狀確實(shí)消失了機(jī)器跑得好好的沒(méi)有任何理由繼續(xù)折騰??扇绻蜻€在比如某根內(nèi)存條接觸不良、某個(gè)驅(qū)動(dòng)和系統(tǒng)版本不匹配、某個(gè)后臺(tái)服務(wù)在特定條件下會(huì)踩到內(nèi)核的雷那么下一次觸發(fā)只是時(shí)間問(wèn)題。真正麻煩的是那種「一個(gè)月藍(lán)一次」的機(jī)器每次都被重啟糊弄過(guò)去等到頻繁藍(lán)屏?xí)r已經(jīng)很難回溯第一次是什么時(shí)候開(kāi)始的。怎么區(qū)分看頻率和復(fù)現(xiàn)條件。重啟后一周內(nèi)沒(méi)再犯大概率是一次偶發(fā)。同一個(gè)停機(jī)碼在兩周內(nèi)出現(xiàn)兩次以上就值得認(rèn)真對(duì)待了。如果每次都在做同一件事時(shí)藍(lán)比如插上某個(gè)外設(shè)、打開(kāi)某個(gè)程序、進(jìn)入睡眠喚醒之后那基本可以鎖定觸發(fā)條件這比盲目重裝系統(tǒng)有效得多。4.5 易混點(diǎn)五「最后一次正確配置」不是系統(tǒng)還原啟動(dòng)時(shí)按 F8 進(jìn)高級(jí)啟動(dòng)選項(xiàng)里面有個(gè)「最后一次正確配置」很多人把它理解成「把系統(tǒng)退回到昨天」于是期待它能把裝壞的軟件一并清掉。結(jié)果選了之后發(fā)現(xiàn)軟件還在只是驅(qū)動(dòng)回退了覺(jué)得這功能沒(méi)用。為什么容易混名字里都帶「恢復(fù)」的意思位置又都在啟動(dòng)菜單附近用起來(lái)的感覺(jué)很像。但兩者作用范圍差得遠(yuǎn)。系統(tǒng)還原會(huì)回滾文件、注冊(cè)表、已安裝程序等一整套快照「最后一次正確配置」只做一件事——用上一次成功啟動(dòng)時(shí)的硬件驅(qū)動(dòng)與服務(wù)配置來(lái)引導(dǎo)系統(tǒng)。怎么區(qū)分按場(chǎng)景選。如果藍(lán)屏出現(xiàn)在更新了硬件驅(qū)動(dòng)或者新加硬件并安裝驅(qū)動(dòng)之后這個(gè)功能就是最快的解法重啟、按 F8、選它往往一次就好。如果問(wèn)題是裝了某個(gè)軟件、改了系統(tǒng)設(shè)置之后出現(xiàn)的那要找的是卸載和還原點(diǎn)別在這個(gè)菜單里繞。5. 拿到停機(jī)碼之后查詢路徑與處置順序5.1 先記碼再看日志兩條線同時(shí)走停機(jī)碼是入口系統(tǒng)日志是旁證兩條線一起走效率最高。記錄的時(shí)候別只記一個(gè)數(shù)。停機(jī)碼、錯(cuò)誤名、藍(lán)屏發(fā)生的時(shí)間點(diǎn)、藍(lán)屏前你在做什么這四項(xiàng)湊齊后面的所有判斷都有依據(jù)。時(shí)間點(diǎn)尤其重要因?yàn)橄到y(tǒng)日志是按時(shí)間排列的有了精確到分鐘的時(shí)間戳你就能直接翻到那個(gè)位置看崩潰前最后幾條錯(cuò)誤是什么??慈罩镜姆椒ú粡?fù)雜。在開(kāi)始菜單的搜索框里輸入EventVwr.msc回車打開(kāi)事件查看器重點(diǎn)看「系統(tǒng)日志」和「應(yīng)用程序日志」里被標(biāo)記為「錯(cuò)誤」的項(xiàng)。藍(lán)屏這種級(jí)別的故障系統(tǒng)通常會(huì)留下記錄里面可能直接包含停機(jī)碼和那四個(gè)參數(shù)。# 從系統(tǒng)日志里翻出與藍(lán)屏(意外關(guān)機(jī))相關(guān)的事件 # 不同系統(tǒng)版本記錄的事件編號(hào)可能不一樣以實(shí)際日志為準(zhǔn) Get-WinEvent -FilterHashtable { LogName System # 日志類別系統(tǒng)日志 Id 1001 # 事件編號(hào)常用于記錄一次崩潰的停機(jī)碼與參數(shù) } -MaxEvents 5 | # 只看最近 5 條 Select-Object TimeCreated, Id, ProviderName, Message | Format-List # 逐條展開(kāi)方便抄寫停機(jī)碼這段命令做的是把系統(tǒng)自己記的賬翻出來(lái)和藍(lán)屏畫面上抄到的內(nèi)容對(duì)賬。LogName指定日志通道系統(tǒng)級(jí)故障寫在 System 里Id是事件編號(hào)過(guò)濾器用它能跳過(guò)大量無(wú)關(guān)記錄MaxEvents限制返回條數(shù)先看最近幾條就夠Select-Object只挑出時(shí)間、編號(hào)、來(lái)源和正文四列避免被一堆字段淹沒(méi)Format-List讓每條記錄逐字段展開(kāi)停機(jī)碼這種長(zhǎng)字符串不會(huì)被截?cái)?。兩邊?duì)得上說(shuō)明這次崩潰被完整記錄下來(lái)了后面查資料就有據(jù)可依。對(duì)不上也別急先把時(shí)間范圍放寬再看有些記錄會(huì)延遲寫入。5.2 九步處置怎么排優(yōu)先級(jí)資料里列了九條處置辦法直接從頭做到尾會(huì)很累因?yàn)樗鼈兊倪m用場(chǎng)景差別很大。正確做法是按「最近改了什么」重排順序。第一步永遠(yuǎn)是重啟。它成本最低而且能區(qū)分「偶發(fā)」和「持續(xù)」——重啟就好了的是偶發(fā)重啟還藍(lán)的才需要往下走。接下來(lái)看時(shí)間線。藍(lán)屏前裝過(guò)新硬件嗎如果有先檢查新硬件是否插牢這個(gè)被許多人忽視的問(wèn)題往往會(huì)引發(fā)許多莫名其妙的故障。確認(rèn)沒(méi)問(wèn)題就拔下來(lái)?yè)Q個(gè)插槽試試并安裝最新的驅(qū)動(dòng)程序同時(shí)對(duì)照官方的硬件兼容類別檢查一下這個(gè)硬件是否在支持列表里。不在列表里就得去硬件廠商的站點(diǎn)查或者直接問(wèn)他們的技術(shù)支持。裝過(guò)新驅(qū)動(dòng)或者新軟件嗎如果有而它又在系統(tǒng)服務(wù)里添加了相應(yīng)項(xiàng)目——?dú)⒍拒浖?、CPU 降溫軟件、防火墻軟件都屬于這一類——那就進(jìn)安全模式把它們卸載或禁用。安全模式只加載最基本的驅(qū)動(dòng)和服務(wù)能進(jìn)去本身就說(shuō)明問(wèn)題出在這部分。這兩步都沒(méi)線索再往下走通用排查查殺病毒一些靠網(wǎng)絡(luò)快速傳播的蠕蟲確實(shí)會(huì)導(dǎo)致藍(lán)屏木馬間諜軟件也可能引發(fā)同樣的問(wèn)題所以最好用不同工具各掃一遍檢查 BIOS 和硬件兼容性新裝的機(jī)器頻繁藍(lán)屏尤其要看看 BIOS 是不是該升級(jí)其中的內(nèi)存相關(guān)項(xiàng)比如緩存和映射可以試著關(guān)掉另外主板 BIOS 無(wú)法支持大容量硬盤也會(huì)導(dǎo)致藍(lán)屏這種情況只能靠升級(jí)解決。還是沒(méi)結(jié)果才輪到查停機(jī)碼這一步。把停機(jī)碼記下來(lái)到另一臺(tái)能上網(wǎng)的電腦上進(jìn)官方支持站點(diǎn)的知識(shí)庫(kù)搜索框里輸入停機(jī)碼。如果中文結(jié)果里沒(méi)有合適的信息切到英文知識(shí)庫(kù)再搜一遍通常情況下會(huì)在這里找到有用的解決案例。另外在常見(jiàn)搜索引擎里用停機(jī)碼或者后面的說(shuō)明文字當(dāng)關(guān)鍵詞搜往往也會(huì)有意外收獲——?jiǎng)e人踩過(guò)的坑多半已經(jīng)寫成帖子了。最后兩條是兜底。裝有早期版本系統(tǒng)的機(jī)器可以試「最后一次正確配置」重啟出現(xiàn)啟動(dòng)菜單時(shí)按 F8 進(jìn)高級(jí)啟動(dòng)選項(xiàng)選它。有些藍(lán)屏是系統(tǒng)本身存在缺陷造成的這種情況靠安裝最新的系統(tǒng)補(bǔ)丁和服務(wù)包來(lái)解決。順序背后的邏輯其實(shí)只有一句先排除「你最近動(dòng)過(guò)的東西」再排除「外來(lái)的東西」最后才懷疑系統(tǒng)自己。5.3 一份可以照著抄的排查記錄排查過(guò)程中最怕的是信息丟失。藍(lán)屏一閃而過(guò)重啟之后畫面沒(méi)了日志又被后來(lái)的記錄淹掉等到第三天想起來(lái)要查什么都對(duì)不上。養(yǎng)成隨手記的習(xí)慣比記住任何一條命令都有用。記錄的內(nèi)容不用多五行就夠記錄項(xiàng)示例寫法為什么記停機(jī)碼0x0000001E檢索的精確鍵錯(cuò)誤名KMODE_EXCEPTION_NOT_HANDLED幫助理解故障類型發(fā)生時(shí)間某日 21:47對(duì)齊系統(tǒng)日志的時(shí)間戳藍(lán)屏前動(dòng)作插上外置硬盤約 2 分鐘后鎖定觸發(fā)條件是否可復(fù)現(xiàn)拔掉后未再出現(xiàn)判斷是偶發(fā)還是持續(xù)這五欄填滿你手里就有了一個(gè)可以獨(dú)立復(fù)盤的完整事件。拿去找人幫忙對(duì)方不用再問(wèn)十句自己隔一周回來(lái)接著查也不用從頭回憶。用表格還是用便簽隨你關(guān)鍵是固定下來(lái)、每次都填。6. 什么時(shí)候該查代碼什么時(shí)候別在代碼上耗停機(jī)碼是工具不是任務(wù)。搞清楚它的適用邊界比背下幾十個(gè)編號(hào)有用得多。值得花時(shí)間查的情況有這么幾類。同一個(gè)停機(jī)碼反復(fù)出現(xiàn)說(shuō)明不是偶發(fā)這時(shí)候查代碼能直接縮小范圍。藍(lán)屏總是在做同一件事時(shí)發(fā)生比如插某個(gè)外設(shè)、跑某個(gè)程序、從睡眠喚醒觸發(fā)條件明確配合停機(jī)碼基本能定位到具體模塊。新裝機(jī)或者剛加完硬件就頻繁藍(lán)屏先查硬件兼容性和 BIOS 版本比自己猜要快。機(jī)器進(jìn)不了系統(tǒng)、開(kāi)機(jī)就藍(lán)那就得靠安全模式和「最后一次正確配置」這類啟動(dòng)層面的手段這時(shí)候記住的停機(jī)碼是用來(lái)判斷「值不值得繼續(xù)折騰」的依據(jù)。不建議在代碼上耗的情況也很明確。只藍(lán)過(guò)一次、重啟后一周都沒(méi)再犯拍張照存著就行不必連夜翻資料。已經(jīng)確認(rèn)是剛裝的某個(gè)驅(qū)動(dòng)或軟件引起的直接卸掉比研究停機(jī)碼高效一百倍——癥狀和原因都擺在那兒不需要再驗(yàn)證。還有一種容易被忽略機(jī)器已經(jīng)用了很多年藍(lán)屏頻率在緩慢上升這種更像是硬件老化內(nèi)存條、硬盤、電源都該檢查一遍盯著代碼看反而會(huì)錯(cuò)過(guò)真正的問(wèn)題。情況建議動(dòng)作只藍(lán)一次重啟后正常記錄停機(jī)碼不必深挖同一停機(jī)碼兩周內(nèi)出現(xiàn)兩次以上按停機(jī)碼加錯(cuò)誤名檢索優(yōu)先排查驅(qū)動(dòng)每次都在同一操作時(shí)藍(lán)屏記錄觸發(fā)動(dòng)作按可復(fù)現(xiàn)問(wèn)題處理新裝機(jī)或新加硬件后頻繁藍(lán)屏先查硬件兼容性與 BIOS再談軟件開(kāi)機(jī)即藍(lán)進(jìn)不了系統(tǒng)走安全模式或最后一次正確配置老機(jī)器藍(lán)屏頻率緩慢上升優(yōu)先懷疑硬件老化別只盯代碼有個(gè)細(xì)節(jié)值得單獨(dú)說(shuō)很多人查到一半會(huì)陷入「編號(hào)對(duì)不上」的焦慮覺(jué)得必須找到完全匹配的案例才敢動(dòng)手。其實(shí)不用。停機(jī)碼給你的是一類故障的典型成因現(xiàn)實(shí)里同一類故障可能由好幾個(gè)不同原因引起你要做的是按可能性從高到低依次排除而不是等一個(gè)百分百確定的答案。查到「這類問(wèn)題常見(jiàn)于內(nèi)存或驅(qū)動(dòng)沖突」那就先去查內(nèi)存、再看驅(qū)動(dòng)這已經(jīng)省掉了絕大部分無(wú)效嘗試。從那以后我每次遇到藍(lán)屏都強(qiáng)制自己先做一件事把第一行整段拍下來(lái)連時(shí)間一起記在便簽上然后再按電源鍵。這個(gè)動(dòng)作只花十秒鐘卻讓后面所有的判斷都有了錨點(diǎn)——不用憑記憶回憶「好像是 1E 還是 1F」也不用在一堆日志里瞎翻。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取