您好,登錄后才能下訂單哦!
Linux系統啟動詳解是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
BIOS(Basic Input Output System,基本輸入輸出系統)是指一組固化到計算機內主板上一個ROM芯片上的程序,它保存著計算機最重要的基本輸入輸出的程序、開機后自檢程序和系統自啟動程序,它可從CMOS中讀寫系統設置的具體信息。 其主要功能是為計算機提供最底層的、最直接的硬件設置和控制。
當計算機接通電源(啟動)時,便加載第一個軟件——BIOS。對于所有的操作系統一樣,BIOS是被設計來初始化硬件而產生。POST(Power On self Test,上電自檢)作為BIOS的主要組成部分,用于檢驗電腦硬件的基本功能是否正常。如果POST失敗,那么該計算機將不能使用,引導過程也會就此中斷。
當BIOS上電自檢成功,確認硬件的基本功能正常后,會產生一個BIOS中斷 INT 13H,從而轉向第一塊硬盤的第一個扇區,即MBR(Master Boot Record,主引導記錄)。
stage 1:當POST結束后,BIOS會將其跳轉的主引導記錄MBR加載至內存中,并開始執行該代碼。控制權由BIOS轉移至主引導記錄代碼。
主引導記錄代碼必須非常小,因為它必須連同分區表放到硬盤的第一個 512字節的扇區中。在傳統的常規MBR中,主引導程序實際所占用的空間大小為446字節,通常被叫做引導鏡像(boot.img),其中不包含設備的分區信息(4×16字節),分區是一般單獨添加到引導記錄中。
由于引導記錄必須非常的小,它不可能非常智能,且不能理解文件系統結構。因此stage 1唯一功能就是定位并加載stage 2的代碼(分頁項中的起始及結束磁盤信息,尋找相應的存儲區域)。為了完成此任務,stage 1的代碼必須位于引導記錄與設備第一個分區之間的位置。在加載stage 2代碼進入內存后,控制權將由stage 1轉移到stage 2。
地址 | 名稱 | 功能 |
---|---|---|
0000-0088 | 主引導程序 | 主引導程序 |
0089-01BD | 出錯信息數據區 | 數據區 |
01BE-01CD | 分區項1(16字節) | 分區表 |
01CE-01DD | 分區項2(16字節) | |
01BE-01CD | 分區項3(16字節) | |
01DE-01ED | 分區項4(16字節) | |
01FE | 55 | 結束標志 |
01FF | AA |
存貯字節位 | 內容含義 |
---|---|
第1字節 | 引導標志: |
80H—活動分區 | |
00H—非活動分區 | |
第2、3、4字節 | 本分區的起始磁頭號、扇區號、柱面號: |
磁頭號—第2字節 | |
扇區號—第3字節的低6位 | |
柱面號—第3字節高2位+第4字節8位 | |
第5字節 | 分區類型符: |
00H—表示該分區未用(即沒有指定) | |
06H—FAT16基本分區 | |
0BH—FAT32基本分區 | |
05H—擴展分區 | |
07H—NTFS分區 | |
0FH—(LBA模式)擴展分區 | |
83H—Linux分區等 | |
第6、7、8字節 | 本分區的結束磁頭號、扇區號、柱面號: |
磁頭號—第6字節 | |
扇區號—第7字節的低6位 | |
柱面號—第7字節的高2位+第8字節 | |
第9、10、11、12字節 | 本分區之前已用扇區數 |
第13、14、15、16字節 | 本分區的總扇區數 |
stage 2:由于第一個扇區遺留下 62 個 512 字節的扇區(共 31744 字節),該區域用于存儲stage 2的代碼鏡像 core.img 文件。該文件大小為 25389 字節,故此區域有足夠大小的空間用來存儲 core.img 文件。
因為有更大的存儲空間用于stage 2,且該空間足夠容納一些通用的文件系統驅動程序,如標準的 EXT 和其它的 Linux 文件系統,如 FAT 和 NTFS 等。GRUB2 的 core.img 遠比更老的 GRUB1 在stage 2更復雜且更強大。這意味著 GRUB2 的stage 3能夠放在標準的 EXT 文件系統內,但是不能放在邏輯卷內。故stage 3的文件可以存放于 /boot 文件系統中,一般在 /boot/grub2 目錄下。
注意: /boot 目錄必須放在一個 GRUB 所支持的文件系統(并不是所有的文件系統均可)。stage 2的功能是開始執行存放stage 3文件的 /boot 文件系統的驅動程序,并加載相關的驅動程序。
stage 3:GRUB stage 3所有的文件都已存放于 /boot/grub2 目錄及其子目錄下。該階段沒有一個類似于stage 1與stage 2的鏡像文件。相應地,該階段主要需要從 /boot/grub2/i386-pc 目錄下加載一些內核運行時模塊。
GRUB stage 3的主要功能是定位和加載 Linux 內核到內存中,并轉移控制權到內核。內核的相關文件位于 /boot 目錄下,這些內核文件可以通過其文件名進行識別,其文件名均帶有前綴 vmlinuz(內核文件)。你可以列出 /boot 目錄中的內容來查看操作系統中當前已經安裝的內核。
GRUB2 跟 GRUB1 類似,支持從 Linux 內核選擇之一引導啟動。Red Hat 包管理器(DNF)支持保留多個內核版本,以防最新版本內核發生問題而無法啟動時,可以恢復老版本的內核。默認情況下,GRUB 提供了一個已安裝內核的預引導菜單,其中包括問題診斷菜單(recuse)以及恢復菜單(如果配置已經設置恢復鏡像)。
內核文件都是以一種自解壓的壓縮格式存儲以節省空間,它與一個初始化的內存映像和存儲設備映射表都存儲于 /boot 目錄之下。
在選定的內核加載到內存中并開始執行后,在其進行任何工作之前,內核文件首先必須從壓縮格式解壓自身。一旦內核自解壓完成,則加載 systemd 進程(其是老式 System V 系統的 init 程序的替代品),并轉移控制權到 systemd。
這就是引導過程的結束。此刻,Linux 內核和 systemd 處于運行狀態,但是由于沒有其他任何程序在執行,故其不能執行任何有關用戶的功能性任務。
systemd 是所有進程的父進程。它負責將 Linux 主機帶到一個用戶可操作狀態(可以執行功能任務)。systemd 的一些功能遠較舊式 init 程序更豐富,可以管理運行中的 Linux 主機的許多方面,包括掛載文件系統,以及開啟和管理 Linux 主機的系統服務等。
systemd 掛載在 /etc/fstab 中配置的文件系統,包括內存交換文件或分區。據此,systemd 必須能夠訪問位于 /etc 目錄下的配置文件,包括它自己的。systemd 借助其配置文件 /etc/systemd/system/default.target 決定 Linux 系統應該啟動達到哪個狀態(或目標態target)
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。