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

Linux 系統啟動流程深度解析:MBR→GRUB→initramfs→Kernel→init、模組管理實戰

編輯:Linux 系統常見問題解答

啟動流程五階段

  1. BIOS/UEFI POST:硬體自檢,讀取啟動裝置 MBR (Legacy) 或 EFI 分區 (UEFI)。
  2. Bootloader (GRUB):
    MBR 階段 1 → 階段 1.5 (文件系統驅動) → 階段 2 (載入選單、核心參數)。
    配置檔:/boot/grub/grub.conf (符號連結 /etc/grub.conf)。
  3. initramfs (initrd):
    GRUB 載入 initramfs.img 到記憶體,掛載為根文件系統。
    包含核心模組 (驅動)、init 腳本、必要工具 (lvm, cryptsetup, mdadm)。
    核心掛載真實根分區 (唯讀) → 切換根目錄 (switch_root) → 執行 /sbin/init。
  4. Kernel 初始化:
    硬體偵測、驅動載入、掛載根分區 (讀寫)、啟動第一個用戶空間進程 init (PID 1)。
  5. Init 系統 (Systemd/SysVinit/Upstart):
    依相依關係啟動服務、掛載檔案系統、啟動登入提示/圖形介面。

GRUB 關鍵配置

  • 設定開機密碼:在 title 下添加 password --md5 $1$hash (用 grub-md5-crypt 生成)。
  • 裝置命名:(hd0,0) 表示第一顆磁碟第一分區,無論 SATA/SCSI/IDE 均以 hd 開頭,編號從 0 開始。

核心模組管理

模組檔案位於 /lib/modules/$(uname -r)/kernel/,副檔名 .ko。

實戰場景

  • 新增硬體驅動:編譯 .ko → depmod → modprobe → 加入 /etc/modules 開機自動載入。
  • 排除模組衝突:modprobe -r 卸載衝突模組 → 黑名單 /etc/modprobe.d/blacklist.conf。
  • 參數調整:modprobe module param=value 或寫入 /etc/modprobe.d/module.conf。

總結

理解啟動流程有助於排查開機卡住、根分區掛載失敗、驅動未載入等疑難雜症。GRUB2、initramfs、Systemd 是現代 Linux 啟動鐵三角,掌握其配置與除錯工具 (dmesg, journalctl -b, systemd-analyze) 是運維進階必修課。

Copyright © Windows教程網 All Rights Reserved
命令功能
lsmod列出已載入模組
modinfo module_name顯示模組資訊 (作者、參數、相依)
insmod /path/module.ko載入指定路徑模組 (不解決相依)
modprobe module_name智能載入 (自動解決相依、從標準路徑尋找)
rmmod module_name卸載模組 (若被使用則失敗)
modprobe -r module_name智能卸載 (處理相依)
depmod更新 modules.dep 相依關係資料庫