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

原創文章,作者:Net18-AnyISalIn,如若轉載,請注明出處:http://www.www58058.com/12765

(0)
Net18-AnyISalInNet18-AnyISalIn
上一篇 2016-03-13 01:55
下一篇 2016-03-14 14:51

相關推薦

  • vim編輯器

    回顧:     正則表達式(BRE, ERE)     BRE:字符匹配:., [], [^]     次數匹配:*,\?,\+,\{m\},\{m,n}     位置錨定:^,$,\<,\>     分組及引用:(),\1,\2,…&…

    Linux干貨 2016-12-23
  • N28-第四周博客作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。

    2、編輯/etc/group文件,添加組hadoop。

    3、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id號;其家目錄為/home/hadoop。

    4、復制/etc/skel目錄為/home/hadoop,要求修改hadoop目錄的屬組和其它用戶沒有任何訪問權限。

    5、修改/home/hadoop目錄及其內部所有文件的屬主為hadoop,屬組為hadoop。

    6、顯示/proc/meminfo文件中以大寫或小寫S開頭的行;用兩種方式;

    7、顯示/etc/passwd文件中其默認shell為非/sbin/nologin的用戶;

    8、顯示/etc/passwd文件中其默認shell為/bin/bash的用戶;

    9、找出/etc/passwd文件中的一位數或兩位數;

    10、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;

    11、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行;

    12、打出netstat -tan命令執行結果中以‘LISTEN’,后或跟空白字符結尾的行;

    13、添加用戶bash, testbash, basher, nologin (此一個用戶的shell為/sbin/nologin),而后找出當前系統上其用戶名和默認shell相同的用戶的信息;

    Linux干貨 2017-12-26
  • 第三周作業

    1、列出當前系統上所有已登陸的用戶名:          [root@yangjifeng~]# who | cut -d ‘ ‘ -f 1 | sort -u     root 2、取出最后登陸到當前系統的用戶信息; &nb…

    Linux干貨 2017-08-28
  • 馬哥教育網絡19期+第十六周課程練習

    編譯安裝LNMP 一、安裝Nginx: 1、解決依賴關系 編譯安裝nginx需要事先需要安裝開發包組"Development Tools"和 "Development Libraries"。同時,還需要專門安裝pcre-devel包: # yum -y ins…

    Linux干貨 2016-08-22
  • yum軟件管理使用詳解

    yum介紹 yum客戶端的使用 配置文件項作說明: 案例repo配置文件。 創建yum源命令(yum-config-manager) yum list相關命令 yum安裝 yum更新和升級 yum查找和顯示 yum刪除程序 查看倉庫 實戰演練本地yum倉庫(光盤) YUM內置變量 創建YUM倉庫(http) yum介紹 yum命令是在Fedora和RedHa…

    Linux干貨 2016-09-06
  • lvm基本應用

    前言 一種技術要知其然,還要知其所以然 lvm簡介 LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁盤分區進行管理的一種機制。普通的磁盤分區管理方式在邏輯分區劃分好之后就無法改變其大小,當一個邏輯分區存放不下某個文件時,這個文件因為受上層文件系統的限制,也不能跨越多個分區來存放,所以也不能同時放到別的磁盤上…

    Linux干貨 2016-05-21
欧美性久久久久