啟動管理器在 BIOS 和 UEFI 機器上的工作方式有何不同?

啟動管理器在 BIOS 和 UEFI 機器上的工作方式有何不同?

在網路上閱讀了大量內容後,我開始對啟動管理員的工作原理越來越困惑。我已經意識到啟動管理器(例如 rEFInd)不是更新或與韌體相關的任何內容(如果錯誤請糾正我)。我現在有以下幾點認識:

對於 BIOS 機器,人們期望 BIOS 韌體能夠識別電腦中存在的所有磁碟(它不會識別任何磁碟上的分割區)。假設機器有一個內部硬碟和一個連接到它的外部 CD。然後 BIOS 讓您選擇其中之一併讀取硬碟或 CD 的 MBR 上的開機載入程式。現在,假設您的硬碟上安裝了 Windows 和 Linux。這裡是我不太確定的部分,如果您安裝了 GRUB,既是引導管理器又是引導程序,是否意味著在您選擇從硬碟引導後,GRUB 引導程式會被讀取並執行,從而調用GRUB 啟動管理員?那麼 GRUB 引導管理器會識別您電腦上的不同系統,並呼叫 Windows 引導程式或 Linux 引導程式,這仍然是 GRUB 的一部分?

對於 UEFI 機器,韌體似乎已經是一個啟動管理器,因為它可以識別分割表和連接到電腦的所有磁碟。因此,您所需要做的就是將引導程式寫入 EFI 系統分割區,韌體將讓您選擇在引導時要使用哪個引導程式。是對的嗎?然而,我注意到仍然有啟動管理器,例如 rEFInd 可用於 UEFI 機器,如果韌體已經像啟動管理器一樣運行,那麼它們有什麼用呢?此外,rEFInd 是否被視為韌體內容或只是安裝在特定磁碟的 EFI 系統分割區上的某些應用程式?

答案1

在主作業系統啟動之前運行的任何程式碼以及涉及啟動其他程式的程式碼都是引導程式。大多數計算機,甚至大多數嵌入式裝置都有一系列引導程式:ROM 或快閃記憶體中的程式碼,從快閃記憶體或磁碟機載入另一段程式碼,再載入另一段程式碼,依此類推。 BIOS 是一個引導程式(它可能有),reFInd 是一個開機載入程序,Grub 是一個開機載入程序,等等。

有些引導程式除了載入另一段程式碼並分支到它之外什麼也不做,但大多數引導程式執行其他任務,例如讀取配置資料、檢測連接的外圍設備、測試硬體、初始化設備、枚舉儲存和網路設備以決定下一步載入什麼、顯示訊息在螢幕上,監聽使用者輸入以允許使用者影響啟動過程等。

引導管理器是一種特殊類型的引導程序,它包括使用者在多個作業系統之間進行選擇的方法。 Grub 引導程式並不真正「呼叫」Grub 引導管理器,引導管理器功能是 Grub 的一方面。

一些 PC 傳統 BIOS 具有粗糙的啟動管理器功能,允許用戶在幾個設備之間進行選擇;它是有限的,因為傳統 BIOS 只能載入磁碟的前 512 位元組並在那裡執行程式碼。 UEFI 具有更強大的啟動管理器,可讓使用者在 FAT 分割區上的檔案之間進行選擇。

引導程式是否算作韌體取決於您定義韌體的方式。根據「隨電腦硬體提供,而不是安裝在儲存裝置上」的定義,BIOS 和 UEFI 是韌體,但 reFInd 和 Grub 不是。根據「獨立於作業系統」的定義,reFInd 和 Grub 都是韌體。

相關內容