您好,登錄后才能下訂單哦!
Linux系統(tǒng)啟動(dòng)詳解是什么,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
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)記錄)。
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。
地址 | 名稱 | 功能 |
---|---|---|
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é)) | |
01FE | 55 | 結(jié)束標(biāo)志 |
01FF | AA |
存貯字節(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)核文件都是以一種自解壓的壓縮格式存儲(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ù)。
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ì)億速云的支持。
免責(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)容。