文章翻譯自wiki,水平有限,如有錯萬請見諒。原文:https://en.wikipedia.org/wiki/BIOS_boot_partitionios
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能夠從文件系統讀取和載入操做系統內核。spa
當使用了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到第一個分區之間會保留一些空閒空間。blog
在Example 2中,grub 2在bios boot分區中存儲它的core.img。ip
[譯註1]gnu grub:如今使用的grub都是gnu山寨出來的grub,原始的grub早已消失在歷史中。get
[譯註2]:也就是bios MBR和gpt混用的模式。it