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

編輯:Linux 教學

啟動階段總覽

  1. 載入 BIOS 硬體資訊
  2. 讀取 MBR 的 Boot Loader 引導資訊
  3. 載入核心
  4. 核心執行 /sbin/init 載入 /etc/inittab 執行 rc.sysinit
  5. 啟動核心外掛模組(/etc/modules.conf)
  6. init 執行對應執行等級的批次腳本
  7. 執行 /bin/login 程式
  8. 登入後以 Shell 管理主機

詳細啟動過程

1. BIOS 自檢

識別第一顆硬碟及空間後,控制權移交給引導載入程式。

2. 引導載入程式

載入硬碟前 512 位元組(MBR)到記憶體,MBR 中的引導載入程式(如 GRUB)接管控制權,隨後將控制權傳遞給 Linux 核心。

3. 載入 RAM 磁碟

提供最小 Linux 環境,在掛載真實根檔案系統前執行程式。

4. 在 RAM 磁碟中執行 init

  • 載入核心模組:依硬體配置載入驅動程式(尤以硬碟驅動最關鍵),以訪問根檔案系統。
  • 管理 RAID 與 LVM:若根檔案系統位於 RAID/LVM,init 會啟用相應支援。
  • 掛載最終根檔案系統:尋找、檢查、掛載。

5. 執行根檔案系統上的 init

成功後清除 RAM 磁碟,讀取 /etc/inittab 執行真正的 init。關鍵腳本:

  • /etc/rc.d/rc.sysinit:系統初始化腳本(掛載 /proc、設定系統時鐘、環境變數、初始化 USB/HID、設定 PnP、載入鍵盤映射/字體/模組、初始化 RAID/LVM、檢查/掛載檔案系統、啟用 swap/磁碟配額/序列埠、產生啟動日誌等)
  • /etc/rc.d/rcX.d/[KS]*:依執行等級(X)啟動/停止服務(K 開頭停止、S 開頭啟動)
  • /etc/rc.d/rc.local:本地特殊配置
  • 不同等級特殊服務:mingetty(等級 1 除外)、xdm/gdm/kdm(等級 5)

init 進程與 /etc/inittab

init 是核心啟動的第一個進程(PID=1),讀取 /etc/inittab 配置。每行格式:id:runlevels:action:process

  • id:唯一識別碼
  • runlevels:適用執行等級(0-6)
  • action:respawn(重啟)、wait(等待結束)、once(執行一次)、boot(啟動時執行)、bootwait、off、initdefault(預設等級)、sysinit、powerwait/fail/okwait、ctrlaltdel
  • process:要執行的指令

範例 /etc/inittab

# 執行等級定義
# 0 - halt          # 1 - Single user
# 2 - Multiuser no NFS  # 3 - Full multiuser
# 4 - unused        # 5 - X11
# 6 - reboot

id:3:initdefault:          # 預設等級 3
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

ca::ctrlaltdel:/sbin/shutdown -t3 -r now
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure"
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored"

1:2345:respawn:/sbin/mingetty tty1
...
6:2345:respawn:/sbin/mingetty tty6
x:5:respawn:/etc/X11/prefdm -nodaemon

為何保留字元模式?

  • 高效完成所有系統管理任務
  • 遠端登入進入的即是字元模式
  • 節省圖形環境資源開銷

虛擬控制台

預設 6 個(Alt+F1~F6 切換)。若啟動圖形介面(startx),以 Ctrl+Alt+F1~F6 切字元終端,Ctrl+Alt+F7 回圖形。

登出與使用者切換

  • 登出:logout 或 Ctrl+D
  • 超級使用者提示符 #,一般使用者 $
  • 退出:exit
  • Linux 嚴格區分大小寫
  • 建議以一般使用者登入,需 root 權限時用 su - 切換

執行等級

等級說明
0關機
1單使用者維護模式
2多使用者,無 NFS
3完整多使用者(預設文字模式)
4使用者自訂
5多使用者 + X Window 圖形登入
6重啟

查看目前等級:runlevel;切換:init [0-6] 或 telinit。

關機與重啟指令

  • init 0/halt/poweroff:關機
  • init 6/reboot:重啟
  • shutdown:多使用者環境推薦,可發送警告訊息、阻止新登入、通知進程儲存資料
shutdown [參數] time [warning-message]
time 格式:hh:mm | +m | now
參數:-t 秒延遲、-k 僅發警告、-r 重啟、-h 關機、-f 重啟跳過 fsck、-F 強制 fsck
例:shutdown -r +5 "5分鐘後重啟"
    shutdown -h now
    shutdown -r -F now
Copyright © Windows教程網 All Rights Reserved