Linux 的開機流程是一系列將系統從關機狀態初始化為完全運作狀態的事件。 了解這個流程對於技術或面試至關重要,但有時很難記住。 本文介紹了一種快速且簡單的記憶方式:Best Geeks Know It(BGKI)。 B – G – K – I -> BIOS – GRUB – KERNEL – INIT
這個 BGKI 首字母縮略詞提供了 Linux 開機流程的高層次概覽。 每個步驟都建立在前一個步驟之上,逐步將系統帶入完全運作的狀態。 當然,每個步驟內部還有更詳細的過程,但這個簡化版本應該能為您提供理解和記憶 Linux 開機序列的方式。

B – BIOS/UEFI
- 執行開機自我測試(POST)
- 檢查硬體:CPU、RAM、儲存裝置
- 載入 MBR(主開機記錄)或 GPT(GUID 分割表)
- 將控制權移交給開機載入器
G – GRUB
- 位於開機磁碟的前 512 位元組
- 讀取
/boot/grub/grub.conf
- 顯示包含核心選項的選單
- 將選定的核心和
initramfs
(暫時根檔案系統)載入 RAM - 將開機參數傳遞給核心
- 可處理多重作業系統開機選項
K – KERNEL(核心)
- 將自身解壓縮到 RAM 中
- 初始化硬體和驅動程式
- 掛載根檔案系統,載入
initramfs
- 設定記憶體管理
- 開始裝置偵測
- 建立核心執行緒
I – INIT(現代系統中的 systemd)
- PID 1(第一個程序)
- 讀取
/etc/inittab
(傳統)或單元檔案(systemd
) - 設定預設的執行等級/目標
- 依序啟動必要的服務:
- 系統服務
- 網路服務
- 顯示管理器
- 使用者介面(CLI/GUI)
- 達到預設的目標狀態
關鍵檔案
/boot/grub/grub.conf
– GRUB 設定檔/etc/systemd/system/
– systemd 單元檔案/etc/inittab
– Init 設定檔(傳統)/var/log/boot.log
– 開機流程日誌
資料來源 Linux Journal