Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 開機流程詳解:從 BIOS 到 Shell 登入的 10 個關鍵階段

編輯:Linux 教學

Linux 開機非單一直線,而是分階段移交控制權。本文梳理 10 個關鍵階段與關鍵檔案/服務。

完整開機流程

  1. BIOS/UEFI 自檢:硬體偵測、載入 MBR/GPT 啟動區。
  2. Bootloader (GRUB/LILO):讀取 /boot/grub/grub.cfg,選擇核心與 initramfs。
  3. 核心初始化:解壓核心、掛載 initramfs、偵測硬體、載入驅動、掛載真實根檔案系統 (ro)。
  4. 啟動 init (PID 1):/sbin/init (SysV) 或 /usr/lib/systemd/systemd (systemd)。
  5. 讀取 /etc/inittab (SysV) 或 systemd target:決定預設 runlevel/target (multi-user/graphical)。
  6. 執行 /etc/rc.d/rc.sysinit:系統級初始化 (網路、swap、fsck、/proc、/sys、模組載入、時區、硬體時鐘等)。
  7. 執行對應 runlevel 腳本:/etc/rc.d/rc[0-6].d/ 中的 S* 啟動腳本 (實為 /etc/rc.d/init.d/ 符號連結)。
  8. 執行 /etc/rc.d/rc.local:使用者自訂啟動指令 (最後執行,適合掛載額外裝置、啟動自訂服務)。
  9. 啟動 getty/登入管理器:/sbin/agetty (文字介面) 或 gdm/lightdm/sddm (圖形介面)。
  10. Shell 登入:使用者輸入帳號密碼,啟動登入 Shell (/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

systemd 時代的差異

  • 平行啟動服務,大幅縮短開機時間。
  • 用 systemctl enable/start/status 管理服務,取代 chkconfig/service。
  • Target 取代 Runlevel:multi-user.target ≈ runlevel 3,graphical.target ≈ runlevel 5。
  • systemd-analyze blame 可分析啟動耗時。

除錯切入點

  • 卡在 GRUB:檢查 grub.cfg、initramfs 是否包含根裝置驅動。
  • 核心 panic:檢視 dmesg、/var/log/messages、journalctl -b。
  • 服務啟動失敗:systemctl status <service>、journalctl -u <service>。

熟悉開機流程,系統異常時才能快速定位故障階段。

Copyright © Windows教程網 All Rights Reserved