翻譯wiki(一):Bios boot partition



 

文章翻譯自wiki,水平有限,若有錯萬請見諒。原文:https://en.wikipedia.org/wiki/BIOS_boot_partition


 

BIOS boot partition是一個分區,gnu grub[譯注1]用它來引導基於legacy bios但啟動設備上卻包含GPT格式分區表時的操作系統。這種結構有時候被稱為BIOS/GPT啟動[譯注2]

下圖非原文內容,是本人提供,用於直觀地感受bios boot分區。

Bios boot分區是必要的,因為GPT使用緊跟在MBR后面的扇區來保存實際的分區表,但在傳統的MBR分區架構中,這些扇區並沒有特殊的作用,這樣的結果是沒有足夠的可用空閑空間來存儲stage2這段boot loader。MBR中也存儲了boot loader,但MBR無法存儲超過512字節的內容,所以MBR中的這段boot loader被當作stage1使用,它的主要作用是加載功能更多更復雜的stage2這段boot loader,stage2可以從文件系統讀取和載入操作系統內核。

 當使用了BIOS boot分區,該分區將包含stage2的boot loader程序,例如grub2文件,而stage1的boot loader代碼仍保留在MBR中。使用bios boot分區不是解決基於傳統bios但使用了gpt格式磁盤問題的唯一方法,但是復雜的boot loader如grub2無法將無法完全符合MBR中的398-446字節的區域,因此它們需要一個輔助的存儲空間。在MBR磁盤上,一般使用緊跟在MBR后的扇區空間來存儲這些復雜的boot loader,這些扇區空間就是大眾所熟知的"MBR gap"。而在GPT磁盤上,由於沒有與MBR gap等效的未使用空間,所以單獨使用一個bios boot分區來分配這樣的空間,以存儲復雜的boot loader。

BIOS boot分區的GUID可以是"21686148-6449-6E6F-744E-656564454649"。在基於BIOS的平台下的GPT中,BIOS boot分區有點類似於EFI平台下的EFI系統分區,EFI系統分區使用UEFI保存文件系統和文件,而用於BIOS平台的BIOS boot分區則不使用文件系統來保存代碼(見上面的圖,在bios boot分區上是沒有創建文件系統的)。

bios boot分區的大小非常小,可以小到只有31kB(由於第一個扇區是mbr,所以bios boot的內容從第2扇區到第63扇區),但是由於未來boot loader可能會擴展,所以建議bios boot分區設置為1M大小,而且很多磁盤分區工具都使用1MB分區對齊策略,這樣MBR到第一個分區之間會保留一些空閑空間。

在Example 2中,grub 2在bios boot分區中存儲它的core.img。

 

[譯注1]gnu grub:現在使用的grub都是gnu山寨出來的grub,原始的grub早已消失在歷史中。

[譯注2]:也就是bios MBR和gpt混用的模式。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM