CentOS7基礎之Linux啟動過程
阿新 • • 發佈:2018-12-13
Linux系統啟動過程
- 加電後系統韌體(system firmware),也就是BIOS或者UEFI進行加電測試,初始化部分硬體裝置。
- 系統韌體尋找可啟動裝置。
- 系統韌體從disk上讀取boot loader,CentOS7中的boot loader是grub2,之後系統韌體把控制權交給boot loader。
- boot loader從硬碟裝載配置檔案,向用戶顯示一個啟動選擇選單。
- 使用者選擇啟動項後,boot loader從硬碟載入選定的核心(kernel)和initramfs到記憶體中。initramfs中包括了在啟動過程中所需的所有硬體的核心模組(modules)。它的配置檔案是 /etc/dracut.conf 。
- boot loader把啟動時傳入的引數如rd.break, 還有initramfs在記憶體中的地址,以及系統的控制權都移交給kernel。
- kernel初始化所有硬體,然後從initramfs中執行 /sbin/init 把它作為PID 1. CentOS7中的init就是systemd。
- 來自initramfs中的systemd執行所有initrd.target中的unit。把根檔案系統 / 掛載(mount)到 /sysroot.
- 核心的根檔案系統從initramfs切換到剛才掛載的/sysroot上後,sysroot中的systemd會重新再執行一次。
- systemd執行default.target, 系統啟動完成。