聊聊CentOS6的啓動過程

前言:linux

    做爲一個合格的運維人員,系統的啓動過程咱們須要牢記在心,此文不深刻探討,只求大體理解CentOS6的啓動過程。
運維




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


blob.png

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



上圖各階段詳解spa


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

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

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

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

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

/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部分會抽空寫一篇相應博文來詳細敘述。

相關文章
相關標籤/搜索