系統的啟動流程
初始化系統
在rhel7之前使用init初始化系統,在rhel7之後使用systemd初始化系統
init和systemd的區別
- init是從上到下依次啟動,如果一個點出現問題,那麼它後面的點都不會啟動
- systemd是並行啟動,按需啟動,可以一次性同步啟動多個服務
- systemd會自動解決依賴問題(例如,啟動hfs就會先啟動rpc-bind和mountd
系統的啟動目標
指的是啟動時的操作頁面
啟動流程
- 開機
- bios開啟自檢並載入硬體
- bios根據啟動順序選擇對應的啟動裝置(硬碟,cdrom,網路等等)
- 從硬碟去載入引導程式碼(載入程式)
- 引導程式碼 > 載入程式 > grub2
- 存放在硬碟的前446位元組的位置(mbr分割槽的最前面)
- 載入程式載入啟動引導分割槽中的配置檔案(引導配置檔案
/boot/grub2/grub2.cfg
) - grub2會載入核心 > 要掛載的根檔案系統,然後執行systemd來初始化(啟動服務,根據啟動目標獲得操作頁面)
grub2會載入initramfs,目的是為了幫助核心掛載根檔案系統,提供檔案系統的驅動以及硬體驅動
核心不能夠掛載根檔案系統,想掛載根檔案系統是需要對應的檔案系統驅動(xfs,ext4等等) - initramfs會執行自己的sysytemd並且將磁碟上的根檔案系統掛載到/sysroot(簡單來說就是,將自己的根檔案系統掛載到/sysroot)
- 核心會將initramfs的假根切換為/sysroot(真正的根),然後執行systemd,進行初始化系統。
- systemd透過啟動目標來獲得操作頁面(字元頁面,圖形化頁面)