翻译wiki(一):Bios boot partition


 

文章翻译自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

相关文章
相关标签/搜索