Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Windows XP 開機流程深度解析:從通電到桌面的五大階段

編輯:XP 系統基礎知識

Windows XP 開機流程深度解析:從通電到桌面的五大階段

按下電源鍵到看見桌面,中間經歷了精密的硬體初始化、載入程式接力與核心建構。理解這個流程,是進階除錯與優化的基石。

階段總覽

  1. 預引導階段 — BIOS POST、硬體偵測、MBR → NTLDR
  2. 引導階段 — NTLDR 切換保護模式、讀取 Boot.ini、選單、硬體偵測、硬體設定檔選擇
  3. 核心載入階段 — NTLDR 載入 NTOSKRNL.EXE、HAL.DLL、SYSTEM 配置組、開機啟動驅動程式
  4. 核心初始化階段 — 建立硬體資料庫、Clone Control Set、初始化驅動、啟動 Session Manager (SMSS) → Win32 子系統、Winlogon
  5. 登入階段 — Winlogon → LSASS、認證 UI、Service Controller 啟動服務、建立 LastKnownGood

詳細流程

1. 預引導階段

  • 電源通電 → BIOS 執行 POST (Power-On Self-Test):檢測記憶體、CPU、鍵盤、顯示卡、磁碟等。
  • PnP BIOS 配置即插即用裝置 (IRQ、DMA、I/O 位址)。
  • BIOS 依啟動順序尋找啟動裝置 (硬碟、光碟、USB)。
  • 讀取啟動裝置第 0 軌 0 磁頭 1 扇區 → MBR (Master Boot Record) (446 bytes 開機程式碼 + 64 bytes 分割表 + 2 bytes 55AA 結尾標記)。
  • MBR 程式碼掃描分割表尋找 作用中分割區,讀取其啟動扇區 (VBR)。
  • VBR 程式碼 (NTFS: NTLDR; FAT: BOOTSECT.DOS) 載入 NTLDR 至記憶體並移交控制權。

2. 引導階段 (NTLDR 主導)

2.1 初始引導載入器

  • NTLDR 將 CPU 從實模式 (16-bit, 1MB 限制) 切換至 32-bit 平坦記憶體模式 (4GB 位址空間)。
  • 載入內建 mini NTFS/FAT 檔案系統驅動,得以讀取系統分割區檔案。

2.2 作業系統選擇

  • 讀取 C:\Boot.ini。
    [boot loader]
    timeout=30
    default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
  • multi(0) = IDE/SCSI 控制器編號;disk(0)rdisk(0) = 實體磁碟;partition(1) = 分割區編號;後接系統根目錄。
  • 單一作業系統或 timeout=0 直接跳過選單。

2.3 硬體偵測

  • 執行 NTDETECT.COM (實模式 16-bit 程式),收集:電腦 ID、總記憶體、總線/介面卡資訊、磁碟/滑鼠/鍵盤/平行埠/序列埠/顯示卡等。
  • 資訊回傳 NTLDR,稍後寫入登錄 HKLM\HARDWARE。

2.4 硬體設定檔選擇

  • 若存在多個硬體設定檔 (行動裝置常見:攜帶/停泊),顯示選單;否則直接使用預設設定檔。

引導階段用到的關鍵檔案:NTLDR, Boot.ini, NTDETECT.COM, NTOSKRNL.EXE, NTBOOTDD.SYS (SCSI 啟動專用), BOOTSECT.DOS (多重開機 DOS 區段)。

3. 核心載入階段

  • NTLDR 載入 NTOSKRNL.EXE (核心映像) 至記憶體,但尚未初始化。
  • 載入 HAL.DLL (硬體抽象層),隔離硬體差異。
  • 讀取登錄 HKLM\SYSTEM:
    — Select 鍵決定載入哪個 ControlSet (Current / Default / LastKnownGood)。
    — 載入 ControlSet\Services 中 Start=0 (Boot 啟動) 的驅動程式 (檔案系統、磁碟過濾器等)。
  • Current Control Set 載入完成,NTLDR 將控制權移交核心入口點 KiSystemStartup,進入核心初始化。

4. 核心初始化階段 (畫面顯示 XP Logo 與進度條)

核心執行四大任務:

  1. 建立硬體資料庫:利用 NTDETECT 資料建立 HKLM\HARDWARE (揮發性,每次開機重建)。
  2. 建立 Clone Control Set:複製 Current Control Set → Clone,作為「最後正確配置」的備份基準,不包含本次開機的變更。
  3. 初始化驅動程式:
    — 初始化 Start=0 驅動。
    — 掃描 Start=1 (System 啟動) 驅動並初始化。
    — 錯誤處理由驅動的 ErrorControl 決定:
       3 (Critical):首次錯誤 → 重開機用 LastKnownGood;再錯 → 停止 0x7B/0xC000021A。
       2 (Severe):開機失敗 → 重開機用 LastKnownGood;已用 LKG → 忽略繼續。
       1 (Normal):記錄錯誤事件 → 忽略繼續。
       0 (Ignore):不記錄、繼續。
  4. 啟動 Session Manager (SMSS.EXE):
    — 建立系統環境變數、分頁檔、已知 DLL。
    — 啟動 Win32 子系統 (CSRSS.EXE) 控制圖形/視窗/輸入。
    — 啟動 Winlogon.exe 處理登入。

5. 登入階段

  • Winlogon 啟動 LSASS (Local Security Authority Subsystem),顯示歡迎畫面/傳統登入對話框。
  • 使用者輸入憑證 → LSASS 驗證 → 產生存取權杖。
  • Service Controller (Services.exe) 掃描 Start=2 (Auto) 及 Start=3 (Manual) 服務,依 DependOnService/Group 順序啟動。
  • 使用者成功登入 → 系統將 Clone Control Set 複製覆寫 LastKnownGood Control Set,標記本次開機成功。

關鍵檔案速查表

檔案角色階段
NTLDR引導載入器、切換保護模式、讀取 Boot.ini引導
Boot.ini開機選單、核心載入路徑、啟動參數引導
NTDETECT.COM硬體偵測 (16-bit 實模式)引導
NTOSKRNL.EXE核心映像 (含核心、執行主體、裝置驅動介面)核心載入/初始化
HAL.DLL硬體抽象層核心載入
SMSS.EXE工作階段管理員、建立環境、啟動 CSRSS/Winlogon核心初始化
CSRSS.EXE用戶端/伺服器執行階段子系統、Win32 圖形/視窗核心初始化
Winlogon.exe登入/登出/鎖定/安全性互動登入
LSASS.exe本機安全性授權、權杖產生、驗證登入
Services.exe服務控制管理員、啟動自動/手動服務登入

除錯切入點

  • 藍畫面 0x7B (INACCESSIBLE_BOOT_DEVICE):核心載入階段無法存取系統磁碟 → 檢查控制器驅動 (SATA/RAID)、Boot.ini ARC 路徑、病毒感染 MBR/VBR。
  • 卡在 Logo/進度條:核心初始化階段驅動掛住 → 安全模式 (僅載入 Start=0,1 基礎驅動) 可進入 → 停用/更新問題驅動。
  • 登入後立即登出/黑畫面:Winlogon/使用者設定檔/Shell (Explorer.exe) 啟動失敗 → 安全模式修復登錄 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell。
Copyright © Windows教程網 All Rights Reserved