CentOS 6的開機(jī)啟動(dòng)流程

在學(xué)習(xí)Linux內(nèi)核之前锦援,了解一些Linux的開機(jī)啟動(dòng)流程會(huì)對(duì)學(xué)習(xí)內(nèi)核有一定的幫助允粤。

第一步:BIOS

當(dāng)我們按下電源時(shí)朗和,計(jì)算機(jī)會(huì)自動(dòng)讀取主板中的“只讀內(nèi)存”(ROM)中的BIOS開機(jī)程序犯眠,BIOS中的程序開始進(jìn)行開機(jī)前的自檢(POST)行為,檢測(cè)各硬件是否具有開機(jī)的條件。

第二步:MBR

當(dāng)BIOS完成自檢后始鱼,若計(jì)算機(jī)的硬件具有開機(jī)啟動(dòng)的條件仔掸,那么,此刻BIOS會(huì)從自身的boot sequence(引導(dǎo)順序)中查找用于啟動(dòng)的設(shè)備医清。


image.png

如上圖所示起暮,BIOS會(huì)先從排在第一位的嘗試著啟動(dòng)系統(tǒng),若在此中找到了MBR的bootloader程序状勤,則直接根據(jù)boot loader去引導(dǎo)相應(yīng)的操作系統(tǒng)鞋怀,并且交出計(jì)算機(jī)的控制權(quán)双泪,若boot loader引導(dǎo)失敗持搜,則MBR不會(huì)訪問第二個(gè)用于啟動(dòng)的設(shè)備,標(biāo)志此次開機(jī)失敗焙矛。

對(duì)于硬盤設(shè)備的MBR:
      446 byte :boot loader葫盼,引導(dǎo)程序
      64 byte  :分區(qū)表
      2  byte :0x55 和0xAA 
 后2byte若不是0x55 和0xAA ,則表明此設(shè)備無(wú)法用于系統(tǒng)啟動(dòng)村斟,則BIOS按照boot sequence的順序?qū)ふ蚁乱粋€(gè)可用于啟動(dòng)的設(shè)備

第三步:boot loader

功能:boot loader是一段程序贫导。它的作用是尋找設(shè)備分區(qū)中的系統(tǒng)內(nèi)核,并將系統(tǒng)內(nèi)核加載到內(nèi)存中蟆盹,進(jìn)行加壓孩灯、展開,并將控制權(quán)交給內(nèi)核逾滥。

在linux系統(tǒng)中峰档,常用的boot loader是grub,當(dāng)設(shè)備上裝載多個(gè)系統(tǒng)時(shí)寨昙,grub能夠提供菜單讥巡,供用戶選擇加載某個(gè)特定的系統(tǒng)內(nèi)核。更多關(guān)于grub的知識(shí)舔哪,我后面會(huì)總結(jié)欢顷。

注:
在CentOS 6中,內(nèi)核的核心文件放在/boot的目錄下捉蚤。通常情況下抬驴,系統(tǒng)會(huì)將根文件系統(tǒng)掛載到LVM中,利于文件系統(tǒng)的擴(kuò)展缆巧,而/boot目錄掛載在普通格式的分區(qū)中布持。
原因:
grub中只有一些普通文件系統(tǒng)格式的驅(qū)動(dòng),并沒有LVM的驅(qū)動(dòng)盅蝗。放在普通的分區(qū)中鳖链,grub能夠讀取內(nèi)核的核心文件加載到內(nèi)存中。

問題出現(xiàn):
內(nèi)核除了位于/boot目錄下的核心文件,還有位于/lib/modules目錄中的模塊文件芙委。當(dāng)內(nèi)核需要掛載位于LVM中的根文件系統(tǒng)時(shí)逞敷,因?yàn)闆]有驅(qū)動(dòng),無(wú)法掛載根文件系統(tǒng)灌侣。而LVM的驅(qū)動(dòng)在根文件系統(tǒng)的/lib/modules目錄下推捐,這樣就出現(xiàn)了要掛載根文件系統(tǒng)就必須加載驅(qū)動(dòng),但是驅(qū)動(dòng)在文件系統(tǒng)中這樣的雞生蛋侧啼,蛋生雞的矛盾問題牛柒。

第四步:kernel

上一步加載完普通分區(qū)中的內(nèi)核核心文件到內(nèi)存中運(yùn)行時(shí),內(nèi)核會(huì)進(jìn)行以下操作痊乾。

