首頁 > linux教程 > Linux系統啟動管理 閱讀:0更新時間:2020-03-28 01:02:31

主引導目錄(MBR)結構及作用詳解

MBR 也就是主引導記錄,位于硬盤的 0 磁道、0 柱面、1 扇區中,主要記錄了啟動引導程序和磁盤的分區表。我們通過圖 1 來看看 MBR 的結構。

圖  1 MBR的結構
MBR 共占用了一個扇區,也就是 512 Byte。其中 446 Byte 安裝了啟動引導程序,其后 64 Byte 描述分區表,最后的 2 Byte 是結束標記。我們已經知道,每塊硬盤只能劃分 4 個主分區,原因就是在 MBR 中描述分區表的空間只有 64 Byte。其中每個分區必須占用 16 Byte,那么 64 Byte 就只能劃分 4 個主分區。每個分區的 16 字節的規劃如表 2 所示。

表 2 分區表內容
存儲字節 數據內容及含義
第 1 字節 引導標志
第 2 字節 本分區的起始磁道號
第 3 字節 本分區的起始扇區號
第 4 字節 本分區的起始柱面號
第 5 字節 分區類型,可以識別主分區和擴展分區
第 6 字節 本分區的結束磁道號
第 7 字節 本分區的結束扇區號
第 8 字節 本分區的結束柱面號
第 9~12 字節 本分區之前已經占用的扇區數
第 13~16 字節 本分區的總扇區數

大家注意到了吧,MBR 中最主要的功能就是存儲啟動引導程序。

啟動引導程序的作用

BIOS 的作用就是自檢,然后從 MBR 中讀取出啟動引導程序。那么,啟動引導程序最主要的作用就是加載操作系統的內核。當然,每種操作系統的啟動引導程序都是不同的。

每種操作系統的文件格式不同,因此,每種操作系統的啟動引導程序也不一樣。不同的操作系統只有使用自己的啟動引導程序才能加載自己的內核。如果我的服務器上只安裝了一個操作系統,那么這個操作系統的啟動引導程序就會安裝在 MBR 中。BIOS 調用 MBR 時讀取出啟動引導程序,就可以加載內核了。

但是在有些時候,我的服務器中安裝了多個操作系統,而 MBR 只有一 個,那么在 MBR 中到底安裝哪個操作系統的啟動引導程序呢?

很明顯,一個 MBR 是不夠用的。每塊硬盤只能有一個 MBR 是不能更改的,所以不可能増加 MBR 的數量。系統只能在每個文件系統(可以看成分區)中單獨劃分出一個扇區,稱作引導扇區(Boot Sector)。每個分區的引導扇區中也能安裝啟動引導程序,也就是說,在 MBR 和每個單獨分區的引導扇區中都可以安裝啟動引導程序。這樣多個操作系統才能安裝在同一臺服務器中(每個操作系統要安裝在不同的分區中),而且每個操作系統都是可以啟動的。

還有一個問題,BIOS 只能找到 MBR 中的啟動引導程序,而找不到在分區的引導扇區中的啟動引導程序。那么,要想完成多系統啟動,我們的方法是増加啟動引導程序的功能,讓安裝到 MBR 中的啟動引導程序(GRUB)可以調用在分區的引導扇區中的其他啟動引導程序。

因此,啟動引導程序擁有以下功能:
  1. 加載操作系統的內核。這是啟動引導程序最主要的功能。
  2. 擁有一個可以讓用戶選擇的菜單,來選擇到底啟動哪個系統。大家如果在服務器上安裝過雙 Windows 系統,就應該見過類似的選擇菜單,不過這個選擇菜單是由 Windows 的啟動引導程序提供的,而不是 GRUB。
  3. 可以調用其他的啟動引導程序,這是多系統啟動的關鍵。不過需要注意的是,Windows 的啟動引導程序不能調用 linux 的啟動引導程序,所以我們一般建議先安裝 Windows,后安裝 Linux,是為了將 Linux 的啟動引導程序安裝到 MBR 中,覆蓋 Windows 的啟動引導程序。

當然,這個安裝順序不是絕對的,就算最后安裝了 Windows,我們也可以通過手工再安裝 GRUB 的方法,來保證 MBR 中安裝的還是 Linux 的啟動引導程序。

下圖為我們展示了啟動引導程序的作用。

圖 2 啟動引導程序的作用

beylze編程學院,一個分享編程知識和seo優化知識的網站。跟著beylze一起學習,每天都有進步。

通俗易懂,深入淺出,一篇文章只講一個知識點。

文章不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以閱讀,隨時隨地漲姿勢。

文章不涉及代碼,不燒腦細胞,人人都可以學習。

當你決定關注beylze(公眾號:beylze),你已然超越了90%的其他從業者!

相關文章

優秀教程

国产亚洲欧美日韩