溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)啟動(dòng)詳解是什么

發(fā)布時(shí)間:2021-10-22 09:19:28 來源:億速云 閱讀:128 作者:柒染 欄目:互聯(lián)網(wǎng)科技

Linux系統(tǒng)啟動(dòng)詳解是什么,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

一 、 BIOS上電自檢

BIOS(Basic Input Output System,基本輸入輸出系統(tǒng))是指一組固化到計(jì)算機(jī)內(nèi)主板上一個(gè)ROM芯片上的程序,它保存著計(jì)算機(jī)最重要的基本輸入輸出的程序、開機(jī)后自檢程序和系統(tǒng)自啟動(dòng)程序,它可從CMOS中讀寫系統(tǒng)設(shè)置的具體信息。 其主要功能是為計(jì)算機(jī)提供最底層的、最直接的硬件設(shè)置和控制。

  • 當(dāng)計(jì)算機(jī)接通電源(啟動(dòng))時(shí),便加載第一個(gè)軟件——BIOS。對(duì)于所有的操作系統(tǒng)一樣,BIOS是被設(shè)計(jì)來初始化硬件而產(chǎn)生。POST(Power On self Test,上電自檢)作為BIOS的主要組成部分,用于檢驗(yàn)電腦硬件的基本功能是否正常。如果POST失敗,那么該計(jì)算機(jī)將不能使用,引導(dǎo)過程也會(huì)就此中斷。

  • 當(dāng)BIOS上電自檢成功,確認(rèn)硬件的基本功能正常后,會(huì)產(chǎn)生一個(gè)BIOS中斷 INT 13H,從而轉(zhuǎn)向第一塊硬盤的第一個(gè)扇區(qū),即MBR(Master Boot Record,主引導(dǎo)記錄)。

二 、 引導(dǎo)裝載程序

  • stage 1:當(dāng)POST結(jié)束后,BIOS會(huì)將其跳轉(zhuǎn)的主引導(dǎo)記錄MBR加載至內(nèi)存中,并開始執(zhí)行該代碼??刂茩?quán)由BIOS轉(zhuǎn)移至主引導(dǎo)記錄代碼。

  • 主引導(dǎo)記錄代碼必須非常小,因?yàn)樗仨氝B同分區(qū)表放到硬盤的第一個(gè) 512字節(jié)的扇區(qū)中。在傳統(tǒng)的常規(guī)MBR中,主引導(dǎo)程序?qū)嶋H所占用的空間大小為446字節(jié),通常被叫做引導(dǎo)鏡像(boot.img),其中不包含設(shè)備的分區(qū)信息(4×16字節(jié)),分區(qū)是一般單獨(dú)添加到引導(dǎo)記錄中。

  • 由于引導(dǎo)記錄必須非常的小,它不可能非常智能,且不能理解文件系統(tǒng)結(jié)構(gòu)。因此stage 1唯一功能就是定位并加載stage 2的代碼(分頁項(xiàng)中的起始及結(jié)束磁盤信息,尋找相應(yīng)的存儲(chǔ)區(qū)域)。為了完成此任務(wù),stage 1的代碼必須位于引導(dǎo)記錄與設(shè)備第一個(gè)分區(qū)之間的位置。在加載stage 2代碼進(jìn)入內(nèi)存后,控制權(quán)將由stage 1轉(zhuǎn)移到stage 2。

-------MBR結(jié)構(gòu)組成圖-------

地址名稱功能
0000-0088主引導(dǎo)程序主引導(dǎo)程序
0089-01BD出錯(cuò)信息數(shù)據(jù)區(qū)數(shù)據(jù)區(qū)
01BE-01CD分區(qū)項(xiàng)1(16字節(jié))分區(qū)表
01CE-01DD分區(qū)項(xiàng)2(16字節(jié))
01BE-01CD分區(qū)項(xiàng)3(16字節(jié))
01DE-01ED分區(qū)項(xiàng)4(16字節(jié))
01FE55結(jié)束標(biāo)志
01FFAA

---------分頁項(xiàng)(16字節(jié))內(nèi)容及含義---------

存貯字節(jié)位內(nèi)容含義
第1字節(jié)引導(dǎo)標(biāo)志:

80H—活動(dòng)分區(qū)

00H—非活動(dòng)分區(qū)
第2、3、4字節(jié)本分區(qū)的起始磁頭號(hào)、扇區(qū)號(hào)、柱面號(hào):

磁頭號(hào)—第2字節(jié)

扇區(qū)號(hào)—第3字節(jié)的低6位

柱面號(hào)—第3字節(jié)高2位+第4字節(jié)8位
第5字節(jié)分區(qū)類型符:

00H—表示該分區(qū)未用(即沒有指定)

06H—FAT16基本分區(qū)

0BH—FAT32基本分區(qū)

05H—擴(kuò)展分區(qū)

07H—NTFS分區(qū)

0FH—(LBA模式)擴(kuò)展分區(qū)

83H—Linux分區(qū)等
第6、7、8字節(jié)本分區(qū)的結(jié)束磁頭號(hào)、扇區(qū)號(hào)、柱面號(hào):

磁頭號(hào)—第6字節(jié)

扇區(qū)號(hào)—第7字節(jié)的低6位