(1)皮壁、自身初始化 
(2)、探測(cè)可識(shí)別到的硬件設(shè)備
(3)哪审、加載硬件驅(qū)動(dòng)程序(此處可能會(huì)借`動(dòng)程序)
 (4)蛾魄、以只讀式掛載根文件系統(tǒng),加載后運(yùn)行/sbin/init

在加載硬件的驅(qū)動(dòng)程序這一過程中遇到了麻煩湿滓,為了保證linux內(nèi)核容量的大小滴须,所以內(nèi)核中并沒有編譯進(jìn)一些設(shè)備的驅(qū)動(dòng)。那么此時(shí)叽奥,內(nèi)核該如何加載那些驅(qū)動(dòng)扔水,并且訪問相應(yīng)的設(shè)備呢?

解決辦法:
為了解決上一個(gè)步驟遺留下來的問題朝氓,在CentOS 6中魔市,我們引入了initramfs。initramfs文件存放到/boot目錄下膀篮,當(dāng)grub加載內(nèi)核的核心文件時(shí)嘹狞,initramfs可以設(shè)置被一并加載。initramfs會(huì)成為一個(gè)虛擬文件系統(tǒng)誓竿,為內(nèi)核訪問其他設(shè)備提供了所需要的驅(qū)動(dòng)程序磅网。
例如訪問根文件系統(tǒng)的驅(qū)動(dòng),這是內(nèi)核就可以對(duì)根文件系統(tǒng)操作了筷屡。

第五步:init

在內(nèi)核從initramfs中獲得根文件系統(tǒng)的驅(qū)動(dòng)后涧偷,會(huì)以只讀的方式掛載根文件系統(tǒng),接著啟動(dòng)第一個(gè)運(yùn)行程序/sbin/init程序毙死。程序啟動(dòng)后燎潮,會(huì)讀取/etc/inittab和/etc/init/*.conf文件進(jìn)行基本的設(shè)置。
根據(jù)/etc/inittab文件進(jìn)行系統(tǒng)運(yùn)行級(jí)別的設(shè)置扼倘。此處列出系統(tǒng)的運(yùn)行級(jí)別

    0-6 : 7個(gè)級(jí)別
    0:關(guān)機(jī)
    1:單用戶模式(root ,無(wú)需登錄)确封,single 除呵,維護(hù)模式
    2:多用戶模式,會(huì)啟動(dòng)網(wǎng)絡(luò)功能爪喘,不會(huì)啟動(dòng)網(wǎng)絡(luò)文件系統(tǒng)颜曾,維護(hù)模式
    3.多用戶模式,正常模式秉剑,默認(rèn)為文本界面
    4.預(yù)留級(jí)別
    5.多用戶模式泛豪,正常模式,圖形界面
    6.重啟系統(tǒng)

第六步:?jiǎn)?dòng)服務(wù)

當(dāng)?shù)谖宀皆O(shè)定好運(yùn)行級(jí)別后侦鹏,相應(yīng)級(jí)別目錄中(/etc/rc.d/rc#.d/)的鏈接文件被讀取诡曙。

鏈接文件名的含義:
  1、S略水、K分別代表start和kill
  2价卤、數(shù)字代表開啟或結(jié)束的順序。一般先開啟的會(huì)后結(jié)束聚请,因?yàn)榭赡鼙黄渌?wù)所依賴荠雕。

各個(gè)運(yùn)行級(jí)別的鏈接文件連接到/etc/init.d/下的每一個(gè)服務(wù)運(yùn)行腳本。

第七步:?jiǎn)?dòng)終端驶赏,登錄系統(tǒng)

在各服務(wù)均啟動(dòng)后,系統(tǒng)會(huì)讀取/etc/rc.d/rc.local文本文件既鞠,進(jìn)行登錄前的最后設(shè)定煤傍。所以當(dāng)有不便或不需寫為服務(wù)腳本放置于/etc/rc.d/init.d/目錄,且又想開機(jī)時(shí)自動(dòng)運(yùn)行的命令嘱蛋,可直接放置于/etc/rc.d/rc.local文件中蚯姆。最后,/bin/login啟動(dòng)洒敏,出現(xiàn)登錄界面龄恋。

最后一張圖來總結(jié)Linux開機(jī)流程

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市凶伙,隨后出現(xiàn)的幾起案子郭毕,更是在濱河造成了極大的恐慌,老刑警劉巖函荣,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件显押,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡傻挂,警方通過查閱死者的電腦和手機(jī)乘碑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來金拒,“玉大人兽肤,你說我怎么就攤上這事。” “怎么了资铡?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵沉迹,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我害驹,道長(zhǎng)鞭呕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任宛官,我火速辦了婚禮葫松,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘底洗。我一直安慰自己腋么,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布亥揖。 她就那樣靜靜地躺著珊擂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪费变。 梳的紋絲不亂的頭發(fā)上摧扇,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天,我揣著相機(jī)與錄音挚歧,去河邊找鬼扛稽。 笑死,一個(gè)胖子當(dāng)著我的面吹牛滑负,可吹牛的內(nèi)容都是我干的在张。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼矮慕,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼帮匾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起痴鳄,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瘟斜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后夏跷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哼转,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年槽华,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了壹蔓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡猫态,死狀恐怖佣蓉,靈堂內(nèi)的尸體忽然破棺而出披摄,到底是詐尸還是另有隱情,我是刑警寧澤勇凭,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布疚膊,位于F島的核電站,受9級(jí)特大地震影響虾标,放射性物質(zhì)發(fā)生泄漏寓盗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一璧函、第九天 我趴在偏房一處隱蔽的房頂上張望傀蚌。 院中可真熱鬧,春花似錦蘸吓、人聲如沸善炫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)箩艺。三九已至,卻和暖如春宪萄,著一層夾襖步出監(jiān)牢的瞬間艺谆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工雨膨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留擂涛,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓聊记,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親恢暖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子排监,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 文/林梧梧 親愛的母校,愿您花開不斀芪妗舆床; 親愛的母校,愿您綠樹長(zhǎng)青嫁佳; 親愛的母校挨队,愿您絢麗多姿; 親愛的河大蒿往,祝您生...
    胖柿子閱讀 321評(píng)論 2 0
  • 文/梵高的火柴 一個(gè)世界的兩部分裝飾了所有人的面目 沒有什么是適合自己的 又有什么是不太襯自己的 相似的人阻擋了城...
    梵高的火柴閱讀 242評(píng)論 1 1
  • 清大少兒主持培訓(xùn)中心招生啦盛垦! 關(guān)于清大少兒主持培訓(xùn)中心 清大:少兒主持培訓(xùn)中心是專注于...
    王金成閱讀 230評(píng)論 0 0
  • 這就是一張圖
    3d78bbfd02f1閱讀 143評(píng)論 0 0