新聞中心
Linux系統(tǒng)是一種開放源代碼的操作系統(tǒng),具有安全、穩(wěn)定、高效等優(yōu)點(diǎn),適用于服務(wù)器、嵌入式系統(tǒng)、移動設(shè)備等多種場景。在Linux系統(tǒng)啟動的過程中,引導(dǎo)過程顯得尤為關(guān)鍵。從BIOS到GRUB,本文將解析Linux系統(tǒng)的引導(dǎo)過程,并闡述其中的具體細(xì)節(jié)。

創(chuàng)新互聯(lián)建站于2013年創(chuàng)立,先為鼓樓等服務(wù)建站,鼓樓等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為鼓樓企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
一、BIOS
BIOS是計算機(jī)系統(tǒng)的固化程序,它主要負(fù)責(zé)計算機(jī)系統(tǒng)的啟動和自檢。當(dāng)計算機(jī)電源打開時,BIOS首先進(jìn)行自檢,檢測計算機(jī)的硬件是否正常,同時還會讀取CMOS中的數(shù)據(jù),包括系統(tǒng)日期/時間、I/O設(shè)置、初次啟動標(biāo)志等信息。若自檢無誤,BIOS會將控制權(quán)轉(zhuǎn)交給啟動介質(zhì)。BIOS支持的啟動介質(zhì)有硬盤、軟盤、光盤、USB等,其中硬盤是最常用的啟動介質(zhì)。
二、MBR
當(dāng)BIOS將控制權(quán)轉(zhuǎn)交給硬盤時,會讀取硬盤的之一個扇區(qū)(0號柱面0號磁頭第1個扇區(qū)),當(dāng)作啟動扇區(qū)。這個扇區(qū)通常被稱為主引導(dǎo)記錄(Master Boot Record,MBR)。MBR的結(jié)構(gòu)包含引導(dǎo)程序和分區(qū)表。引導(dǎo)程序是一個小程序,通常占用446個字節(jié)。它的作用是尋找操作系統(tǒng)的引導(dǎo)程序,并將控制權(quán)交給引導(dǎo)程序。分區(qū)表則記錄了硬盤的分區(qū)信息,其中每個分區(qū)的信息占用16字節(jié)。
三、引導(dǎo)程序
引導(dǎo)程序是操作系統(tǒng)的引導(dǎo)程序,它通常被放置在硬盤的之一個可引導(dǎo)分區(qū)(一般為C://)的起始扇區(qū)。在Linux系統(tǒng)中,引導(dǎo)程序通常為GRUB或LILO。接下來我們介紹GRUB的引導(dǎo)過程。
四、GRUB
GRUB(GRand Unified Bootloader)是一款功能強(qiáng)大的引導(dǎo)程序,它支持多種操作系統(tǒng)的啟動,甚至可以在同一系統(tǒng)中引導(dǎo)多個不同內(nèi)核的操作系統(tǒng)。GRUB的引導(dǎo)過程主要經(jīng)過三個階段:之一階段、第二階段和操作系統(tǒng)加載。
1.之一階段
當(dāng)BIOS將控制權(quán)交給MBR時,MBR中的引導(dǎo)程序會讀取并加載之一階段GRUB的core.img文件。core.img文件中包含的代碼會根據(jù)系統(tǒng)內(nèi)存情況加載第二階段的代碼。
2.第二階段
第二階段的代碼位于/boot/grub目錄下的stage2文件。這里面包含了一個文件系統(tǒng)驅(qū)動程序,以及一些基本的GRUB命令。此外,還有一張映像表,用于記錄操作系統(tǒng)所在分區(qū)的位置及大小。在第二階段,用戶可以使用GRUB菜單選擇要啟動的操作系統(tǒng)。
3.操作系統(tǒng)加載
用戶選擇要啟動的操作系統(tǒng)后,GRUB會將內(nèi)核鏡像加載到內(nèi)存中,并將控制權(quán)交給內(nèi)核。內(nèi)核開始運(yùn)行,并根據(jù)/boot/grub/grub.cfg文件或/boot/grub/menu.lst文件來加載系統(tǒng)所需的模塊和驅(qū)動程序。這些模塊通常包括文件系統(tǒng)、網(wǎng)絡(luò)、聲卡、顯卡等。一旦內(nèi)核和驅(qū)動程序加載完成,系統(tǒng)就開始運(yùn)行了。
:
本文從BIOS到GRUB,介紹了Linux系統(tǒng)的引導(dǎo)過程。每個環(huán)節(jié)都非常重要,其中引導(dǎo)程序更是關(guān)鍵所在,它決定了系統(tǒng)的啟動能否成功。對于想要深入了解Linux系統(tǒng)的人來說,掌握引導(dǎo)過程的細(xì)節(jié)是必不可少的。
相關(guān)問題拓展閱讀:
- Linux與Windows 10用grub引導(dǎo)教程
Linux與Windows 10用grub引導(dǎo)教程
去年暑假的時候,寫了一篇如何裝 Linux 和 Windows 10 雙系統(tǒng)的文章發(fā)在了上,我寫這篇文章的原因是當(dāng)初裝雙系統(tǒng)確實是折騰了許久,網(wǎng)上也找不到一篇詳盡的教程。由于去年對于寫教程還不是熟練,而這一年多的使用過程也遇到了一些問題,所以就準(zhǔn)備「Refactoring」這篇文章。
在教程正式開始之前,先花一點(diǎn)時間說明 EFI 分區(qū)的組成和作用。
首先,在你裝了 Windows 之后,Windows 在裝機(jī)過程中會將硬盤劃分出一個約 100m 大小的分區(qū),稱為 EFI 分區(qū)這個分區(qū)就是起引導(dǎo)作用的。在資源管理器中是看不到的這個分伍純盯區(qū)的,可以在磁盤管理中看到,管理則需要借助 DG 工具 。便于說明,在裝好了 Linux 之后,我將 EFI 掛載至 boot 分區(qū)截圖:
可以看到,該分區(qū)包含 3 個文件夾(如果你沒有裝 Linux 的話,就只有兩個),分別是 Boot、Microsoft 和 Manjaro,其中 Boot 文件夾就是 UEFI 引導(dǎo)所必需的文件。
我們繼續(xù)打開 Microsoft/Boot 文件夾:
這些文件就是啟動 Windows 10 所必需的,包含了語言包、字體等,BCD 包含了 Windows 引導(dǎo)開始以后的信息。其中,
bootm.efi 是 Windows 默認(rèn)引導(dǎo)文件
。
以上是采用 UEFI 啟動 Windows 10 的文件結(jié)構(gòu),也就是說,當(dāng)你按下開機(jī)按鈕的時候,首先 UEFI 找到 EFI 分區(qū)的 Boot 文件夾,然后加載 bootx64.efi 文件,讀取文件信息,找到 EFI/Microsoft/Boot/bootm.efi ,按照 bootm.efi 的要求,加載所需的啟動信息,啟動 Windows 10。
在正式裝系統(tǒng)之前,我們還需要做一些準(zhǔn)備工作:
這個功能的作用是在于關(guān)機(jī)的時候不完全斷電,類似將系統(tǒng)處于「休眠」?fàn)顟B(tài),這樣可以讓開機(jī)更加迅速。但這也就導(dǎo)致了只能使用 Windows 系統(tǒng)。
在默認(rèn)情況下,UEFI 固件只會加載那些被簽名的引導(dǎo)程序。在缺少 Secure Boot 功能的傳統(tǒng) PC 機(jī)上,惡意的后門程序可以加載自身,進(jìn)而搖身一變偽裝成一個引導(dǎo)程序。這樣的話,BIOS 就會在啟動的時候加載后門程序,這樣它就可以躲過操作系統(tǒng),把自己隱藏得很深。
但是不得不說,這對我們安裝 Linux 造成了很大的困擾,也是直接導(dǎo)致我們重啟到 Windows 10 后進(jìn)不去 Linux 的原因。
首先我們要關(guān)閉這個功能:進(jìn)入 BIOS 找到 Secure Boot,選擇腔和 disabled,這樣就關(guān)閉了。當(dāng)然,有些人進(jìn)入 BIOS 會發(fā)現(xiàn) Secure Boot 這個選項是灰色的(比如我的就是),這時你需要先給你的 BIOS 設(shè)一個密碼,然后就能關(guān) Secure Boot 了。
所有的準(zhǔn)備都已經(jīng)完成,這時就可以準(zhǔn)備刻錄 U 盤了,不推薦 UltraISO,經(jīng)親測,軟碟通僅刻錄 Ubuntu 能成功,其它絕大多數(shù)發(fā)行版都會失敗。推薦「 Rufus 」和「 USBWriter 」,這兩個軟件都可以。
刻錄完成后,重啟按 f12 ,選擇從 USB 設(shè)備啟動,對于絕大多數(shù)發(fā)行版來說一路回車就行了,只需要注意一點(diǎn):
在選擇掛載 boot 位置的時候,一定要掛載在 efi 分區(qū)
,別的都不行。
重啟之后,不出意外的話,你會直接進(jìn)入 Windows 10,不要擔(dān)心,這時 Linux 已經(jīng)安裝成功了,我們只需要將引導(dǎo)文件替換一下。
先用 DG 打開 EFI 分區(qū),你會看到多了一個文件夾,名稱取決于你安裝的是哪一個發(fā)行版。我安裝的是 Manjaro Linux,名稱就是 Manjaro,打開之后會發(fā)現(xiàn)里面有一個名為 grubx64.efi 的文件,這就是啟動 Linux 的引導(dǎo)文件褲擾。和 Windows 10 的 bootm.efi 類似,我們想要用 grubx64.efi 引導(dǎo)代替掉 bootm.efi,這樣就可以用 GRUB 引導(dǎo)了。步驟:
至此,如果你安裝的是除 Arch 之外絕大多數(shù)發(fā)行版,那么接下來就和你沒有啥關(guān)系了,你已經(jīng)成功了,好好享受吧!
開機(jī)之后會發(fā)現(xiàn)進(jìn)入 GRUB 的引導(dǎo)了,通常會包含至少三個選項(以 Manjaro 舉例):Manjaro、Manjaro 高級選項和 Windows Manager。這就代表你已經(jīng)完美的解決了 Windows 和 Linux 雙系統(tǒng)引導(dǎo)的問題。
這一點(diǎn)是我安裝 Arch Llinux 的時候發(fā)現(xiàn)的,Arch Linux 安裝過程是手動安裝的,在編寫 GRUB 的時候會掃描不到 Windows Manager 所在的分區(qū)(當(dāng)然可能不是所有人都會遇到),所以在 GRUB 界面可能會看不到 Windows Manager 選項,導(dǎo)致進(jìn)不去 Windows 10,這里就需要手動編輯 GRUB 信息,我們打開 /boot/grub/grub.cfg 文件,發(fā)現(xiàn)里面確實沒有 Windows 10 的啟動信息,在后面加上:
注意
:
這里的 $hints_string ,代表的是終端執(zhí)行命令:
后的輸出;
而 $fs_uuid 代表的是:
的輸出。
然后保存。在終端執(zhí)行命令: sudo grub-mkconfig -o /boot/grub/grub.cfg ,就 OK 了。
到此,Arch Linux 和 Windows 10 雙系統(tǒng)也配置完畢了。
在使用這一年多的時間,遇到了以下的幾個問題:
最后:祝使用愉快。
linux系統(tǒng)引導(dǎo)過程的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux系統(tǒng)引導(dǎo)過程,從BIOS到GRUB:解析Linux系統(tǒng)的引導(dǎo)過程,Linux與Windows 10用grub引導(dǎo)教程的信息別忘了在本站進(jìn)行查找喔。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)成都老牌IDC服務(wù)商,專注四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,可選線路電信、移動、聯(lián)通等。
網(wǎng)站名稱:從BIOS到GRUB:解析Linux系統(tǒng)的引導(dǎo)過程(linux系統(tǒng)引導(dǎo)過程)
網(wǎng)站鏈接:http://fisionsoft.com.cn/article/coijohc.html


咨詢
建站咨詢
