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)
上一篇 2016-08-30 13:55
下一篇 2016-08-30 13:55

相关推荐

  • wk_01作业

    计算机 介绍 电子计算机(英语:computer),亦称电脑,是一种利用电子学原理,根据一系列指令对数据进行处理的工具。在现代,机械计算机的应用已经完全被电子计算机所替换,其所相关的技术研究叫计算机科学,而“计算机技术”指的是将计算机科学的成果应用于工程实践所派生的诸多技术性和经验性成果的总合。“计算机技术”与“计算机科学”是两个相关而又不同的概念,它们的不…

    Linux干货 2016-12-04
  • ntp时间服务器

    前言   ntp(Network Time protocol)是网络时间协议,是用来使网络中的各个计算机时间同步的一种协议。 ntp配置  1)ntp是由ntp软件提供,如果没有可以使用yum进行安装  2)ntp配置文件介绍:/etc/ntp.conf   利用restrict来管理权限控制;语法格式:restric…

    Linux干货 2015-06-24
  • 第二周作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。  cp复制,mv移动,rm删除     1、cp:             1,用法:      &n…

    Linux干货 2016-07-04
  • linux上安全软件SElinux

    selinux简介 SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的 实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的 任务中所需要文件。SELinux 默认安装在 Fedora 和 Red …

    系统运维 2016-09-19
  • 第八周作业

    第八周作业 1、写一个脚本,使用ping命令推测172.16.250.1-172.16.250.254之间的所有主机的在线状态; 在线的主机使用绿色显示; 不在线的主机使用红色显示;   #!/bin/bash for i in {1..254};do if ping -c 1 -w 1 192.168.1.$i &> /dev/nu…

    Linux干货 2017-11-13
  • Linux 目录结构

    1.    前言      Linux 是一种开源的,且非常流行的操作系统,发行版本众多。为了统一和规范linux系统的主要目录名及其用途,提出了FHS标准,FHS是File Hierarchy Standard的简写。Linux 目录结构采用FHS…

    Linux干货 2016-10-18