第一階段:BIOS 引導階段
- 硬體初始化與尋找開機媒體
- 從 MBR 載入開機管理程式(GRUB)並執行
第二階段:GRUB 開機管理階段
- 載入
stage1(512 bytes,寫入 MBR)
- 載入
stage1.5
- 載入
stage2(主要功能模組)
- 讀取
/boot/grub.conf 顯示開機選單
- 載入所選
kernel 與 initrd 至記憶體
第三階段:核心階段
- 執行核心開機參數
- 解壓
initrd 並掛載 initrd 檔案系統,載入必要驅動程式
- 掛載根檔案系統
第四階段:SysV Init 初始化階段
- 啟動
/sbin/init 程式
- 執行
rc.sysinit 腳本:設定系統環境、啟動 swap、檢查掛載檔案系統
- 讀取
/etc/inittab,依運行等級執行 /etc/rc.d/rc<#>.d 中服務初始化腳本
- 開啟字元終端機 1-6 號 / 圖形顯示管理 7 號控制台
開機流程總覽
BIOS ==> bootloader ==> kernel & initrd.img ==> /sbin/init
關鍵檔案與故障排除
1. bootloader (GRUB)
/boot/grub/grub.conf:決定使用哪個 kernel 與 initrd.img
stage1:512 bytes,寫入 MBR
stage2:stage1 引導後調用
- 常見問題:
- 無法進入 GRUB,左上角只有游標 → MBR 損毀,進入 rescue 模式執行
grub-install 修復
- 出現
grub> 提示 → 找不到 grub.conf,需手動修復
2. kernel & initrd.img
- 載入時出現
kernel panic → 檢查 grub.conf 參數、分區設定或硬碟損壞
3. /sbin/init
- 配置檔
/etc/inittab
- 依序執行:
/etc/rc.d/rc.sysinit:定義 hostname、重新掛載分區、載入模組
/etc/rc.d/rc[0-6].d/ 中以 S 開頭的腳本:啟動各 runlevel 服務
mingetty /dev/tty[1-6]:啟用終端機