linux系统下开机启动流程
在了解開機(jī)啟動(dòng)流程之前,還是得先了解一些磁盤的基本知識(shí)。磁盤主要由盤片,機(jī)械手臂,磁頭,主軸馬達(dá)構(gòu)成。盤片就是存儲(chǔ)數(shù)據(jù)的物理單位了。然后盤片上我們可以分成扇區(qū)(sector)和柱面(cylinder),每個(gè)扇區(qū)sector為512Bytes。如下圖所示:
磁盤在分區(qū)完成之后,每個(gè)分區(qū)(文件系統(tǒng))都有一個(gè)啟動(dòng)扇區(qū)(boot sector),而開機(jī)時(shí)用到的則是整個(gè)磁盤的第一個(gè)扇區(qū),這個(gè)扇區(qū)非常主要,構(gòu)成如下:
(1)主引導(dǎo)分區(qū)(MBR)master boot record;446Bytes;系統(tǒng)安裝時(shí)在在此區(qū)域安裝引導(dǎo)加載程序即BootLoader
(2)分區(qū)表(partion table);64Bytes;記錄整塊磁盤的分區(qū)狀態(tài);
要了解啟動(dòng)流程,還有兩個(gè)不得不說(shuō)的概念,那就是BIOS和CMOS。CMOS是記錄各項(xiàng)硬件參數(shù)并且嵌入在主板上的存儲(chǔ)器,BIOS是開機(jī)執(zhí)行的第一個(gè)程序,用它來(lái)確認(rèn)硬件設(shè)備的啟動(dòng)順序,然后在對(duì)應(yīng)的硬件設(shè)備中找到引導(dǎo)程序。
好了,下面分階段介紹開機(jī)的啟動(dòng)流程。
第一階段:BIOS
上電之后,BIOS是計(jì)算機(jī)執(zhí)行的第一個(gè)程序,計(jì)算機(jī)首先進(jìn)行硬件自檢,如果出現(xiàn)錯(cuò)誤,則發(fā)出不同的蜂鳴聲。自檢完畢后,BIOS要把控制權(quán)交給下一階段的引導(dǎo)程序,但如何轉(zhuǎn)交呢。由于下一階段的引導(dǎo)程序是放在磁盤分區(qū)的boot sector(引導(dǎo)扇區(qū))里面,所以BIOS會(huì)根據(jù)預(yù)先設(shè)定好的次序的優(yōu)先去找到某個(gè)硬件設(shè)備分區(qū)(就是平常我們說(shuō)的從U盤,硬盤,光盤cd等)的引導(dǎo)扇區(qū)。
第二階段:主引導(dǎo)記錄
它可以告訴計(jì)算機(jī)去哪里找到系統(tǒng)。除此之外,MBR還包含有其他信息。分布如下:
(1)0-445 ,共446Bytes, 調(diào)用操作系統(tǒng)的機(jī)器碼;
(2)446-509,共64Bytes,分區(qū)表信息;
(3)510-511,共2Bytes,主引導(dǎo)記錄簽名(0x55,0xAA);
這里面的第1點(diǎn)和第3點(diǎn)都比較清晰了,唯獨(dú)第2點(diǎn)還需在深究一下,分區(qū)表信息里面包含了什么內(nèi)容呢?具體如下6部分
(1)0, 0x80,代表該分區(qū)是激活分區(qū),4個(gè)分區(qū)里面只能有一個(gè)激活分區(qū);
(2)1-3, 主分區(qū)第一個(gè)扇區(qū)的物理位置(柱面,磁頭,扇區(qū)號(hào)等);
(3)4,主分區(qū)類型;
(4)5-7,主分區(qū)最后一個(gè)扇區(qū)的物理位置;
(5)8-11,主分區(qū)第一個(gè)扇區(qū)的邏輯地址;
(6)12-15,主分區(qū)的總扇區(qū)數(shù);
扇區(qū)總數(shù)為32bits,也就是說(shuō)如果每個(gè)扇區(qū)的大小為512Bytes,那么每個(gè)分區(qū)的大小最大為2的32次方字節(jié),即2TB。
到此為止,計(jì)算機(jī)已經(jīng)找到引導(dǎo)程序了。
第三階段:硬盤啟動(dòng)
這里又分為以下3種情況。
(1)卷引導(dǎo)記錄
這一種方式啟動(dòng)最為簡(jiǎn)單,在四個(gè)分區(qū)里面只有一個(gè)是被激活的,找到激活分區(qū)的第一個(gè)扇區(qū)(Volume Boot Record:VBR),然后通過(guò)引導(dǎo)程序加載系統(tǒng)內(nèi)核啟動(dòng)系統(tǒng)即可;
(2)擴(kuò)展分區(qū)記錄
由于現(xiàn)在硬盤越來(lái)越大,4個(gè)分區(qū)還已經(jīng)不夠支持,因此規(guī)定有且僅有一個(gè)主分區(qū)可以定義為擴(kuò)展分區(qū),在擴(kuò)展分區(qū)中再進(jìn)行邏輯擴(kuò)展,即邏輯分區(qū)。而引導(dǎo)記錄則位于該擴(kuò)展扇區(qū)的第一個(gè)扇區(qū),稱為擴(kuò)展引導(dǎo)記錄(extend Boot Record:EBR)。在這個(gè)扇區(qū)中,也有一個(gè)分區(qū)表,不過(guò)這個(gè)分區(qū)表只有兩項(xiàng)分區(qū)信息。這樣計(jì)算機(jī)根據(jù)第二項(xiàng)分區(qū)信息找到下一個(gè)邏輯分區(qū),然后在下一個(gè)邏輯分區(qū)的第一個(gè)扇區(qū)里面做同樣的事情找到第三個(gè)邏輯分區(qū),循環(huán)下去直至找到自己的邏輯分區(qū)就是最后一個(gè)邏輯分區(qū)了。
(3)啟動(dòng)管理器
這個(gè)的作用主要是安裝多個(gè)操作系統(tǒng),找到主引導(dǎo)記錄不是把控制權(quán)交給某一個(gè)分區(qū)而是交給已經(jīng)安裝好的“啟動(dòng)管理器”BootLoader,由用戶選擇某個(gè)操作系統(tǒng)。Grub則是Linux環(huán)境最流行的啟動(dòng)管理器了。
轉(zhuǎn)載于:https://www.cnblogs.com/vincentfu/p/5536943.html
總結(jié)
以上是生活随笔為你收集整理的linux系统下开机启动流程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Excel 文件读取
- 下一篇: linux centos7 安装redi