分享好友 最新动态首页 最新动态分类 切换频道
MBR与GPT详解
2024-12-25 15:06

        早期的 Linux 系统为了相容于 Windows 的磁盘,因此使用的是支持 Windows 的 MBR(Master Boot Record, 主要开机纪录区)的方式来处理开机管理程序与分区表!而开机管理程序纪录区与分区表则通通放在磁盘的第一个扇区, 这个扇区通常是 512Bytes 的大小 ,所以说,第一个扇区 512Bytes 会有这三个数据

1、主要开机记录区(Master Boot Record, MBR

        可以安装开机管理程序的地方,有446 Bytes。 

2、分区表(partition table

        记录整颗硬盘分区的状态,有64 Bytes,由于分区表所在区块仅有64 Bytes容量,因此最多仅能有四组记录区,每组记录区记录了该区段的启始与结束的柱面号码。

3、分区结束标志位

       结束标志,偏移地址01FE--01FF的2个字节,即最后多出来的510~511字节按惯例为0xAA55。若磁盘此处的值不为0xAA55,则判断该磁盘的MBR被损坏,系统不能启动。

MBR分区图

         若将硬盘以长条形来看,然后将柱面以直条图来看,那么那64 Bytes的记录区段如下面的图所示(其中蓝色那块为分区表

        但是其实MBR分区类型的磁盘也可以分很多个分区,通过叫做扩展(Extended)分区来实现,MBR的分区表记录的是主(Primary)分区和扩展(Extended)分区,主分区就是我们上边所说的记录分区的开始和结束柱面。通过扩展分区达到使用其他扇区来记录分区的形式,每个分区会由一块空间来存放分区表,这里的其他扇区又被称作逻辑扇区。如图所示: 

分区表内容表解

        可以看到两个以4字节表示分区之前以及本分区的扇区数,也就是可以表示的最大扇区数为:2^32*512,而每个标准扇区的容量为512字节,于是能表示的最大容量为

  • LBA0(MBR兼容模块
    出于兼容性考虑存储了一份传统MBR,用来防止不支持GPT的硬盘管理工具错误识别并破坏硬盘中的数据,这个MBR也叫做保护MBR。
    分为两个部分,第一个是前面446字节,用来存储第一阶段的启动引导程序。而在原本的分区表的记录区内,这个兼容模式仅放入了一个特殊字符来表示此磁盘为GPT格式之意。
    在使用 MBR/GPT 混合分区表的硬盘中,这部分存储了GPT分区表的一部分分区(通常是前四个分区,可以使不支持从GPT启动的操作系统从这个MBR启动,启动后只能操作MBR分区表中的分区。

  • LBA1(GPT表头记录
    记录了分区表本身的位置和大小,也记录了备份用的GPT分区(最后34个LBA区块)放置的位置。同时放置了分区表的校验码(CRC32,操作系统可以根据这个校验码来判断GPT是否正确。若有错误可以通过这个记录区来获取备份的GPT(磁盘最后面的备份区块)来恢复正常。

  • LBA[2-33](实际记录分区信息处
    从LBA2区块开始,每个LBA都可以记录4组分区记录,所以在默认情况下,总共有4*32=128组分区记录。每组记录用到128字节的空间。

 图2-2分析

1. Protective MBR(保护MBR:GPT分区表的第0柱面(LBA 0)处保留一个512字节的MBR分区记录,用来保护GPT分区表免受旧版BIOS的破坏。

2. GPT Header(GPT头:GPT分区表的头部,占据了磁盘的第一个物理块512字节。它包含了GPT分区表的基本信息,包括分区表的位置、大小、版本号、磁盘类型、GUID等。

3. Partition Entries(分区表项:磁盘上每个分区的描述信息,每个分区的信息占据了128字节。它包含了分区的GUID、起始位置、结束位置、分区属性等信息。

4. Partition Array CRC32(分区表项数组校验和:用于检测分区表项数组数据是否正确的校验和。

GPT分区表架构支持最多128个分区,每个分区的大小可以达到EB级别,其中包括了主分区、扩展分区、逻辑分区等类型。GPT分区表架构还提供了更好的数据安全性和可靠性,它通过备份GPT头和分区表项数组来避免数据丢失的风险。

GPT分区大小限制

        GPT 在每组记录中分别提供了 8字节 = 64位 来记载开始/结束的扇区号码。因此,理论上对于单一分区槽来说, 它的最大容量限制为 264 * 512bytes = 263 Kbytes = 233TB = 8 ZB 。但是受操作系统限制,一般一个分区最大限制为 18EB。GPT 分区没有所谓的主、扩展、逻辑分区的概念,每个都可以视为是主分区,每一个分区都可以格式化。

BIOS+MBR

        当使用BIOS开机,如果是MBR分区中,grub2充当了开机管理程序,即存放在第一个扇区中。因为MBR只有446字节,存放不下grub2的整个程序及相关文件,所以grub2分成两部分,boot.img和core.img,boot.img存放其MBR中,core.img是被存放在MBR与第一个分区(注意这里是分区而不是扇区)之间的,boot.img去启动core.img,core.img由于没有了大小的限制,会包含一些基本文件系统驱动(EXT,FAT,NTFS,这样grub2可以定位到/boot的文件系统,读取内容等。而grub2需要的一些文件,包括运行时内核模块,配置文件都是在/boot/grub2文件夹下,内核文件就在/boot/文件夹下,这样grub2就会去加载内核,进一步操作系统就可以启动。

接这张图来理解

  • 首先第一个分区从2048扇区开始,0号扇区存放MBR,1~2047扇区如上边所说是留给core.img的。

  • 分区号1-4是留给主分区和扩展分区的,分区号5,6,7...是留给逻辑分区的,所以sdb1,sdb2,sdb5中间会有一个跳跃。

这也是MBR下系统的磁盘的结构

 BIOS+GPT

        因为GPT中是兼容了MBR的(LBA0就是MBR,所以BIOS同样可以开机GPT分区的操作系统。与BIOS->MBR类似,同样需要boot.img去启动core.img,boot.img同样放在第一个扇区,不一样的是core.img并不是放在第一个分区和mbr之间,而是有一个单独的分区BIOS BOOT(1M的内存空间),下图是我操作系统GPT分区

        /dev/sda1就是BIOS boot分区,2048sectors*512bytes=1MB, 同样官方也给了一张图来说明启动的这个过程

 UEFI+GPT

        最后我们来讲UEFI启动GPT分区,我们也已经展示了GPT分区表的图,那么如果使用UEFI是如何启动呢,这里肯定不是使用boot.img和core.img来启动。这里提供一张不兼容MBR启动的分区表的图

        由于没有了bios boot分区,所以就不再支持BIOS启动GPT分区了。这个分区表中比较特殊的一个分区是EFI system这个类型的分区,也被称作EFI System Partition(ESP),这个分区是VFAT格式的文件系统,UEFI还可以读取这个文件系统,且我们的引导文件也在这个目录里,从下图可以看到,这里就有boot loader(grub2)和一些启动时必须软件,centos目录下包含grubx64.efi这个程序, 最终UEFI执行grubx64.efi这个程序。这样就和之前步骤一样了,grub2会去加载内核,启动操作系统。

四、修改引导默认组合

首先我们可以使用下面这条命令来查看我们的引导类型

 
 

接着使用 fdisk -l 来查看我们的磁盘分区类型 

这里提示 WARNING 是因为 fdisk 命令早期不支持gpt分区的,而现在新版的 fdisk 工具(如下图)可以识别到gpt分区。

BIOS+MBR——>BIOS+GPT

        在安装时使用BIOS引导,如果磁盘容量小于 2TB 的话,系统默认会使用 MBR 模式来安装,如果磁盘容量大于2TB的话,那么系统就会使用GPT模式来安装,在分区的时候会看到一个 BIOS BOOT 分区,那如果磁盘小于2TB又想要强制使用 GPT 分区表的话,你就得要这样作

1. 使用方向键,将下图的光标移动到“ Install CentOS 7 ”的项目中

2. 按下键盘的 [Tab] 按钮,让光标跑到画面最下方等待输入额外的核心参数

3. 在出现的画面中,输入如下画面的数据 (注意,各个项目要有空格,最后一个是光标本身而非底线

 UEFI+GPT——>UEFI+MBR

        安装时使用UEFI引导,系统会默认使用GPT模式来安装,在官方并没有找到可以强制修改的参数,所以我们进去使用 gdisk 工具修改,它可以使我们实现无损修改,不会格式化我们的磁盘,摧毁掉我们的数据,如果使用 fdisk 或者 parted 的话,它会在修改同时对硬盘进行格式化。

在UEFI+GPT环境下

1.安装gdisk:如果您的系统没有安装gdisk,请使用以下命令安装

 

2. 打开磁盘:使用以下命令打开您要转换的磁盘

 

请将/dev/sdX替换为您要转换的磁盘名称。

3. 转换分区表格式:在gdisk命令行中,输入“r”以进入恢复和转换菜单,然后输入“g”以将分区表转换为mbr格式。输入“w”以保存更改并退出gdisk。

实验

接着使用 gdisk 工具进行转换为mbr。

下图可以看到转换完重启后,磁盘类型为msdos,即mbr分区,创建的文件依旧还在。如果想要转换回gpt,我们只需gdisk /dev/sda进去交互模式,直接输入“w”即可转换回gpt

注意:gdisk 工具用于在BIOS引导的系统进行磁盘类型转换时,会进行格式化分区,重启后会进入grub rescue模式,上面实验是UEFI引导的系统。

实际情况还是遵循BIOS+MBR与UEFI+GPT的默认组合,如果硬盘容量大于2TB,还是使用GPT分区好。


参考文献

《鸟哥Linux的私房菜》

最新文章
数据科学学院开展“探索百度智能云基地,开启数据智能新征程”访企拓岗专项行动
为深入探索人工智能与大数据领域的前沿创新与产业应用,加强学院与行业领先企业的交流合作,提升人才培养与企业需求契合度,12月6日上午,数据科学学院副院长隋丽红、学生工作办公室主任刘宾、辅导员张然和唐子喻,前往百度智能云基地进行
花呗发短信走访材料已经通过
小编导语在现代社会,移动支付的快速发展使得人们的消费方式发生了翻天覆地的变化。作为蚂蚁金服旗下的一款金融产品,花呗凭借其便捷的信用消费模式,迅速赢得了广大年轻消费者的青睐。为了进一步提升服务质量,花呗团队开展了针对用户的走
外贸B2B网站建设及推广哪家公司够专业知道的提示一下求助
网站建设1. 需求分析:明确目标市场、目标客户群、产品特性及企业定位,这是建设一个成功外贸B2B网站的基础。2. 设计布局:设计应简洁明了,符合国际审美标准,同时体现企业文化和产品特点。界面要友好,方便用户浏览和操作。3. 技术支持:
字节抖音电商转正(字节抖音电商转正率高吗)
抖音电商将对2023年11月30日以前已转正服务商进行考核,考核周期为2023年12月1日2024年2月29日考核指标为,考核周期内在抖店服务市场与服务商已建立绑定合作关系的商家店铺的支付订单量总量达单考核周期结束前缴足10万元保证金至考核周期结
如何提高新网站被百度收录的速度及技巧分享
伴随着互联网的快速发展,网站的收录与排名逐渐成为站长关注的焦点。特别是依赖百度流量支持的站长群体,理解并掌握百度收录规则显得尤为关键。在此,笔者通过深度调研与观察百度收录规律是,精准解析百度收录网站的规则,为广大站长提供实
如何让手机淘宝搜索排名靠前?
  大家在做手机淘宝搜索排名时都很盲目,不知道怎样增加店铺宝贝的权重,如何让手机淘宝搜索排名靠前?下面开淘小编总结了手机淘宝搜素排名靠前的方法,大家可以学习学习!  一、宝贝描述,设置就能加分  这个常常会被大家忽略掉,因为
追漫大全app免费下载 追漫的软件排行榜
你也很喜欢看漫画吗?这篇文章就是与漫画有关的追漫大全app免费下载,漫画与电视剧一样有非常多的类型,小编在下面的介绍中为大家找到了这些软件都有很多的类型让大家来选择观看,能够让大家在观看的过程中提高逻辑思维能力和想象力,各种
如何利用网站SEO优化文章(一篇高质量的文章是如何诞生的)
在当今互联网时代,何利优质的用网优化内容是网站吸引流量和提高排名的关键。然而,站S质量章何如何写出一篇能够吸引读者并且在搜索引擎中得到良好排名的文章文章,是篇高很多人都面临的难题。本文将介绍如何利用网站SEO关键词优化文章,文
电脑主机配置带显卡,性能与体验的双重提升
随着科技的飞速发展,电脑已经成为我们日常生活和工作中不可或缺的工具,而在电脑配置中,主机配置带显卡的优劣直接影响着电脑的整体性能和使用体验,本文将详细介绍电脑主机配置带显卡的相关知识,帮助读者了解如何选择适合自己的电脑配置
OpenAI CFO透露:新一代AI模型开发将耗资数十亿,成本激增!
  近日,OpenAI 的首席财务官在纽约表示,该公司预计未来构建更高级的人工智能模型所需的费用将持续大幅增长,达到数十亿美元。这一信息反映出,随着技术的不断进步和市场的需求增加,开发尖端AI 系统的经济压力也在加大。  根据高管的
相关文章
推荐文章
发表评论
0评