一文快速看懂 Centos7 系統的啓動過程(配思維導圖)


關鍵詞:系統 啓動 linux centos7 過程 grub2 內核 初始化 systemd


0. 思維導圖概覽

在這裏插入圖片描述


1. 系統固件初始化

1.1 加電

  • 開機自檢

1.2 搜索可啓動設備

1.3 從磁盤中加載GRUB2

1.4 轉交控制權給GRUB2



2. 啓動引導器GRUB2

2.1 啓動GRUB2

  • 從磁盤加載配置
  • 向用戶顯示GRUB菜單
  • 啓動項被選擇

2.2 加載 kernel 與 initramfs

  • 從磁盤加載

  • 加載到 ram

  • initramfs 是 cpio 歸檔文件

    • 必要的 kernel 模塊
    • 初始化腳本
  • 轉交控制權給 kernel

    • 傳遞 kernel 命令行選項
    • initramfs 在 ram 中的位置


3. Linux內核初始化

3.1 從 initramfs 啓動 systemd 的工作副本

  • /sbin/init
  • pid=0

3.2 initramfs 的 systemd 啓動 initrd.target

  • 所有 units
  • 包括依賴的 unit

3.3 kernel 在 initramfs 中查找所有硬件的初始化程序

  • 初始化硬件

3.4 initrd-root-fs.target 將系統的root文件系統掛載

  • 以只讀形式
  • 掛載到 /sysroot

3.5 執行 initrd.target 目標的其他相關 unit

3.6 initrd-switch-root.target 切換 root文件系統

  • 從 initramfs 的root文件系統
  • 到系統實際root文件系統

3.7 將控制權交給實際root文件系統上的 systemd實例



4. 執行本地系統的第一個進程systemd

4.1 systemd 使用系統中安裝的 systemd 副本自行重新執行

  • systemd 副本(PID=1)

4.2 systemd 查找系統配置或從內核命令行傳遞的默認目標

4.3 systemd 啓動默認目標 default.target 的所有 units

  • 自動解決單元間的依賴關係

  • 若默認目標爲multi-user.target

    • 啓用文本登錄屏幕
  • 若默認目標爲graphical.target

    • 啓用圖形登錄屏幕

參考文檔

《Linux 基礎及應用教程》- 梁如軍等

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章