CentOS系統啟動流程

CentOS 5、6系統啟動流程是差不多的,只是用到的init程序不同和配置文件的表現形式不同,但是為了保證兼容性,CentOS 6在組織上盡可能的向後兼容了CentOS 5。

CentOS 6啟動流程:

POST(加電自檢) --> Boot Sequence(BIOS) --> Bootloader(MBR) --> Kernel(ramdisk) --> rootfs --> switchroot --> /sbin/init(/etc/inittab、/etc/init/*.conf) --> 設定默認運行級別 --> 系統初始化腳本 --> 關閉或啟動對應級別下的服務 --> 啟動終端並打印登入提示符 [--> 啟動圖形終端並顯示登入畫面]

l   內核啟動

n   POST:全稱是Power-On Self-Test。

n   Boot Sequence:根據在BIOS當中Boot Sequence定義的設備啟動次序。

n   Bootloader:搜索擁有Bootloader的設備並加載它以顯示操作系統菜單。Bootloader是存放在硬盤上的MBR。

n   Kernel:用戶選擇要啟動的操作系統以加載Kernel,而且Kernel可能要借助於ramdisk來驅動根文件系統所在的設備以完成根文件系統加載的操作。

n   rootfs:加載根文件系統。

n   switchroot:加載完根文件系統以後做根切換。

l   用戶空間啟動

n   /sbin/init(/etc/inittab、/etc/init/*.conf):運行init程序,並根據配置文件啟動系統。

n   設定默認運行級別:init根據配置文件(/etc/inittab)運行系統默認級別,例:id:3:initdefault:。

n   系統初始化腳本:init根據配置文件執行系統初始化腳本(/etc/rc.d/rc.sysinit)來完成系統初始化。

u  配置文件

²  CentOS 5:/etc/inittab

[root@localhost ~]# cat /etc/inittab
...省略
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
...省略

²  CentOS 6:/etc/init/rcS.conf

[root@CentOS6 ~]# cat /etc/init/rcS.conf
...省略
console output
pre-start script
...省略
end script
exec /etc/rc.d/rc.sysinit
post-stop script
...省略
end script

n   關閉或啟動對應級別下的服務:對應級別為根據系統默認運行級別。

n   啟動終端並打印登入提示符:啟動虛擬終端,通常啟動的是tty1,並打印登入提示符讓用戶輸入帳號、密碼以登入使用。

n   啟動圖形終端:如果系統默認運行級別為5的話還會啟動圖形終端,並顯示登入介面讓用戶輸入帳號、密碼以登入使用。

init程序:

l   CentOS 5:SysV

l   CentOS 6:Upstart

l   CentOS 7:Systemd

配置文件:

l   CentOS 5:/etc/inittab

l   CentOS 6:/etc/init/*.conf、/etc/inittab

l   CentOS 7:/usr/lib/systemd/system/*、/etc/systemd/system/*