1. 程式人生 > >翻譯wiki(一):Bios boot partition

翻譯wiki(一):Bios boot partition

直觀 分享 nbsp src 輔助 grub2 ios平臺 ref 空間


文章翻譯自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混用的模式。

轉載請註明出處:http://www.cnblogs.com/f-ck-need-u/p/7084627.html

翻譯wiki(一):Bios boot partition