MBR&GPT分区基本原理

1、磁盘系统为什么要分区?

    •     优化I/O性能

    •     实现磁盘空间配额限制

          •     提高修复速度

          •     隔离系统和程序

   •     安装多个OS


2、目前计算机磁盘流行的两种分区方式:MBRGPT


3、MBR分区原理

   MBR: Master Boot Record, 1982年, 使用32位表示扇区数, 分区不超过2T

如何分区:按柱面
     0磁道0扇区: 512bytes
                446bytes: boot loader主引导分区,可以安装引导加载程序的地方
                64bytes:分区表,记录整块硬盘分区状态
        其中16bytes: 标识一个分区
                2bytes: 55AA

1.png

2.png

由于分区表只有64字节,因此最多容纳4个分区,这四个分区我们称为主或扩展分区。根据上面的图示和说明,我们知道:

a、主分区和扩展分区最多只能有四个(硬盘的限制)

b、扩展分区最多只能有一个

c、逻辑分区是由扩展分区持续切割出来的分区

d、能够被格式化后做数据访问的分区是主分区与逻辑分区,扩展分区是无法格式化的



4、GPT分区原理

GPT:GUID patition table 支持128个分区,使用64位,支持8Z(512Byte/block ) 64Z (4096Byte/block)
 使用128位UUID 表示磁盘和分区 GPT分区表自动备份在头和尾两份,并有CRC校验位
 UEFI (统一扩展固件接口)硬件支持GPT

3.png


    EFI部分又可以分为4个区域: EFI信息区(GPT头)、分区表、 GPT分区、备份区域

    在MBR硬盘中,分区信息直接存储主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。

跟现代的MBR一样,GPT也使用逻辑区块地址(LBA)取代了早期的CHS寻址方式。传统MBR信息存储于LBA 0,GPT头存储于LBA 1,接下来才是分区表本身。64位Windows操作系统使用16,384字节(或32扇区)作为GPT分区表,接下来的LBA 34是硬盘上第一个分区的开始。

    为了减少分区表损坏的风险,GPT在硬盘最后保存了一份分区表的副本。总的来说,GPT都将修复 MBR 的许多限制:

  • (1)GPT只使用LBA,因此,CHS问题就不复存在。

  • (2)磁盘指针的大小为64位,假设512字节扇区,这意味着GPT可以处理的磁盘大小最高达512 x 264字节(8zebibytes,即86亿TiB)。

  • (3)GPT数据结构在磁盘上存储两次:开始和结束各一次。在因事故或坏扇区导致损坏的情况下,这种重复提高了成功恢复的几率。

  • (4)循环冗余检验值针对关键数据结构而计算,提高了数据崩溃的检测几率。

  • (5)GPT将所有分区存储在单个分区表中(带有备份),因此扩展分区或逻辑分区没有存在的必要。GPT默认支持128个分区,当然您也可以更改分区表的大小,如果您的分区软件支持这种更改的话。

  • (6)虽然MBR提供1字节分区类型代码,但GPT使用一个16字节的全局唯一标识符(GUID)值来标识分区类型。这使分区类型更不容易冲突。

  • (7)GPT支持存储人类可读的分区名称。您可以使用这个字段来命名您的Linux /home、/usr、/var和其他分区,以便它们在分区软件中更容易识别。


LBA 0

    在GPT分区表的最开头,处于兼容性考虑仍然存储了一份传统的MBR(LBA 0),这个MBR也叫做保护性MBR。

    保护性MBR保护GPT磁盘不受以前发布的MBR磁盘工具(比如FDISK或WindowsNT磁盘管理器)的危害。这些工具不能感知GPT,也无法正确地访问GPT磁盘。不能识别GPT的旧软件在访问GPT磁盘时只解释保护性MBR。这些工具通过解释保护性MBR,将GPT磁盘看成一个封装的(可能无法识别)分区,而不是错误地当成一个未分区的磁盘,并且拒绝对硬盘进行操作,除非用户特别要求删除这个分区。这就避免了意外删除分区的危险。例如,当在32位的Windows XP系统中挂载GPT磁盘时,会将其识别为“GPT 保护分区(GPT Protective Partition)”,并且用户无法对这个分区进行任何操作(除非使用命令行工具),这是因为32位的Windows XP并不支持GPT,它仅仅只是知道挂载的是一个GPT磁盘而已。

    在支持从GPT启动的操作系统中,这里也用于存储第一阶段的启动代码。在这个MBR中,只有一个标识为0xEE的分区,以此来表示这块硬盘使用GPT分区表。

