主引導程式和輔助引導程式有什麼區別?

主引導程式和輔助引導程式有什麼區別?

主引導程式和輔助引導程式有什麼區別? Primary 和 secondary 是指引導程式的兩個部分還是引導程式的兩個階段?我很困惑。

答案1

您感到困惑,因為這是描述過程的過於簡單的方式。如果您一直在閱讀中提到的同一篇 IBM 文章主引導程式和輔助引導程式,人們似乎從這裡得出了這個主要/次要概念,請注意,它採用了一種相當狹隘的、僅限 Linux 的世界觀(正如它在第一句話中明確指出的那樣),它是用2005年,它實際上是在區分相同開機載入程式 (GRUB) 安裝在硬碟上的兩個不同位置(MBR 病毒區域和磁碟分割區),而不是安裝在兩個不同的開機載入程式(一個「主」和一個「輔助」)之間。

實際上,為 PC 相容機和工作站類電腦引導大多數作業系統(根據問題上的標籤)是一個系列加載程序,每個加載程序都加載下一個。主要/次要區別錯誤地暗示只有兩個程序,或者(如塞恩的回答)錯誤地暗示序列中的幾個程序中只有兩個具有“主要”和“次要”的特殊狀態,或者錯誤地暗示如今的 PC 甚至必須使用 MBR 和 VBR 中的開機載入程式。

此類鏈的三個非常簡短的範例,其中不只兩個程序:

  • 老式PC98/PC-AT機器韌體中的載入程式載入主引導記錄中的載入程序,主引導記錄載入卷引導記錄中的載入程序,卷引導記錄載入PC-DOS/DR的基本輸入/輸出系統部分從檔案載入DOS IBMBIO.COM,從檔案載入 PC-DOS/DR-DOS 的基本光碟作業系統部分IBMDOS.COM
  • 老式PC98/PC-AT機器韌體中的載入程式載入主引導記錄中的載入程序,該載入程式載入磁碟區引導記錄中的載入程序,該OS2BOOT載入OS2LDR程式載入該載入OS2KRNL程式。
  • 新型EFI機器韌體中的EFI Boot Manager程式載入程式bootmgfw.efi載入winload.exe程式載入程式ntoskrnl.exe

沒有充分的理由將其中任何一個指定為比其他更“主要”。事實上,沒有指定載入程式的好例子內建於機器韌體中作為“主要”。例如,如果您詳細查看 TianoCore,您會發現甚至發生了一系列引導階段在韌體內甚至還有一個概念叫做韌體檔案系統。 (不過,這些都遠遠超出了本答案的範圍,IBM MicroChannel Architecture 機器的引導過程也是如此,它甚至在 MBR 引導程式之前就從 DASD 載入了內容。)

GRUB 1 相當著名的“階段 1.5”這一事實本身就應該告訴人們,甚至忽略這樣一個事實:顯然還有另一個加載程序首先加載 GRUB“階段 1”,即在 PC 中引導序列的想法兼容世界只有兩個階段,引導程式整齊地分為“主要”和“次要”,與現實不符。

進一步閱讀

答案2

主開機載入程式是 MBR 上的開機載入程式。輔助引導程式位於其中一個分割區上,由主引導程式啟動。

例如,在雙重開機 Linux 和 Windows 系統中,grub 將是主開機載入程序,如果選擇了 Windows,則會載入輔助 Windows 開機載入程序。

相關內容