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

翻译wiki(一):Bios boot partition的更多相关文章

  1. I.MX6 change boot partition 1 to User area

    /************************************************************************************ * I.MX6 change ...

  2. Legacy BIOS Boot 是如何启动或引导的

    现在Windows 8 64位操作系统全面采用UEFI引导启动的方式,与过去的Legacy启动有什么区别呢?今天就让我们一起来了解下. Legacy BIOS UEFI Boot 是如何启动或引导的 ...

  3. EOS Bios Boot Sequence

    EOS version:v1.0.5 Date:2018-06-19 Host: Centos 7 Reference :https://github.com/EOSIO/eos/wiki/Tutor ...

  4. UEFI boot: how does that actually work, then?

    原文地址:https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/ 翻译:https:/ ...

  5. 安装grub到U盘分区,实现多系统引导

    目录 1.分区工具及分区类型 1.1 显示分区表和分区信息 1.1.1 fdisk -l 1.1.2 gdisk -l 1.1.3 parted -l 1.2 常见分区类型 1.3 分区样例 1.3. ...

  6. Linux和Shell回炉复习系列文章总目录

    本页内容都是本人回炉Linux时整理出来的.这些文章中,绝大多数命令类内容都是翻译.整理man或info文档总结出来的,所以相对都比较完整. 本人的写作方式.风格也可能会让朋友一看就恶心到直接右上角叉 ...

  7. arch Linux(一)

    制作启动盘 将U盘插入待装主机,设置U盘启动,重启进入系统安装界面 设置root密码 root@archiso~ # passwd 启动允许远程连接 root@archiso~ # systemctl ...

  8. arch linux 安装指南

    (如果不想折腾arch linux,推荐直接使用 manjaro:  https://manjaro.org/ ) 1.安装准备 Arch Linux 能在任何内存空间不小于 512MB 的 x86_ ...

  9. GRUB (简体中文)

    原文链接:https://wiki.archlinux.org/index.php/GRUB_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) 前言 引导程序是计算机启动时 ...

随机推荐

  1. mvc开发网站打开慢总结

    开始学习mvc开发网站的时候,看了传智博客的视频教程,其中学习了一个和牛逼的框架,开始激动的深入学习,学完后却发现其实那套框架太重并不适合一些中小型的网站开发,并且也使用导航属性关联外键,导致打开网站 ...

  2. Kalman Filters

    |—定位—|—蒙特卡洛方法(定位自身) |              |—卡尔曼滤波器(定位其他车辆) |—高斯函数 |—循环两个过程—|—测量(测量更新) |                     ...

  3. 简单的JavaScript图像延迟加载库Echo.js

    插件描述:和 Lazy Load 一样,Echo.js 也是一个用于图像延迟加载 JavaScript.不同的是 Lazy Load 是基于 jQuery 的插件,而 Echo.js 不依赖于 jQu ...

  4. 【pycharm】pycharm修改文件名快捷键

    shift+F6 修改文件名 --------------------------------------------------

  5. 更改了ssh文件下,还没有权限

    执行 cd /root/.ssh chmod 600 id_*

  6. POM文件详解(1)

    POM文件详解 <project xmlns=http://maven.apache.org/POM/4.0.0 xmlns:xsi="http://www.w3.org/2001/X ...

  7. JS中获取CSS样式的方法

    1.对于内联样式,可以直接使用ele.style.属性名(当然也可以用键值对的方式)获得.注意在CSS中单词之间用-连接,在JS中要用驼峰命名法 如 <div id="dv" ...

  8. MySQL--Skip GTID CAP

    import os script_file = "./skip_file.sql" def write_script(script_content): file_handle = ...

  9. 为什么要学习 Spring Boot?

    我们知道,从 2002 年开始,Spring 一直在飞速的发展,如今已经成为了在Java EE(Java Enterprise Edition)开发中真正意义上的标准,但是随着技术的发展,Java E ...

  10. prompt的工作原理

    浏览器提供了一个内置函数,可以用来获取用户输入:这个函数就是prompt.函数prompt与你使用过的函数alert很像(它也显示一个对话框,其中包含你指定的字符串),但它还提供了让用户输入响应的区域 ...