不同版本的Linux系統的啟動過程在某些地方是不一樣的,現在先來介紹一下red hat 7 的啟動過程(EFI)。 (加電→圖形登錄界面) ...
不同版本的Linux系統的啟動過程在某些地方是不一樣的,現在先來介紹一下red hat 7 的啟動過程(EFI)。
(加電→圖形登錄界面)
- 接通電源
- 按下電源鍵
- EFI固件啟動
- 初始化硬體
- 從EFI啟動配置表
- 根據配置表,在硬碟的EFI系統分區上找到GRUB
- 啟動GRUB
- 讀取啟動分區內的GRUB.cfg
- 確認要載入的操作系統
- 顯示畫面,等待用戶選擇操作系統或等待超時後進入預設的操作系統
- 讀取啟動分區內所選操作系統的內核並載入到記憶體上
- 初始化記憶體盤到記憶體
- GRUB跳轉到記憶體中的內核的啟動地址(啟動入口)
- 將控制權交於內核
- 內核初始化
- 內核執行自解壓操作,將完整內核釋放到記憶體
- 完成後初始化硬體
- 掛在記憶體中的初始化記憶體盤
- 啟動初始化記憶體盤中的初始化管理程式(systemd)
- 載入初始化記憶體盤中存放的內核模塊
- 初始化記憶體盤中的UDEV硬體管理程式
- 根據內核命令行所指定的信息,由UDEV確定啟動設備,搜索根目錄
- 只讀掛載根目錄
- 讀取目標根目錄的fstab,生成systemd設備的配置文件,並通知UDEV確定具體設備
- UDEV等待內核通知設備上線
- systemd等待UDEV設備上線
- systemd根據配置決定是否檢查設備上的文件系統
- 掛載設備到fstab指定位置
- 1號進程systemd chroot exec到新根下的目標init(systemd)
- 目標系統systemd啟動系統基本服務(single.target)
- 啟動多用戶模式和網路服務
- 其中啟動用戶登錄管理服務,此服務負責載入用戶登錄所需要的必須服務,例如:本地控制台登錄、圖形登錄服務程式
- 圖形登錄界面載入成功,用戶可以登錄系統