聊聊CentOS6的啓動過程

前言:

    作爲一個合格的運維人員,系統的啓動過程我們需要牢記在心,此文不深入探討,只求大致理解CentOS6的啓動過程。




一張圖帶你瞭解CentOS6的啓動過程


blob.png

注意:圖片放大查看效果更佳



上圖各階段詳解


POST:計算機開機時BIOS對其各硬件的簡單測試,測試各硬件的完整性

BootSqunce:加電自檢後根據用戶自己這次開機手動設置的接口或者BIOS默認設置依次檢查FirstBoot,SecondaryBoot...等定義的接口是否能引導系統啓動

MBR:Master Boot Record, 主引導記錄,是硬盤的第一個扇區,MBR中包含了Bootloader,分區表等重要信息。

Bootloader:引導程序,通過MBR中找到的Bootloader來引導系統,CentOS6中的Bootloader是Grub Legacy,其實這裏的Bootloader只是整個Bootloader的Stage1,我們在後面進行說明

Kernel-->intramfs:通過Bootloader選擇內核,內核進行自解壓後,解壓initramfs加載額外驅動並將其以只讀的方式掛載爲根分區。

/sbin/init:init程序是系統初始化程序,有着至關重要的作用,可以提供設置系統時間,檢測掛載文件系統等作用,我們會在後面進行詳細說明,系統初始化結束之後切換根分區

mingetty-->login:mingetty負責啓動虛擬終端,然後調用login程序供用戶登錄系統



CentOS6中的Bootloader


    CentOS6默認使用Grub Legacy爲Bootloader,一張圖帶你簡單瞭解Grub的啓動過程

    blob.png

注意:圖片放大查看效果更佳


上圖各階段詳解


stage1:MBR分區中的Bootloader只有256字節,這顯然並不能直接驅動我們的內核,其實MBR中的Bootloader只是Grub Legacy的stage1(第一階段),可以引導到存在Grub Legacy分區

stafe1_5:stage1並不知道Grub Legacy所在分區的驅動,所以在MBR後的扇區中有着一些常用的文件系統驅動可供stage1引導至stage2中

stage2:真正的Grub核心文件的存放位置,其中包含了Grub Legacy的配置文件,可通過stage2真正的加載內核




CentOS6中的init程序


    其實在CentOS6中的init程序已經不是傳統的SysVinit(sysV系UNIX的init),採用了upstart代替SysV,但是CentOS6爲了簡便管理員的操作,upstart的很多特性並沒有凸顯,例如:啓動服務在原生upstart系統中應該是initctl start JOB,但是CentOS6中並不支持,因爲在CentOS6中的服務啓動腳本還是以原來SysV的形式提供的,所以我們採用SysV init的圖來講CentOS6的系統初始化過程。

blob.png

注意:圖片放大查看效果更佳



上圖各階段詳解


/sbin/init:內核自解壓加載ramfs後啓動init開始初始化系統

/etc/rc.d/rc:通過讀取/etc/inittab和/etc/init.d/獲取相應運行級別和配置

/etc/rc.d/rc.sysinit:通過初始化腳本,完成系統初始化,例如:設置系統時間、檢測自動掛載文件系統、激活udev和SElinux....

/etc/rc.d/rc*.d/:在對應運行級別的目錄下,啓動S開頭的程序,關閉K開頭的程序

mingetty-->login:初始化完成後啓動虛擬終端,然後調用Login程序供用戶登錄




總結:

    雖然寫的不是特別詳細,但是可以讓大家大致瞭解CentOS6的啓動過程,Grub legacy部分會抽空寫一篇相應博文來詳細敘述。

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