本文會(huì)介紹一些Linux系統(tǒng)安裝前的一些預(yù)備知識(shí),會(huì)涉及到MBR、BIOS和Boot loader等計(jì)算機(jī)基礎(chǔ)概念。
硬盤(pán)的第一扇區(qū)
在眾多設(shè)備中,與系統(tǒng)安裝關(guān)系最密切的就要數(shù)硬盤(pán)了。因?yàn)樵诎惭b操作系統(tǒng)時(shí),我們要做的一個(gè)最重要的事就是對(duì)硬盤(pán)進(jìn)行分區(qū),以便我們可以更加方便和高效的使用電腦。
在Linux系統(tǒng)中,一切設(shè)備都是以文件的形式存在的,所有設(shè)備對(duì)應(yīng)的文件都存儲(chǔ)在/dev
路徑下。硬盤(pán)對(duì)應(yīng)的文件名通常都是/dev/sd[a-p]
,但如果你使用的是虛擬機(jī),那么硬盤(pán)對(duì)應(yīng)的文件名很可能是/dev/vd[a-p]
。
在整個(gè)硬盤(pán)的存儲(chǔ)空間中,它的第一個(gè)扇區(qū)是特別重要的。硬盤(pán)的一個(gè)扇區(qū)是512字節(jié)大小,在第一個(gè)扇區(qū)的512字節(jié)空間中,存儲(chǔ)了下面兩個(gè)東西。
**1. **主引導(dǎo)記錄(Master Boot Record, MBR):安裝啟動(dòng)引導(dǎo)程序的地方,有446字節(jié);
**2. **分區(qū)表(partition table):記錄硬盤(pán)的分區(qū)狀態(tài),有64字節(jié)。
分區(qū)表
由于分區(qū)表僅擁有64字節(jié)的存儲(chǔ)空間,因此最多僅能有存儲(chǔ)四組分區(qū)信息,每組分區(qū)信息記錄了對(duì)應(yīng)分區(qū)在硬盤(pán)上的起始與結(jié)束的柱面號(hào)。假設(shè)硬盤(pán)設(shè)備文件名為/dev/sda,那么這四個(gè)分區(qū)在Linux系統(tǒng)中的設(shè)備文件名如下所示:
P1:/dev/sda1
P2:/dev/sda2
P3:/dev/sda3
P4:/dev/sda4
這四個(gè)分區(qū)可以作為主(Primary)分區(qū),也可以作為擴(kuò)展(Extended)分區(qū)。擴(kuò)展分區(qū)的作用是使用額外的扇區(qū)來(lái)記錄分區(qū)信息,以使我們可以擁有超過(guò)4個(gè)的分區(qū)數(shù)量。
擴(kuò)展分區(qū)本身并不能被用來(lái)格式化存儲(chǔ)數(shù)據(jù)。我們可以通過(guò)擴(kuò)展分區(qū)所指向的那個(gè)區(qū)塊繼續(xù)存儲(chǔ)其它分區(qū)信息。從擴(kuò)展分區(qū)中切割出來(lái)的分區(qū)叫做邏輯(Logical)分區(qū)。由于邏輯分區(qū)是由擴(kuò)展分區(qū)繼續(xù)劃分出來(lái)的,所以邏輯分區(qū)可以使用的硬盤(pán)柱面范圍就是擴(kuò)展分區(qū)所設(shè)置的范圍。
主分區(qū)、擴(kuò)展分區(qū)和邏輯分區(qū)之間的關(guān)系如下圖所示:
圖中分區(qū)在Linux系統(tǒng)中的設(shè)備文件名分別如下:
P1:/dev/sda1
P2:/dev/sda2
L1:/dev/sda5
L2:/dev/sda6
L3:/dev/sda7
L4:/dev/sda8
注意到這次的文件中不包含/dev/sda3和/dev/sda4。因?yàn)榍八膫€(gè)號(hào)碼都是保留給主分區(qū)和擴(kuò)展分區(qū)用的,邏輯分區(qū)的設(shè)備號(hào)碼只能由5開(kāi)始。
下面我們對(duì)硬盤(pán)分區(qū)做一個(gè)總結(jié):
- 所謂的分區(qū)只是針對(duì)那個(gè)64字節(jié)的分區(qū)表進(jìn)行設(shè)置而已;
- 硬盤(pán)默認(rèn)的分區(qū)表僅能存儲(chǔ)四組分區(qū)信息,這四組分區(qū)可以是主分區(qū)或擴(kuò)展分區(qū);
- 擴(kuò)展分區(qū)最多只能有1個(gè);
- 邏輯分區(qū)是由擴(kuò)展分區(qū)二次劃分出來(lái)的分區(qū);
- 主分區(qū)和邏輯分區(qū)可以被格式化后存儲(chǔ)數(shù)據(jù),擴(kuò)展分區(qū)不能被格式化。
BIOS&MBR
軟件是計(jì)算機(jī)的靈魂,沒(méi)有運(yùn)行任何軟件的硬件是沒(méi)有用的,操作系統(tǒng)就是用來(lái)管理計(jì)算機(jī)中各個(gè)硬件的軟件。
但是在電腦開(kāi)機(jī)前,操作系統(tǒng)也只是躺在硬盤(pán)上的一組數(shù)據(jù)而已,那么計(jì)算機(jī)要如何讀取操作系統(tǒng)文件并運(yùn)行它呢?這就涉及到計(jì)算機(jī)的啟動(dòng)程序了。
BIOS是寫(xiě)入到計(jì)算機(jī)主板上的一個(gè)固件(固件就是寫(xiě)入到硬件上的一個(gè)軟件程序)。這個(gè)BIOS就是計(jì)算機(jī)啟動(dòng)的時(shí)候所執(zhí)行的第一個(gè)程序。BIOS會(huì)根據(jù)用戶的設(shè)置找到能夠啟動(dòng)的設(shè)備(硬盤(pán)或U盤(pán)),如果啟動(dòng)的設(shè)備是硬盤(pán),BIOS會(huì)從該硬盤(pán)的第一個(gè)扇區(qū)中讀取MBR中的啟動(dòng)引導(dǎo)程序。至此,BIOS的工作就結(jié)束了,節(jié)下來(lái)就是MBR內(nèi)的啟動(dòng)引導(dǎo)程序的工作了。
MBR內(nèi)的啟動(dòng)引導(dǎo)程序的任務(wù)就是加載操作系統(tǒng)內(nèi)核文件,這個(gè)啟動(dòng)引導(dǎo)程序是操作系統(tǒng)在安裝的時(shí)候所提供的,所以它知道如何加載操作系統(tǒng)內(nèi)核。
接下來(lái)就是操作系統(tǒng)內(nèi)核開(kāi)始接管計(jì)算機(jī),啟動(dòng)引導(dǎo)程序的任務(wù)至此也圓滿完成了。
整個(gè)啟動(dòng)流程到操作系統(tǒng)之前的過(guò)程總結(jié)如下:
- BIOS:計(jì)算機(jī)啟動(dòng)后會(huì)主動(dòng)執(zhí)行的固件,它會(huì)找到一個(gè)可啟動(dòng)的設(shè)備;
- MBR:位于可啟動(dòng)設(shè)備的第一個(gè)扇區(qū)內(nèi)的一塊存儲(chǔ)空間,只有446字節(jié),用于存儲(chǔ)啟動(dòng)引導(dǎo)程序;
- 啟動(dòng)引導(dǎo)程序(boot loader):一個(gè)可以加載操作系統(tǒng)內(nèi)核文件的程序;
-
Linux
+關(guān)注
關(guān)注
87文章
11466瀏覽量
212887 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7636瀏覽量
90254 -
MBR
+關(guān)注
關(guān)注
0文章
12瀏覽量
11252
發(fā)布評(píng)論請(qǐng)先 登錄
介紹一些實(shí)用的Linux命令

梳理嵌入式Linux的一些知識(shí)
大佬都在看的嵌入式Linux的一些知識(shí)
來(lái)一起梳理嵌入式Linux的一些知識(shí)
SNMP協(xié)議的一些基本知識(shí)
梳理嵌入式Linux的一些知識(shí)
關(guān)于學(xué)習(xí)Linux的一些建議
嵌入式系統(tǒng)的一些基礎(chǔ)知識(shí)
學(xué)習(xí)linux內(nèi)核的一些建議

評(píng)論