- Windows 啟動過程分為多個階段(啟動前、啟動管理器、作業系統載入器和核心),每個階段發生故障時都會表現出不同的症狀。
- Startup Repair、BOOTREC、BCDEDIT 和 RegBack 等工具可修復損壞的 MBR、開機磁區、BCD 和登錄機碼單元。
- 啟動日誌 Ntbtlog.txt 由 boot.ini 或 BCDEDIT 激活,記錄已載入和已跳過的驅動程序,是診斷故障的關鍵。
- 結合啟動日誌、事件檢視器、SFC/DISM 和記憶體轉儲,可以更輕鬆地找到阻止 Windows 啟動的驅動程式或更新。
當 Windows 系統拒絕啟動並卡在黑畫面、重新啟動循環或藍色畫面介面時通常的反應是驚慌失措。但除了典型的自動化工具之外,還有一個非常強大的資源可以幫助我們了解發生了什麼:啟動日誌檔案或 啟動日誌尤其是眾所周知的 Ntbtlog.txt.
這些日誌詳細記錄了系統啟動期間哪些驅動程式和元件載入(或載入失敗)並結合其他實用程序,例如啟動修復, BOOTREC, DISM 或者 Windows 註冊表本身,可以讓你找到許多啟動問題的根源,無論是在具有傳統 BIOS 的電腦中,還是在具有 UEFI 的現代系統中(UEFI 中的啟動過程).
Windows啟動過程是怎麼樣的?故障發生在哪個階段?
開始複習前 Ntbtlog.txt 將命令貼到控制台了解 Windows 啟動過程的組織方式以及每個階段啟動的元件至關重要。這有助於確定錯誤是發生在啟動初期(韌體/BIOS)、啟動管理器、作業系統載入程序,還是 Windows 核心啟動時。
一般來說,現代Windows系統的啟動週期分為四個主要階段。 這些情況在傳統的 BIOS 機器和 UEFI 韌體系統中都會出現,儘管涉及的檔案和路徑略有不同:
- 第一階段 – 啟動前韌體(BIOS 或 UEFI)執行 POST(開機自檢),初始化基本硬件,並尋找有效的系統磁碟。在 BIOS 系統中,讀取 MBR/PBR;在 UEFI 系統中,載入固件,並尋找 Windows 啟動管理器 EFI 應用程式。
- 第二階段 – Windows 啟動管理員這時啟動管理器就發揮作用了,它會尋找啟動配置並決定啟動哪個系統。
- 第三階段 – Windows 作業系統載入器系統充電器(
winload.exeowinload.efi)載入核心和標記為在啟動時載入的驅動程式。 - 第四階段 – Windows NT 內核內核(
ntoskrnl.exe)取得控制權,掛載系統登錄單元,載入驅動程式BOOT_START系統會話開始(Smss.exe),進而啟動其餘的服務和控制器。
每個階段都有其獨特的症狀和錯誤訊息。從常見的「Bootmgr 缺失」錯誤到諸如 INACCESSIBLE_BOOT_DEVICE 或在 Windows 標誌出現後立即出現藍屏,因此需要使用不同的工具進行診斷和修復。
| 相 | 舞台 | 帶BIOS的設備 | 支援 UEFI 的設備 |
|---|---|---|---|
| 1 | 預先啟動 | MBR/PBR(啟動程式碼) | UEFI韌體 |
| 2 | Windows 啟動管理器 | %系統磁碟機%\bootmgr | \EFI\Microsoft\Boot\bootmgfw.efi |
| 3 | Windows作業系統載入器 | %SystemRoot%\System32\winload.exe | %SystemRoot%\System32\winload.efi |
| 4 | Windows NT 內核 | %SystemRoot%\System32\ntoskrnl.exe | (相同,但現在在 UEFI 下) |
診斷啟動故障的目標是「抓住」故障鏈中哪個環節出現了問題。從那裡,我們可以決定是否應該查看啟動日誌檔案、啟動修復中的 SrtTrail.txt、記憶體轉儲、註冊表,或專注於啟動程式碼(MBR、BCD、Bootmgr 等)。
BIOS 或韌體故障:如何偵測它們
如果電腦甚至不顯示 Windows 標誌 如果螢幕一直黑屏,沒有顯示任何清晰的訊息,或者甚至無法正常開機,那麼問題通常出在韌體本身或基礎硬體上。
有幾個非常簡單的檢查可以確定係統是否已通過 BIOS 階段。 或者它卡在那裡了:
- 斷開所有周邊設備 (例如 USB 裝置、外接硬碟、印表機等)。有時韌體會嘗試從可移動裝置啟動,但會卡住。
- 觀察硬碟活動指示燈如果在啟動過程中指示燈完全不閃爍,則該程序可能尚未到達讀取開機磁區的階段。
- 嘗試按下數字鎖定鍵。如果鍵盤指示燈沒有變化,通常表示系統在韌體或主機板層級完全凍結。
當系統在早期階段出現凍結時,通常是由於硬體故障造成的。 (記憶體、主機板、電源、故障硬碟…)而啟動檔案問題則不太常見,因此在這些情況下,分析… Ntbtlog.txt 類似的東西甚至不會生成。
啟動管理器和載入程式(MBR、BCD、Bootmgr)中的錯誤
機器開機後,會先出現製造商的標誌,然後螢幕會變成黑色,並帶有一個閃爍的遊標。 如果您收到「作業系統遺失」、「Bootmgr 遺失」或與 BCD 相關的錯誤等訊息,則問題已經出在啟動管理員(啟動管理員/啟動載入程式)階段。
這個階段的一些典型資訊可以很清楚地表明情況如何。:
Boot Configuration Data (BCD) missing or corruptedBoot file or MBR corruptedOperating system missingBoot sector missing or corruptedBootmgr missing or corruptedUnable to boot due to system hive missing or corrupted
此時,最有效的辦法是從外部 Windows 安裝媒體啟動。 (使用 Microsoft 工具建立的 USB/DVD 或相同或更高版本的 ISO)並使用 Shift+F10 組合鍵或透過進階復原選項開啟命令提示字元。
使用啟動修復工具
Windows啟動修復實用程式是您應該首先嘗試的選項。因為它自動執行了許多檢查:檢查引導檔案的完整性、嘗試修復 BCD、修復損壞的引導磁區,並產生自己的日誌來記錄它所做的一切。
使用者流程非常簡單。 當您使用與已安裝的 Windows 版本相同的安裝媒體啟動時:
- 從 Windows 安裝 USB 隨身碟/DVD 啟動計算機,然後在初始視窗中按一下 下一步 > 維修設備.
- 在選擇畫面上,輸入 疑難排解.
- 訪問 進階選項 > 啟動修復 然後讓工具分析系統。
- 完成後,使用精靈程式本身關閉系統,然後嘗試正常啟動。
該工具執行的所有操作都會記錄在文件中。 SrtTrail.txt,位於 %windir%\System32\LogFiles\Srt\Srttrail.txt雖然它不是那種風格的啟動日誌 Ntbtlog.txt是的,了解它檢測到了什麼以及它嘗試採取了哪些措施是有用的。
使用 BOOTREC 修復 MBR 和開機磁區。
如果啟動修復無法解決問題,下一步通常是使用該工具。 BOOTREC (看到 BOOTREC 指南) 在復原環境的命令提示字元下,此公用程式可讓您重寫 MBR、重建開機磁區並重新產生 BCD 資料庫。
用於解決典型 MBR 和開機磁區問題的基本指令 分別是:
- 重寫MBR (如果其他系統或第三方工具覆蓋了它,則非常有用):
bootrec /fixmbr - 修復系統分割區的開機磁區:
bootrec /fixboot
在某些情況下(尤其是採用 FAT32 檔案系統進行 EFI 分割區的 UEFI 系統中) 執行程式時可能會出現令人頭痛的「存取被拒絕」訊息。 /fixboot在這種情況下,您需要檢查系統分割區是否已正確指派磁碟機號,有時還需要將其標記為活動分割區,或透過複製啟動檔來手動修復啟動檔。 bootmgr 以及內容 \EFI\Microsoft\Boot.
更正 BCD 倉庫錯誤
當 BCD 損壞或指向不存在的設施時您會看到關於「啟動配置資料」的更具體錯誤。這裡,BOOTREC 和 BCDEDIT 協同工作(參見)。 使用 BCDEDIT 進行診斷).
從頭開始再生 BCD 的典型步驟 這是:
- 掃描是否存在可偵測到的 Windows 安裝:
bootrec /scanos - 如果掃描後仍然無法啟動,請備份 BCD 並重建它:
bcdedit /export C:\bcdbackupattrib C:\boot\bcd -r -s -hren C:\boot\bcd bcd.oldbootrec /rebuildbcd - 當被問及是否要將找到的安裝加入啟動清單時,回答「是」。
在某些情況下,會出現錯誤訊息,提示「找不到要求的系統裝置」。 嘗試新增安裝時,您需要在此處進行檢查。 diskpart 系統分區已正確標記,已分配盤符,且未損壞。
替換 Bootmgr 文件
如果多次嘗試後錯誤直接指向 bootmgr 損壞的您可以選擇重新命名故障副本,並從系統保留分割區或安裝媒體放置新副本。
整體思路是保留舊的。 bootmgr 安全且複製一個可用的版本 到系統所在的分區:
- 找到系統保留分割區(通常在 FAT32 或 NTFS 格式中沒有磁碟符,在現代 Windows 系統中約 100 MB),並為其指派一個磁碟符。
diskpart如有必要。 - 在該分區中,使用以下命令列出隱藏檔案和系統檔案:
attrib -r -s -h - 在系統驅動器上執行相同的操作(例如,
C:)查看bootmgr現有的。 - 更改名稱
bootmgr例如,損壞:ren C:\bootmgr bootmgr.old - 複製
bootmgr從系統保留分割區到 Windows 磁碟機根目錄的「健康」分割區。 - 重啟後檢查是否能啟動。
恢復系統登錄子樹
當錯誤表示系統 hive 無法載入時 如果出現「系統登錄機碼遺失或損壞」的錯誤訊息,則問題從純粹的啟動問題轉變為登錄機碼問題。在這種情況下,通常需要從有效的備份中還原註冊表子樹(您可以查看相關技術)。 使用 RegScanner 改進註冊表).
從 WinRE 恢復環境或 ERD 修復磁碟進行修復 您可以複製以下內容 C:\Windows\System32\config\RegBack a C:\Windows\System32\config覆蓋損壞的檔案(SYSTEM、SOFTWARE 等)。如果仍然無法啟動,則需要還原完整的系統備份,然後僅還原必要的登錄機碼。
內核階段:徽標顯示後出現藍色畫面、循環和崩潰。
如果您已經看到 Windows 徽標,甚至是旋轉的“齒輪”圖標,請告訴我。但如果突然出現藍色畫面、卡死或黑屏,問題很可能出在內核階段或該階段載入的驅動程式。
該階段的一些典型失敗症狀是眾所周知的。:
- 啟動畫面結束後立即停止程式碼(例如,
0x00000C2,0x0000007B等)。 - 錯誤
INACCESSIBLE_BOOT_DEVICE停止標識符為 0x7B,這表示存取啟動磁碟時出現問題。 - 旋轉的圓點輪一直停留在「系統繁忙」狀態。
- Windows標誌出現後畫面變黑,沒有任何提示訊息。
在這種情況下,恢復方案是基於有限的方式逐步實施的。 然後使用事件檢視器、啟動日誌、記憶體轉儲和註冊表等工具進行診斷。
嘗試安全模式和最後一次正確配置
安全模式之所以成為經典,是因為它只會載入最基本的功能。 這樣一來,Windows 就可以啟動,但會忽略掉可能導致問題的大部分第三方驅動程式和服務。
從進階啟動選項 您可以嘗試:
- 安全模式
- 帶網絡的安全模式
- 上次成功配置 (如果您的版本支援此功能)
如果球隊能夠以任何一種方式取得進展首先建議的做法之一是打開… 事件查看器 並查看症狀出現前後一段時間的系統和應用程式日誌,複製相關事件以便冷靜分析。
從頭開始,找出衝突的服務和司機。
當問題指向第三方服務或控制器時 (例如防毒軟體、備份軟體、特殊儲存驅動程式等),使用該工具執行「乾淨啟動」非常有用。 msconfig.
在系統設定中,您可以選擇“選擇性啟動”。 逐步停用非關鍵服務,尤其是那些非微軟提供的服務,直到找到導致啟動失敗的服務。找到後,您可以永久停用它,恢復「正常啟動」。
如果問題出在驅動程式簽章上(尤其是在具有安全啟動或簽章要求的 x64 系統中)另一種方法是從「停用強制使用已簽名驅動程式」選項開始,並按照微軟針對此類問題的特定文章中的指導方針,分析哪個驅動程式需要簽署或導致衝突。
INACCESSIBLE_BOOT_DEVICE 錯誤 (STOP 0x7B)
錯誤 INACCESSIBLE_BOOT_DEVICE 它是最令人恐懼的之一 因為這意味著 Windows 無法存取它應該從中啟動的磁碟機:儲存驅動程式不足、第三方過濾器、BIOS 中 SATA/RAID 控制器模式的變更等。
處理此錯誤的更高級方法涉及在註冊表中過濾第三方驅動程式。 來自恢復環境:
- 使用與 Windows 版本相同或更高版本的 ISO 映像啟動進入 WinRE。
- 開啟登錄編輯器,載入系統登錄單元,並為其指定一個臨時名稱,例如: test.
- 轉到關鍵:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class - 尋找條目 的UpperFilters y LOWERFILTERS 指的是非微軟提供的驅動程式。
- 對於每個可疑駕駛員,清除相應篩選值的內容。
- 在蜂巢中尋找其他類似情況,小心地進行改造,完成後卸下蜂巢。
- 以正常模式重新啟動系統,並檢查 0x7B 錯誤是否消失。
如果問題是在安裝 Windows 更新後立即出現的可能需要刪除待處理的軟體包或撤銷更新操作。 DISM更改註冊表中的值(例如,服務) TrustedInstaller甚至重命名文件,例如 pending.xml en WinSxS 解除進程阻塞。
在 Windows 中啟用啟動日誌記錄
至此,本文的主角──檔案庫──就派上了用場。 Ntbtlog.txt該檔案是經典的 Windows 啟動日誌;它記錄了啟動期間載入(或失敗)的驅動程式和元件,例如,它可以幫助您偵測是哪個特定的驅動程式阻止了系統啟動。
預設未啟用啟動日誌。但激活它非常簡單,主要有兩種方式:透過 boot.ini 在較舊的系統中或使用 bcdedit 在 Windows 10 及更高版本等現代系統中,將其與以下技術結合使用非常有用: 使用 BootTrace 進行分析.
在基於 boot.ini 的系統(Windows XP 及類似系統)上啟用 BootLog
在較舊的電腦上,啟動設定檔是 boot.ini它位於 Windows 安裝所在磁碟機的根目錄(通常位於 )。 C:)並被標記為隱藏的系統檔案。
要編輯它,必須先顯示受保護的系統檔案。 從資料夾選項中尋找 boot.ini 然後用記事本打開它。你會看到類似這樣的一行(儘管參數不同):
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=»Microsoft Windows XP Professional» /noexecute=optin /fastdetect
若要啟用啟動日誌記錄,只需新增修飾符即可。 /BOOTLOG 在那行的末尾結果類似:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=»Microsoft Windows XP Professional» /noexecute=optin /fastdetect /BOOTLOG
文件保存後,系統將在每次啟動時開始產生引導記錄。此外,在緊急情況下,可以透過進階啟動功能表逐一啟用日誌記錄:在 Windows 啟動前按 F8 鍵,然後選擇「啟用啟動日誌記錄」選項。
生成的文件始終稱為 Ntbtlog.txt 它保存在 Windows 資料夾中,通常在 C:\Windows準備用記事本打開,檢查哪些驅動程式已正確加載,哪些未正確加載。
在 Windows 10 及更高版本中使用 BCDEDIT 啟用和停用啟動日誌
在採用 BCD 的現代系統(Windows Vista 及更高版本,包括 Windows 10)中啟動配置不再由…管理 boot.ini但是有了啟動配置資料儲存和該工具 bcdedit.
若要在特定係統上啟用啟動日誌記錄 您需要知道 BCD 中該載入器的識別碼 (ID)。這可以透過在具有管理員權限的命令提示字元中執行以下命令來取得:
bcdedit
在「Windows 啟動載入程式」區塊中,您會看到一個名為「識別碼」的行。 這可能類似於 {current} 或使用不同的 GUID。使用該 ID,您可以像這樣啟動 BootLog:
bcdedit /set {ID} bootlog Yes
要停用它,只需將值更改為“否”即可。:
bcdedit /set {ID} bootlog No
下次重新啟動後,如果啟用了日誌記錄,Windows 將產生該檔案。 Ntbtlog.txt 沿著指定路線 它包含了啟動過程中涉及的控制器和模組的所有必要信息,這對於診斷各種突發故障非常有幫助。
解讀 Ntbtlog.txt 和其他啟動日誌
雖然乍一看 Ntbtlog.txt 它看起來像是一個簡單的行列表。關鍵在於理解我們要尋找的模式。在這個檔案中,你會看到一些條目,它們指示控制器是否已成功載入或已跳過。
訣竅在於找到在崩潰或重啟發生之前出現故障的驅動程式。……或者那些明顯不屬於微軟且可能導致衝突的元件(例如防毒軟體驅動程式、磁碟加密、備份解決方案等)。將這些資訊與事件檢視器事件以及(如果可用)記憶體轉儲結合起來,可以大幅縮小問題範圍。
在許多情況下,記憶體轉儲會明確指向特定的驅動程式檔案。 (例如, \Windows\System32\drivers\stcvsm.sys (缺失或損壞)。此類情況的一般建議如下:
- 查看該控制器提供的功能以及它對於啟動是否至關重要。
- 如果是非必要的第三方驅動程序,請透過 WinRE 載入註冊表中的系統設定單元來停用它。
- 運行系統檔案檢查器(
sfc)如果懷疑系統檔案損壞,則在離線模式下運作。 - 如果懷疑存在大範圍的註冊表損壞或最近安裝了多個驅動程式/服務,請重新命名舊的註冊表單元(添加以下內容):
.old到名字C:\Windows\System32\config並恢復備份RegBack然後嘗試正常啟動。
有時,尤其是在 Windows 重大更新之後,使用以下方法修復時會出現問題: DISM 它來自原始圖像版本如果用於復原的 ISO 檔案與已安裝的版本不完全匹配, DISM 它會傳回錯誤 0x800f081f(「找不到原始檔」)。在這種情況下,建議檢查以下方面: dism /get-wiminfo 圖片的確切版本(install.wim o install.esd)並找到一個與要修復的系統版本實際對應的 ISO 檔案。
簡而言之,啟動暫存器就像 Ntbtlog.txt啟動修復 SrtTrail、記憶體轉儲和日誌 DISM y SFC 它們構成了一個資訊「生態系統」。 此工具可讓您重現每次啟動過程中發生的情況:哪些程式已加載,哪些程式被跳過,哪些檔案損壞,以及哪些變更(驅動程式、更新、防毒軟體或各種實用程式)導致啟動過程失敗。透過將這些工具與 MBR、BCD、Bootmgr、RegBack 和乾淨啟動修復技術結合,恢復無法啟動的 Windows 系統(無需完全重裝系統)的成功率遠比最初想像的要高。
對字節世界和一般技術充滿熱情的作家。我喜歡透過寫作分享我的知識,這就是我在這個部落格中要做的,向您展示有關小工具、軟體、硬體、技術趨勢等的所有最有趣的事情。我的目標是幫助您以簡單有趣的方式暢遊數位世界。


