一般正常的情況下, Linux 的开机流程會是如下所示:
-
载入 BIOS 的硬體資訊與進行自我測試,並依據設定取得第一個可開機的裝置;
-
讀取並執行第一個開機裝置內 MBR 的 boot Loader (亦即是 grub2, spfdisk 等程式);
-
依據 boot loader 的設定載入 Kernel ,Kernel 會開始偵測硬體與載入驅動程式;
-
載入 kernel file 與 initramfs 檔案在記憶體內解壓縮
-
initramfs 會在記憶體模擬出系統根目錄,提供 kernel 相關的驅動程式模組
-
核心裝置驅動程式完整的驅動硬體
4.在硬體驅動成功後,Kernel 會主動呼叫 systemd 程式,並以 default.target 流程開機;
-
systemd 執行 sysinit.target 初始化系統及 basic.target 準備作業系統;
-
systemd 啟動 multi-user.target 下的本機與伺服器服務;
-
systemd 執行 multi-user.target 下的 /etc/rc.d/rc.local 檔案;
-
systemd 執行 multi-user.target 下的 getty.target 及登入服務;
-
systemd 執行 graphical 需要的服務