LBA 1

    分区表头(LBA 1)定义了硬盘的可用空间以及组成分区表的项的大小和数量。在使用64位Windows Server 2003的机器上,最多可以创建128个分区,即分区表中保留了128个项,其中每个都是128字节。(EFI标准要求分区表最小要有16,384字节,即128个分区项的大小)

    分区表头还记录了这块硬盘的GUID,记录了分区表头本身的位置和大小(位置总是在LBA 1)以及备份分区表头和分区表的位置和大小(在硬盘的最后)。它还储存着它本身和分区表的CRC32校验。固件、引导程序和操作系统在启动时可以根据这个校验值来判断分区表是否出错,如果出错了,可以使用软件从硬盘最后的备份GPT中恢复整个分区表,如果备份GPT也校验错误,硬盘将不可使用。所以GPT硬盘的分区表不可以直接使用16进制编辑器修改。

LBA 2–33

    LBA 2–33的位置存放的是分区表项。GPT分区表使用简单而直接的方式表示分区。一个分区表项的前16字节是分区类型GUID。例如,EFI系统分区的GUID类型是{C12A7328-F81F-11D2-BA4B-00A0C93EC93B}。接下来的16字节是该分区唯一的GUID(这个GUID指的是该分区本身,而之前的GUID指的是该分区的类型)。再接下来是分区起始和末尾的64位LBA编号,以及分区的名字和属性。

 

原创文章,作者:AndyIvanXue,如若转载,请注明出处:http://www.178linux.com/41836

(2)
AndyIvanXueAndyIvanXue
上一篇 2016-08-30 13:55
下一篇 2016-08-30 13:55

相关推荐

  • 文本编辑三剑客之gawk

     awk 本章内容: awk介绍 awk基本用法 awk变量 awk格式化 awk操作符 awk条件判断 awk循环 awk数组 awk函数 调用系统命令 1.awk介绍 ★ Linux 文本处理工具三剑客:grep、sed、awk。其中grep是一种文本过滤工具;sed是文本行编辑器,而awk是一种报表生成器,就是对文件进行格式化处理的…

    Linux干货 2016-09-24
  • 磁盘管理、文件系统管理

    磁盘管理、文件系统管理 磁盘管理 磁盘设备 机械硬盘(非固态) I/O Ports —– I/O 设备地址 块设备:Block 存取单位“块”;(磁盘) 字符设备:char 存取单位“字符”;(键盘) 设备文件:关联一个设备驱动程序,进而能够跟与之对应的硬件设备进行通信; – 设备号码: 主设备号 major number…

    Linux干货 2016-07-22
  • 文件编辑之神器Sed

    pattern space   //  文本中每行内容都会进入到pattern space中, 如果匹配到了,就会进入到右分支, 如果没有匹配到,则进入左分支。 hold space  //  就是已经被模式匹配到, 并且编辑后保存的内容就是hold space 中. 默认情况下,当没有被匹配之后,没有匹配到…

    Linux干货 2016-08-15
  • 马哥教育网络班21期-第七周课程练习

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; # mkfs.ext4 -b 2048 -m 2 -L MYDATA /dev/sdb1 # mount&…

    Linux干货 2016-08-24
  • 用户组和权限管理知识总结

    在介绍本期内容之前呢,有一个小插曲.就是由于昨天晚上我没有正常关闭虚拟机,今天早上打开的时候一直显示正在使用中,弹 出来个小框框,如下图,马赛克部分呢就是提示的路径,安装路径不一样,提示的就也不一样. 此虚拟机似乎正在使用中。 如果此虚拟机已在使用中,请按“取消”按钮,以免损坏它。如果此虚拟机未使用,请按“取得所有权(T)”按钮以获取它的所有权。&…

    2017-07-28
  • Linux安全和openssl、gpg加密

                     Linux安全和openssl、gpg加密 本章内容: 安全机制 对称加密 不对称加密 散列算法 PKI和CA openssl 证书管理 gpg   加密需要: 不加密的流量易受攻击性 密码/数据嗅探 数据操作 验证操作 相当…

    系统运维 2016-10-09