藍屏死機

<image>

藍屏死機（Blue Screen of Death，縮寫：BSoD）是指微軟Windows作業系統在遭遇不可恢復的致命系統錯誤時，所呈現的崩潰提示界面。由於早期NT版本皆以`*** STOP:`開頭，因此又稱作STOP錯誤。自Windows 11 24H2起，該界面的背景顏色已調整為黑色。

在基於MS-DOS的Windows 9x系統中，當發生錯誤時會顯示兩次藍白當機畫面，相比之下，Windows NT系列的穩定性較高，因此僅在發生致命錯誤而必須重新啟動時，才會顯示藍白當機畫面。畫面上會顯示特定的偵錯代碼（例如：STOP: 0x0000004e）及簡短的錯誤訊息。使用者可透過微軟的 技術支援網站 搜尋該代碼以分析故障成因。然而，有時偵錯代碼未必能直接反映根本問題，甚至可能誤導使用者，因此在實務上往往需要搭配試誤法（Trial and Error）才能找出確切原因。

在基於MS-DOS的Windows時代，藍白當機允許使用者選擇繼續使用電腦或重新啟動。但由於VxD通常僅在發生無法恢復的錯誤時才觸發藍白當機，當此畫面出現時，系統已處於不穩定或當機狀態。當時最常見的故障原因為DLL衝突，指多個版本的DLL產生不相容問題。當新安裝的軟體替換了系統中的DLL，可能導致原本依賴舊版DLL的應用程式崩潰。隨著安裝軟體數量的增加，這種不相容的風險也隨之提升。整體而言，Windows NT系列的穩定性顯著優於Windows 9x，發生藍白當機的機率也相對較低。

## 歷史

### 非嚴重錯誤時期

Windows 1.0的藍畫面錯誤並非真正的藍白當機。在Windows 1.0的 Beta版本中，若系統偵測錯誤時，會詳細說明哪些檢查未通過(例如：檢測到版本過高的DOS系統時，會在啟動前顯示藍底白字的「Incorrect DOS version」)，然後才會正常啟動。不過，在正式發布之前，由於詳細資訊顯示的功能被移除了，才會顯示亂碼。當真正的致命錯誤發生時，系統通常會直接鎖死，或退出至DOS環境。Windows 2.0和 Windows 2.1也存在相同的狀況。

Windows 3.0則設計了專用的對話方塊來顯示重要系統訊息，這些訊息通常來自386增強模式下的驅動程式或其他無法正常運作的程式。

在Windows 3.1中，此對話方塊的背景顏色由黑色改為藍色。當按下Ctrl(參見:Ctrl+Alt+Del)時會開啟簡易任務管理器：

- 由程式無回應時，使用者可按下Enter鍵來關閉該程式
- 當所有程式正常運作時，會出現警告訊息，提示沒有程式無回應
- 在任何情況下按下Ctrl可強制重新啟動

若系統錯誤過於嚴重，Windows 3.x與先前版本相同，會退出至DOS。

<image>

- Windows 1.0—2.1亂碼

<image>

- Windows 3.0分頁檔案發生錯誤

<image>

- Windows 3.1正常狀況

<image>

- Windows 3.1應用程式當機

<image>

- Windows 3.2正常狀況

### 嚴重錯誤時期

第一個表示嚴重系統錯誤的藍白當機出現於Windows NT 3.1(NT系列的第一個版本，發布於1993年)，以`*** STOP:`開頭，並延續至後續部分的Windows版本。此後發布的所有Windows作業系統都採用了這種模式，只是在後續版本中有所不同。

儘管大眾普遍認為Windows Embedded Compact(早期稱作Windows CE)系列的嵌入式系統存在藍白當機，但實際上並沒有已知的真正意義上的藍屏死機。

