也就是說,所有引導程式是否都相同,以便任何 BIOS 始終可以讀取它們並將控制權傳遞給驅動器,以便 BIOS 不需要理解 FAT32、NTFS、ext4、btrfs 等?
答案1
是的。
在 GPT 之前,答案是 BIOS 會檢查磁碟是否可啟動(透過在磁碟的第 511 和 512 位元組上尋找特定的「魔術簽章」),並將這些位元組設定為預期值,BIOS可以從磁碟上的字節號零開始運行程式碼。
BIOS 通常不理解 FAT32、NTFS 或 ext4 等檔案系統格式。 BIOS 甚至不理解分割區。能夠辨識分割區是一個被塞進儲存在磁碟開頭的程式碼位元組中的概念。
然後,該引導程式碼通常會找到其他程式碼,這可能是另一個引導程序,或「第二階段引導程式」(OpenBSD 就是這樣做的),它通常對檔案系統有更多的了解(足以能夠開始定位內核,並開始)。
對於 GPT(“GUID 分區表”),該過程要複雜一些。 (U)EFI 關注其他一些細節。但是,也有相似之處:(U)EFI 查找的具體細節不依賴檔案系統,並且 GPT 在該位置運行程式碼(例如「引導程式」)。