歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux啟動引導過程 grub和mbr

Linux啟動引導過程 grub和mbr

日期:2017/2/28 14:45:16   编辑:Linux教程

GNU GRUB(簡稱“GRUB”)是一個來自GNU項目的啟動引導程序。GRUB是多啟動規范的實現,它允許用戶可以在計算機內同時擁有多個操作系統,並在計算機啟動時選擇希望運行的操作系統。GRUB可用於選擇操作系統分區上的不同內核,也可用於向這些內核傳遞啟動參數。

mbr是硬盤的主引導記錄,屬於引導區

內核簡介

內核(kernel),是一個操作系統的核心。它負責管理系統的進程、內存、設備驅動程序、文件和網絡系統,決定著系統的性能和穩定性。

“內核”指的是一個提供硬件抽象層、磁盤及文件系統控制、多任務等功能的系統軟件。一個內核不是一套完整的操作系統。一套基於Linux內核的完整操作系統叫作Linux操作系統,或是GNU/Linux。

內核是操作系統最基本的部分。它是為眾多應用程序提供對計算機硬件的安全訪問的一部分軟件,這種訪問是有限的,並且內核決定一個程序在什麼時候對某部分硬件操作多長時間。直接對硬件操作是非常復雜的,所以內核通常提供一種硬件抽象的方法來完成這些操作。硬件抽象隱藏了復雜性,為應用軟件和硬件提供了一套簡潔,統一的接口,使程序設計更為簡單。

嚴格地說,內核並不是計算機系統中必要的組成部分。程序可以直接地被調入計算機中執行,這樣的設計說明了設計者不希望提供任何硬件抽象和操作系統的支持,它常見於早期計算機系統的設計中。最終,一些輔助性程序,例如程序加載器和調試器,被設計到機器核心當中,或者固化在只讀存儲器裡。這些變化發生時,操作系統內核的概念就漸漸明晰起來了。

BIOS是英文"Basic Input Output System"的縮略語,直譯過來後中文名稱就是"基本輸入輸出系統"。其實,它是一組固化到計算機內主板上一個ROM芯片上的程序,它保存著計算機最重要的基本輸入輸出的程序、系統設置信息、開機後自檢程序和系統自啟動程序。 其主要功能是為計算機提供最底層的、最直接的硬件設置和控制。

DOS,是磁盤操作系統(Disk Operating System)英文的縮寫,是個人計算機上的一類操作系統。

BOOT,系統引導文件,在根目錄下,bios設置中主要用於設置系統啟動的地方,比如可以設置從硬盤,光驅或U盤啟動。

Mbr和grub引導系統

在裝系統的時候,會有提示為系統裝載什麼樣的引導程序,其中就有一個grub引導程序。而系統裝完後,啟動的時候,mbr會直接載入grub引導程序。

  由硬盤啟動時,BIOS通常是轉向第一塊硬盤的第一個扇區,即主引導記錄(MBR)。

  裝載GRUB和操作系統的過程,包括以下幾個操作步驟:

  裝載記錄

  基本引導裝載程序所做的唯一的事情就是裝載第二引導裝載程序。即mbr載入grub的過程。

  裝載Grub

這第二引導裝載程序實際上是引出更高級的功能,以允許用戶裝載一個特定的操作系統。所以有多種引導裝載程序,grub只是其中一種。這裡強調指出,grub只是mbr的升級版,補充完成mbr所做不了的事情,其實他們的本質都一樣,都是引導程序。也可以這麼理解,mbr是唯一的,基於mbr之上的引導程序不唯一。而為什麼在字節大小一樣的條件下,mbr不能做的事情,grub卻能夠做到,這一點我還在研究中。Grub高級在什麼地方?

知識點補充:從定義上看,mbr是磁盤上的一小段扇區,而grub是一段程序,雖然他們都是起到了引導系統的作用,但歸根結底本質是不一樣的。我們可以這樣理解,mbr是在起到引導作用的同時,用來存放代碼的空間,而grub則是單純的引導程序,程序一執行,bios就將系統對內核的操作權限交給了��作系統,接下來的事情就跟grub這些引導程序沒有了半毛錢的關系。(我說的若是有錯,希望高手看到,幫忙指出啊。)