柱面號(hào)—第7字節(jié)的高2位+第8字節(jié)
第9、10、11、12字節(jié)本分區(qū)之前已用扇區(qū)數(shù)
第13、14、15、16字節(jié)本分區(qū)的總扇區(qū)數(shù)

  • stage 2:由于第一個(gè)扇區(qū)遺留下 62 個(gè) 512 字節(jié)的扇區(qū)(共 31744 字節(jié)),該區(qū)域用于存儲(chǔ)stage 2的代碼鏡像 core.img 文件。該文件大小為 25389 字節(jié),故此區(qū)域有足夠大小的空間用來存儲(chǔ) core.img 文件。

  • 因?yàn)橛懈蟮拇鎯?chǔ)空間用于stage 2,且該空間足夠容納一些通用的文件系統(tǒng)驅(qū)動(dòng)程序,如標(biāo)準(zhǔn)的 EXT 和其它的 Linux 文件系統(tǒng),如 FAT 和 NTFS 等。GRUB2 的 core.img 遠(yuǎn)比更老的 GRUB1 在stage 2更復(fù)雜且更強(qiáng)大。這意味著 GRUB2 的stage 3能夠放在標(biāo)準(zhǔn)的 EXT 文件系統(tǒng)內(nèi),但是不能放在邏輯卷內(nèi)。故stage 3的文件可以存放于 /boot 文件系統(tǒng)中,一般在 /boot/grub2 目錄下。

  • 注意: /boot 目錄必須放在一個(gè) GRUB 所支持的文件系統(tǒng)(并不是所有的文件系統(tǒng)均可)。stage 2的功能是開始執(zhí)行存放stage 3文件的 /boot 文件系統(tǒng)的驅(qū)動(dòng)程序,并加載相關(guān)的驅(qū)動(dòng)程序。


  • stage 3:GRUB stage 3所有的文件都已存放于 /boot/grub2 目錄及其子目錄下。該階段沒有一個(gè)類似于stage 1與stage 2的鏡像文件。相應(yīng)地,該階段主要需要從 /boot/grub2/i386-pc 目錄下加載一些內(nèi)核運(yùn)行時(shí)模塊。

  • GRUB stage 3的主要功能是定位和加載 Linux 內(nèi)核到內(nèi)存中,并轉(zhuǎn)移控制權(quán)到內(nèi)核。內(nèi)核的相關(guān)文件位于 /boot 目錄下,這些內(nèi)核文件可以通過其文件名進(jìn)行識(shí)別,其文件名均帶有前綴 vmlinuz(內(nèi)核文件)。你可以列出 /boot 目錄中的內(nèi)容來查看操作系統(tǒng)中當(dāng)前已經(jīng)安裝的內(nèi)核。

  • GRUB2 跟 GRUB1 類似,支持從 Linux 內(nèi)核選擇之一引導(dǎo)啟動(dòng)。Red Hat 包管理器(DNF)支持保留多個(gè)內(nèi)核版本,以防最新版本內(nèi)核發(fā)生問題而無法啟動(dòng)時(shí),可以恢復(fù)老版本的內(nèi)核。默認(rèn)情況下,GRUB 提供了一個(gè)已安裝內(nèi)核的預(yù)引導(dǎo)菜單,其中包括問題診斷菜單(recuse)以及恢復(fù)菜單(如果配置已經(jīng)設(shè)置恢復(fù)鏡像)。

三 、 初始化內(nèi)核

  • 內(nèi)核文件都是以一種自解壓的壓縮格式存儲(chǔ)以節(jié)省空間,它與一個(gè)初始化的內(nèi)存映像和存儲(chǔ)設(shè)備映射表都存儲(chǔ)于 /boot 目錄之下。

  • 在選定的內(nèi)核加載到內(nèi)存中并開始執(zhí)行后,在其進(jìn)行任何工作之前,內(nèi)核文件首先必須從壓縮格式解壓自身。一旦內(nèi)核自解壓完成,則加載 systemd 進(jìn)程(其是老式 System V 系統(tǒng)的 init 程序的替代品),并轉(zhuǎn)移控制權(quán)到 systemd。

  • 這就是引導(dǎo)過程的結(jié)束。此刻,Linux 內(nèi)核和 systemd 處于運(yùn)行狀態(tài),但是由于沒有其他任何程序在執(zhí)行,故其不能執(zhí)行任何有關(guān)用戶的功能性任務(wù)。

四 、 啟動(dòng)systemd

  • systemd 是所有進(jìn)程的父進(jìn)程。它負(fù)責(zé)將 Linux 主機(jī)帶到一個(gè)用戶可操作狀態(tài)(可以執(zhí)行功能任務(wù))。systemd 的一些功能遠(yuǎn)較舊式 init 程序更豐富,可以管理運(yùn)行中的 Linux 主機(jī)的許多方面,包括掛載文件系統(tǒng),以及開啟和管理 Linux 主機(jī)的系統(tǒng)服務(wù)等。

  • systemd 掛載在 /etc/fstab 中配置的文件系統(tǒng),包括內(nèi)存交換文件或分區(qū)。據(jù)此,systemd 必須能夠訪問位于 /etc 目錄下的配置文件,包括它自己的。systemd 借助其配置文件 /etc/systemd/system/default.target 決定 Linux 系統(tǒng)應(yīng)該啟動(dòng)達(dá)到哪個(gè)狀態(tài)(或目標(biāo)態(tài)target)

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI