【鸟哥的私房菜V4基础篇】2.2.2 MBR与GPT磁盘分区表


目前分区表2种格式

1. mbr分区表格式与限制

1.1 主分区和扩展分区

MBR:Mast Boot Record, 主引导记录,位置就是第一个可开机装置(磁盘)的第一个扇区, 通常大小为512byte,旧的磁盘一个扇区都是512B, 最新的有4KB,这个扇区有两部分:

  • 主引导记录(MBR)
    安装开机管理程序的地方,有446个字节;
  • 分区表,记录整块硬盘分区的状态,有64byte(与mbr总和是510,略小于512),最多有4组记录区
    每组记录区记录了该区段的起始与结束的柱面号码。

假设硬盘设备文件名为/dev/sda时,那么四个分区在linux系统中的设备名如下所示,重点在于文件名后面会再接一个数字,这个数字与该分区所在的位置有关:

  • P1:/dev/sda1
  • P1:/dev/sda2
  • P1:/dev/sda3
  • P1:/dev/sda3

在这里插入图片描述

在这里插入图片描述
上图中,假设我们的硬盘只有400个柱面,共划分为4个分区第四个分区所在为第301-400号柱面的范围。当你的操作系统为windows时,第一到第四个分区的代号应该就是CDEF。当你的数据要写入F分区时,你的数据会被写入这块磁盘的301-400号柱面之间的意思。

由于分区表就只有64个字节而已,最多容纳四组分区记录。这四个分区的记录被称为主分区(Primary)或扩展分区(Extended)。

1.2 逻辑分区

难道一块硬盘只能有四个分区?你也知道,这不是真的,那怎么办,这就引出了逻辑分区的概念,原理是把Extended扩展分区切成若干个逻辑分区。
在这里插入图片描述

  • p2扩展分区,划定了101-400柱面区间,内部又划分为5个分区,称为逻辑分区

  • 粉色圆圈标记的时扩展分区,占用额外的扇区来记录逻辑分区信息;

  • 只有主分区Primary和逻辑分区可以被格式化。扩展分区存储的内容是逻辑分区;如果扩展分区被格式化,那么逻辑分区信息就丢失;因此不能被格式化

    如果扩展分区被破坏,逻辑分区将会被删除!

同样,上述的分区在linux系统中的设备文件名分别如下:

P1:/dev/sda1
P1:/dev/sda2  '没有用到/dev/sda3和/dev/sda4'
L1:/dev/sda5
L2:/dev/sda6
L3:/dev/sda7
L4:/dev/sda8
L5:/dev/sda9

为什么没有用到/dev/sda3和/dev/sda4? 因为前面四个号码都是保留给主要分区或扩展分区的,所以逻辑分区的设备名称号码就从5开始

1.3 MBR缺点

但是MBR有一些弊端:

  • 1.操作系统无法抓取到2.2T以上的磁盘容量,每组分区表仅有16个字节,记录的柱面范围自然很小,导致划出的分区容量也很小,不超过2.2T。

  • 2.MBR只有一块,被破坏了,很难救援

  • 3.bootloader最大446byte,无法容更大的开机管理程序

2. GTP(GUID partition table )全局唯一表示分区表

与MBR仅仅使用第一个512bytes来记录不同,GPT使用了34个LBA区块来记录硬盘分割信息,同时整个硬盘的最后33个LBA被用来作为另一个备份。

一个LBA大概就是指一个扇区,也就是说GTP采用34个扇区,是mbr(仅采用第一个扇区)的34倍

在这里插入图片描述

  • LBA0(MBR):

    • 对于GPT分区表的磁盘,在GPT分区表的最开头,处于兼容性考虑仍然存储了一份传统的MBR,用来防止不支持GPT的硬盘管理工具错误识别并破坏硬盘中的数据,这个MBR也叫做保护MBR。在支持从GPT启动的操作系统中,这里也用于存储第一阶段的启动代码(这也叫bootloader,但是这只是完整bootloader级开机管理程序的一部分)。在这个MBR中,只有一个标识为0xEE的分区,以此来表示这块硬盘使用GPT分区表。不能识别GPT硬盘的操作系统通常会识别出一个未知类型的分区,并且拒绝对硬盘进行操作,除非用户特别要求删除这个分区。这就避免了意外删除分区的危险。另外,能够识别GPT分区表的操作系统会检查保护MBR中的分区表,如果分区类型不是0xEE或者MBR分区表中有多个项,也会拒绝对硬盘进行操作。

    • 在使用MBR/GPT混合分区表的硬盘中,这部分存储了GPT分区表的一部分分区(通常是前四个分区),可以使不支持从GPT启动的操作系统从这个MBR启动,启动后只能操作MBR分区表中的分区

  • LBA1(GPT表头记录):
    这个部分记录了分割表本身的位置与大小,同时记录了备份用(硬盘的最后33个LBA)的GPT分割放置的位置,以及校验码(CRC32)。操作系统可以根据校验码判断GPT是否正确,若有错误,则可以取得备份来恢复。

  • LBA2-33(实际记录分割记录信息处):
    从LBA2区块开始,每个LBA都可以记录4个分割记录,所以在默认情况下,可以记录4*32=128个记录。每一个记录除了记录所需要的标志码与相关记录意外,还分别提供了64bits来记录开始/结束的区块号码。因此对一单一的分区来说,最大容量限制在「264 × 512bytes = 263 × 1Kbytes = 233 × TB = 8 ZB


参考:

《鸟哥的私房菜基础篇bootloader,biosboot, MBR的区别》

猜你喜欢

转载自blog.csdn.net/m0_45406092/article/details/114147413