Linux 開機非單一直線,而是分階段移交控制權。本文梳理 10 個關鍵階段與關鍵檔案/服務。
/boot/grub/grub.cfg,選擇核心與 initramfs。/sbin/init (SysV) 或 /usr/lib/systemd/systemd (systemd)。/etc/rc.d/rc[0-6].d/ 中的 S* 啟動腳本 (實為 /etc/rc.d/init.d/ 符號連結)。/sbin/agetty (文字介面) 或 gdm/lightdm/sddm (圖形介面)。/bin/bash 等),環境變數載入完成。| 階段 | 關鍵檔案/目錄 |
|---|---|
| Bootloader | /boot/grub2/grub.cfg, /etc/default/grub |
| 核心參數 | /proc/cmdline, /etc/sysctl.conf |
| SysV init | /etc/inittab, /etc/rc.d/rc.sysinit, /etc/rc.d/rc*.d/, /etc/rc.d/init.d/ |
| systemd | /etc/systemd/system/, /usr/lib/systemd/system/, systemctl |
| 使用者自訂 | /etc/rc.d/rc.local, /etc/rc.local |
systemctl enable/start/status 管理服務,取代 chkconfig/service。multi-user.target ≈ runlevel 3,graphical.target ≈ runlevel 5。systemd-analyze blame 可分析啟動耗時。grub.cfg、initramfs 是否包含根裝置驅動。dmesg、/var/log/messages、journalctl -b。systemctl status <service>、journalctl -u <service>。熟悉開機流程,系統異常時才能快速定位故障階段。