裝載系統

簡單的說,就是把機器的控制權移交給操作系統。

  不同的是,微軟操作系統都是使用一種稱為鏈式裝載的引導方法來啟動的,主引導記錄僅僅是簡單地指向操作系統所在分區的第一個扇區。

  設備名稱

IDE硬盤用hd開始,SCSI硬盤用sd開頭。軟盤用fd開頭。命名和linux不大一樣。是從0算起。

  (hd0,0)。表示C盤。

  (hd0,4)。表示D盤。當然這裡指的是(第一個邏輯分區,如果D盤也是主分區,應該寫成hd0,1)

  系統的第一個硬盤驅動器表示成(hd0),其上的第一個分區表示為(hd0,0),也就是說對於硬盤,采用(hdx,y)的形式來表示,x、y都是從0開始計數的,x表示硬盤號,y表示分區號。

由於主分區只能有四個,所以第一硬盤的四個主分區分別用(hd0,0)~(hd0,3)來表示;邏輯分區則從(hd0,4)開始算,即第一邏輯分區用(hd0,4),第二邏輯分區用(hd0,5)來表示,依次類推。 一般機子的硬盤都是一個主分區,其余是邏輯分區。因此C盤用(hd0,0),D盤用(hd0,4)來表示。

光盤用(cd)表示,第一軟驅用(fd0)表示。

  文件的表示:( , ) /path/to/file

下面這段話是我從別處粘貼過來的,有興趣可以研究一下。

因為BIOS很小,功能有限,為了完成加載操作系統的功能,就產生了mbr; bios檢測到一個硬盤後,將硬盤的0柱面、0磁頭、1扇區的內容經過簡單判斷後, 至內存中的指定位置,然後跳轉至這個位置,開始從這個位置運行; MBR,全稱為Master Boot Record,即硬盤的主引導記錄。 為了便於理解,一般將MBR分為廣義和狹義兩種:廣義的MBR包含整個扇區(引導程序、分區表及分隔標識),也就是上面所說的主引導記錄;而狹義的MBR僅指引導程序而言。 硬盤的0柱面、0磁頭、1扇區稱為主引導扇區(也叫主引導記錄MBR)。它由三個部分組成,主引導程序、硬盤分區表DPT(Disk Partition table)和硬盤有效標志(55AA)。在總共512字節的主引導扇區裡主引導程序(boot loader)占446個字節,第二部分是Partition table區(分區表),即DPT,占64個字節,硬盤中分區有 多少以及每一分區的大小都記在其中。第三部分是magic number,占2個字節,固定為55AA。 !!!!!!!!!!!!!!!!!!!!! 一般,會將mbr功能的引導代碼與mbr扇區混淆; 其實,grub是直接寫進mbr硬盤的主引導記錄中的,計算機BIOS 在啟動時,按照預定的方式,將mbr內的代碼加載至內存指定位置, 然後跳轉至那裡,mbr的代碼就開始運行了! 如果將grub寫入mbr,bios就引導grub; 將winxp的引導代碼寫入mbr,bios就引導ntldr; 將dos的引導代碼寫入mbr,bios就引導dos; 總之,mbr是用來存放,由bios加載、運行的一小段代碼; 代碼的功能,由他們自己實現(如,在引導dos之前,先運行一個病毒, 這就是引導型病毒); dos下執行grub.exe,其實,就是由dos執行grub.exe來完成bios加載引導代碼的功能, 實現引導的; 簡單地說,grub.exe 是dos下的可執行程序,由dos運行; grub是引導代碼,由bios加載至內存(指定位置)開始執行; 他們最終實現的功能是一樣的(都是將引導代碼加載至內存指定位置,並運行)。 另外,mbr是獨立於操作系統的,地位與分區表同級,所以,格式化任何分區內都影響不到他, 包括ghost備份,還原。

Copyright © Linux教程網 All Rights Reserved