Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux 開機啟動流程五階段深度解析:從 BIOS 到 systemd

編輯:關於 Linux

按下電源鍵到登入畫面,Linux 經歷了什麼?本文將啟動流程拆解為五大階段,並對應現代 systemd 架構說明,幫助你從核心視角理解系統初始化。

階段一:BIOS/UEFI 加電自檢 (POST)

  • 檢測 CPU、記憶體、磁碟、顯示卡等硬體。
  • 依 CMOS 設定的啟動順序尋找可開機裝置(HDD、USB、光碟、PXE)。
  • UEFI 會讀取 ESP 分區的 .efi 檔案;Legacy BIOS 讀取 MBR 前 512 Bytes。

階段二:載入主開機記錄 (MBR) / UEFI Bootloader

  • MBR (512 Bytes): 446 Bytes 開機碼 + 64 Bytes 分區表 + 2 Bytes 結束標誌 (0x55AA)。
  • 任務:掃描分區表找出 Active 分區,載入該分區的 次開機載入程式 至記憶體執行。
  • UEFI: 直接從 ESP 分區載入 grubx64.efi 或 shimx64.efi (Secure Boot)。

階段三:載入次開機載入程式 — GRUB2

  • GRUB2 為模組化設計,核心 core.img 載入後讀取 /boot/grub2/grub.cfg (或 /boot/efi/EFI/.../grub.cfg)。
  • 呈現圖形/文字選單,讓使用者選擇核心版本、啟動參數、救援模式等。
  • 支援 chainloader 呼叫 Windows Boot Manager 實現多重開機。

階段四:Linux 核心初始化

  1. 解壓核心映像 (vmlinuz) 至記憶體。
  2. 硬體偵測與驅動載入:PCI 總線掃描、裝置樹解析、模組自動載入。
  3. 初始化虛擬檔案系統:devtmpfs、sysfs、procfs。
  4. 啟動 LVM/RAID:掃描並啟用邏輯卷與陣列。
  5. 掛載根檔案系統:依 root= 參數或 initrd/initramfs 中的腳本掛載 / (read-only)。
  6. 啟動 init (PID 1):傳統 SysV init 或現代 systemd。

initramfs 關鍵角色

包含核心模組、udev、LVM/RAID/加密工具、掛載根裝置腳本。若根裝置在 LVM/RAID/加密/網路儲存上,沒有 initramfs 就無法掛載根檔案系統。

階段五:init / systemd 系統初始化

傳統 SysV init

/etc/rc.d/rc.sysinit  →  設定環境、網路、swap、檢查/掛載檔案系統
/etc/rc.d/rc.d/    →  依運行等級啟動/停止服務腳本 (Sxx/Kxx)

現代 systemd (主流發行版預設)

  • 並行啟動服務,大幅縮短開機時間。
  • 以 Unit 為單位管理:.service, .socket, .target, .mount…
  • default.target (通常連結 graphical.target 或 multi-user.target) 為啟動終點。
  • 關鍵指令:systemctl, journalctl, systemd-analyze。

Swap 空間補充說明

類似 Windows 虛擬記憶體。當實體記憶體不足,核心將較少使用的記憶體頁面換出至 Swap 分區/檔案。建議:
• 記憶體 ≤ 8GB:Swap = 1~2× RAM
• 記憶體 > 8GB:Swap = 8~16 GB
• 需休眠功能:Swap ≥ RAM

流程總覽圖

BIOS/UEFI POST
      ↓
MBR / ESP (Bootloader)
      ↓
GRUB2 (選單、參數)
      ↓
Linux Kernel + initramfs
      ↓
掛載根檔案系統 (ro)
      ↓
systemd (PID 1) → 並行啟動服務 → 登入畫面

Linux 開機流程圖

Copyright © Windows教程網 All Rights Reserved