藍白當機通常由編寫不良的驅動程式或故障的硬體引起（例如：記憶體故障、供電問題、過熱或硬體運作超出規格限制）。在基於MS-DOS系統的Windows時代，系統核心中不完整的動態連結庫（DLL）或漏洞也是導致當機的主因。相較於後續的Windows版本，Windows 9x發生藍白當機的情況極為頻繁。

### 重新設計

在Windows 11釋出時，藍白當機曾一度改為黑色，但後來又改回原樣式。

2025年6月26日，微軟宣布Windows 11 2024更新將把藍白當機的畫面改為黑色，同時對螢幕設計進行修正。

## 格式

<image>

藍白當機最初背景為深藍色(Windows NT 3.1—4：#0000A8；Windows 2000—7：#000080)，文字為銀色(#FFFFFF)，包含當前記憶體及暫存資訊。從Windows Server 2012開始，使用蔚藍色背景(Windows 8—10 11月更新：#1A67B3；周年更新—2022年更新：#0078D7)。早期版本的Windows 11使用黑色作為背景(#000000)，於22000.384改為深藍色(#003D92)，於26120.3653改回黑色(#000000)。Windows 10以後及伺服器的預覽版，方便開發人員快速分辨版本，改為深綠色(#246F24)，而非藍色或黑色，Windows Insider內測主管多納·薩爾卡爾稱：「為了更好地區分Windows Insider內測使用者與正式版使用者的報告，我們將錯誤檢查頁面的背景（從藍色）換成了綠色。」Windows 3.1—98可透過system.ini來修改螢幕顏色，而Windows NT則為硬體編碼。

Windows 95—ME的畫面以80x25的文字模式和720x400的解析度顯示。Windows NT系列最初使用80x50文字模式及720x400的解析度，但從Windows 2000開始，解析度調整至640x480。從Windows 8 (Server 2012) 開始，使用Segoe UI，並使用引導幀緩衝（the boot framebuffer）來顯示內容，在UEFI的機器上使用最高的可用圖形輸出協議模式（Graphics Output Protocol mode），在傳統BIOS的機器上使用1024×768（假設顯示器是扁平橫向放置的）或最高的VESA基本輸入輸出系統擴展模式（如果引導配置資料庫中設置了最高模式，'highestmode'）。Windows 10版本 1607以後的藍屏死機界面與Windows 8相同，但多了一個通向微軟公司官網的二維碼，網頁主要是微軟公司對藍屏死機原因的群眾調查。

## Windows NT

在Windows NT的系列作業系統中，當內核或者運行在內核模式中的驅動程序發生無法修復的錯誤時，就會發生藍屏死機，在Windows的軟體開發工具包（SDK）與驅動開發工具包（DDK）文檔中被稱為「錯誤檢查」（bug check）。它通常是被一般保護錯誤引起的。此時，作業系統能採取的唯一安全手段只有重新啟動電腦；而作為結果，使用者甚至沒有機會來保存未保存的數據。

藍屏畫面中顯示的文本包括了錯誤碼和它的名稱（如「0x0000001E, KMODE_EXCEPTION_NOT_HANDLED」），並在隨後用括號括住四個與錯誤相關的值以方便維修。根據錯誤的不同，它可能還會顯示問題發生的記憶體地址，以及在該地址下加載的驅動程序。此外，在螢幕的第二和第三部分可能還會分別顯示所有已經加載的驅動程序和堆棧轉儲資訊，而所給的驅動程序資訊分為三列，每一列分別是驅動程序的基地址、驅動程序的創建日期和驅動程序的名稱。

默認情況下，Windows會在錯誤發生時創建一個記憶體轉儲文件，根據Windows版本的不同它可以小至64kB（小型轉儲），也可以大至RAM的完整複製（完全轉儲）。這個文件稍後可以使用調試器（一般是WinDbg）進行調試。調試器是進行堆棧追蹤所必需的；並且由於藍屏中的資訊很有限，可能會造成誤導或隱藏真正的原因，因此確定藍屏的真正原因也需要它的參與。

在默認情況下，Windows XP被配置為只保存64kB的迷你轉儲文件，然後自動重啟電腦。由於這一過程發生的非常迅速，藍屏可能只會一閃而過甚至完全看不到，因此使用者也很容易把它當作電腦隨機重啟的故障，直到重啟完成後Windows提示剛剛曾發生過嚴重的錯誤。當然，可以通過關閉控制面板中「系統屬性—高級—啟動和故障恢復—系統失敗」中的自動重啟來達到顯示藍屏的目的。

Windows還可以被設置為將調試資訊實時發送到在另一台電腦上運行的內核調試器。如果此時發生了停止錯誤，Windows將會暫停執行並且中斷調試器，而不是顯示藍屏；之後，就可以用調試器檢查記憶體的內容並尋找問題的原因了。

藍屏死機也可能由嚴重的引導加載程序錯誤引起。在該錯誤中，Windows由於存儲驅動程序錯誤、文件系統損壞或其他類似的問題而無法訪問引導分區。它的錯誤碼是STOP 0x0000007B (INACCESSIBLE_BOOT_DEVICE)。在這種情況下，Windows將不會保存任何記憶體轉儲文件。由於此時Windows無法從硬碟啟動，因此要想修復這種錯誤就需要使用在Windows安裝盤中所附帶的工具。

### 細節

#### 早期版本 (NT—7)

在Windows 8(Server 2012)之前，藍屏死機界面會顯示一個大寫的錯誤名稱（例如：APC_INDEX_MISMATCH）、一個十六進位的錯誤碼（例如：0x00000001）和四個參數。這些資訊格式顯示如下：

摺疊項目

```
錯誤代碼 (參數1, 參數2, 參數3, 參數4)
錯誤名稱
```

根據錯誤碼及其性質，參數可能會指出錯誤的原因和/或位置。此外，藍屏界面上還會顯示四段一般性的解釋與建議，有時也會指出其他的技術資訊，例如出錯文件的名稱和記憶體地址。

以下是Windows 2000的格式，儘管它們之間略有不同：

摺疊項目

<image>

在極少數情況下，藍白當機錯誤訊息會被截斷，有時不會顯示錯誤名稱、代碼或四段錯誤提示。它通常會根據發生的錯誤類型顯示不同格式的錯誤螢幕。例如：

- 與Winlogon程式終止相關的藍白當機（例如：「0xC000021A (WINLOGON_FATAL_ERROR)」）：

摺疊項目

```
STOP: c000021a {Fatal System Error}
The Windows Logon Process/SubSystem system process terminated unexpectedly
with a status of 參數1 (參數2 參數3).
The system has been shut down.
```

- 與作業系統關鍵登錄檔案損壞相關的藍白當機（例如：「0xC0000218 (STATUS_CANNOT_LOAD_REGISTRY_FILE)」）：

摺疊項目

```
STOP: c0000218 {Registry File Failure}
The registry cannot load the hive
(file):\SystemRoot\System\Config\SOFTWARE
or its log or alternate.
It is corrupt, absent, or not writable.
```

3.可能導致Windows無法正常啟動的硬體錯誤（例如0x00000080 (NMI_HARDWARE_FAILURE)）：

摺疊項目

```
*** Hardware Malfunction
Call your hardware vendor for support.
NMI: Parity Check / Memory Parity Error
*** The system has halted ***
```

隨著Windows XP的發布，藍白當機的佈局略有改動，這種佈局一直沿用到Windows 7。具體來說，十六進位錯誤代碼和四個參數被移到了螢幕底部，位於「Technical information:(技術資訊)」標籤下的四個段落之後。此外，關於如何參考「入門指南」手冊來解決藍白當機的提示資訊也被移除，所有提及Windows 2000的地方都簡化為「Windows」。錯誤畫面的開頭還出現了那條如今臭名昭著的提示訊息：

摺疊項目

```
A problem has been detected and Windows has been shut down to prevent damage
to your computer.
```

以下是Windows XP到Windows 7系統中的藍白當機，儘管它們之間略有不同：

摺疊項目

<image>

從Windows 2000開始，系統會自動執行記載體傾印，預設通常會以64KB的「小記載體傾印」檔案形式產生。發生這種情況時，Windows 2000的藍白當機將顯示下列訊息來取代四段說明和建議。即使停用了記載體傾印，在「系統屬性」的「啟動和修復」下的「系統失敗」部分選取「將事件寫入系統紀錄檔中」或「傳送系統管理警示」時，也能看到這些說明和建議：

摺疊項目

<image>

在Windows XP到Windows 7系統中，上述訊息保持不變，但略有修改，並且顯示在四段說明和建議之後；而在Windows 2000系統中執行記載體傾印時，這四段的說明和建議是隱藏的。此外，在大多數情況下，當對Windows XP到Windows 7的藍白當機執行記載體傾印時，會顯示下列訊息以及顯示記載體傾印進度的指示器：

摺疊項目(記載體傾印進行中)

```
Collecting data for crash dump ...
Initializing disk for crash dump ...
Beginning dump of physical memory.
Dumping physical memory to disk:  0
```

摺疊項目(記載體傾印已完成)

```
Beginning dump of physical memory
Physical memory dump complete.
Contact your system administrator or technical support group for further
assistance.
```

此外，在64位元的Windows上，藍白當機的四個參數將擴展到16位數（0x0000000000000000），而不是8位數（0x00000000）。

#### 後續版本(8—11、Server 2012—2025)

而隨著Windows Server 2012的發布，藍屏死機的界面大幅改動並刪去了以上的所有資訊，只留下了錯誤名稱和一段簡短的描述。Windows 8加入了一個哭臉的顏文字。不過，十六進位的錯誤碼和參數仍然能在事件查看器和記憶體轉儲文件中被查詢到。

螢幕上預設顯示的主要文字內容如下：

摺疊項目

<image>

在 Windows 10 年度更新時，加入了QR-Code。

摺疊項目

<image>

Windows 10 版本2004將「電腦」改為「裝置」：

摺疊項目

<image>

Windows 10 的預覽版本（build 14997之後）為綠色：

摺疊項目

<image>

Windows 11 的早期版本（build 22000.384之前）為黑色：

摺疊項目

<image>

Windows 11 build 22000.384之後改為深藍色：

摺疊項目

```
您的裝置發生問題，因此必須重新啟動。
我們剛剛正在收
集某些錯誤資訊，接著我們會為您重新啟動。

已完成 0%

　　　　　如需此問題與可能修正的詳細資訊，請瀏覽 http://windows.com/stopcode

　　　　　致電支援人員時，請提供此資訊: 
　　　　　停止代碼: <代碼>
```

Windows 11 24H2 重新設計布局，改為黑色，26H1引進翻譯版本：

摺疊項目

<image>

同上，預覽版：

摺疊項目

<image>

## 發生的當機

<image>

- 2019年一家藥店門前的藍屏死機

<image>

- 發生在CNIT(Centre national des industries et techniques)的一藍屏死機

<image>

- 發生在首爾地鐵車廂內的藍屏死機

<image>

- 在新加坡南洋理工大學，滿屋的電腦均出現藍屏死機

<image>

- 發生在納什維爾國際機場的Windows 98藍屏死機

<image>

- 發生在法國里昂公共自行車系統Vélo'v的藍屏死機

<image>

- 深圳地鐵5號線大學城站的深圳通充值機藍屏死機

## 外部連結

- 微軟技術支援網站
- 在Windows 10 1607以後掃描藍屏界面中的二維碼會跳轉至藍屏錯誤疑難解答界面
- Bluescreeners Developer Team
- BlueScreen －一個黑色幽默風格的螢幕保護程式，由微軟所推出，可以模擬藍屏死機畫面。（Windows 8之後無效果）