MBR和GPT概要学习

1.     MBR和GPT

大家所最为熟知的分区方式同时也是最主流的主要有两种:MBR(Master Boot Record)和GPT(GUID Partition Table)。前者应用于绝大多数使用BIOS引导的PC设备(苹果使用EFI的方式),而后者主要是针对MBR的一些缺点进行了改进同时还可以兼容MBR并且支持2TB以上的存储(MBR不支持2TB以上的存储设备)。

Android 2.x.x 版本上使用的是MBR,4.0版本以后就是使用的GPT分区方式。

2.     MBR

MBR,可以成为主引导记录或者主引导扇区。计算机开机之后,访问磁盘必须先访问这个MBR,获取到这个磁盘的相关信息,比如这个磁盘有几个分区啊,每个分区从哪开始,到哪结束,每个分区都是啥文件系统等等信息。

MBR结构

图1

在来看另一张图:

图2

3.     GPT

GPT分区全名为GloballyUnique Identifier Partition Table Format,即全局唯一标示磁盘分区表格式。

GPT结构

图3

再来看另一张图

图4

可以看到,在GTP磁盘的第一个数据块中同样有一个与MBR(主引导记录)类似的标记,叫做PMBR,GPT硬盘中存在PMBR(Protective MBR)分区表和GPT分区表

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

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

3.1  GPT分区表头的格式

分区表头的格式

起始字节

长度

内容

0

8字节

签名("EFI PART")

8

4字节

修订

12

4字节

分区表头的大小

16

4字节

分区表头(第0-91字节)的CRC32校验,在计算时,把这个字段作为0处理,需要计算出分区串行的CRC32校验后再计算本字段

20

4字节

保留,必须是 0

24

8字节

当前LBA(这个分区表头的位置)

32

8字节

备份LBA(另一个分区表头的位置)

40

8字节

第一个可用于分区的LBA(主分区表的最后一个LBA + 1)

48

8字节

最后一个可用于分区的LBA(备份分区表的第一个LBA − 1)

56

16字节

硬盘GUID(在类UNIX系统中也叫UUID)

72

8字节

分区表项的起始LBA(在主分区表中是2)

80

4字节

分区表项的数量

84

4字节

一个分区表项的大小(通常是128)

88

4字节

分区串行的CRC32校验

92

*

保留,剩余的字节必须是0(对于512字节LBA的硬盘即是420个字节)

3.2  GPT分区表项的格式

GPT分区表项的格式

起始字节

长度

内容

0

16字节

分区类型GUID

16

16字节

分区GUID

32

8字节

起始LBA(小端格式)

40

8字节

末尾LBA

48

8字节

属性标签(如:60表示"只读")

56

72字节

分区名(可以包括36个UTF-16(小端格式)字符)

MBR和GPT概要学习的更多相关文章

  1. MBR和GPT分区学习

    1.MBR 早期的windows和linux都采用的MBR的方法来处理开机引导程序和分区表,对于linux的MBR分区来讲,0柱面0磁道1扇区用于引导驱动程序,第一扇区有512个字节,前446字节存放 ...

  2. Linux 学习手记(6): 磁盘、分区、MBR与GPT

    1. 磁盘在LINUX中的表示 Linux所有设备都被抽象为一个文件,保存在/dev目录下 设备名称一般为hd[a-z]或者sd[a-z]([a-z]为分区号),如:hda.hdb.sda.sdb I ...

  3. 【干货】BIOS、UEFI、MBR、GPT、GRUB 到底是什么意思?

    公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ 01 前言 在学习 Linux 系统启动原理之前,我们先了解下与操作系统启动相关的几个概念. 02 与操作系统启动相关的几个 ...

  4. 系统分区MBR、GPT

    分区模式: ①MBR(主引导记录(Master Boot Record))分区:在驱动器最前端的一段引导扇区 缺点:主分区不超过4个,单个分区容量最大2TB 分区工具fdisk只能给硬盘做MBR分区, ...

  5. Androidz之Activity概要学习

    Androidz之Activity概要学习 1.     Activity类概述 Activity(活动)是一个单独的.能获取焦点的,且能与用户交互的东西.所以我们通常在Activity类中的onCr ...

  6. BIOS与UEFI、MBR和GPT介绍

    操作步骤: UEFI是取代传统BIOS的,全称“统一的可扩展固件接口”.MBR则是传统的分区表类型,最大的缺点则是不支持容量大于2T的硬盘.GPT则弥补了MBR这个缺点,最大支持18EB的硬盘,是基于 ...

  7. win server 2003 将MBR转为GPT突破硬盘2TB的限制(附微软磁盘科普)

    备注:https://technet.microsoft.com/zh-cn/library/cc773223.aspx GUID 分区表 与支持最大卷为 2 TB (terabytes) 并且每个磁 ...

  8. EFI、UEFI、MBR、GPT的区别

    UEFI.GPT.MBR是什么?这些专业术语不难理解,UEFI属于主板类名词,其作用类似于BIOS.GPT.MBR则属于硬盘类名词,它们的作用类似一艘航母的骨架,有了这个骨架,我们才可以进行细致到诸如 ...

  9. Linux 磁盘介绍(磁盘、分区、MBR、GPT)

    原文:https://www.linuxidc.com/Linux/2013-06/85717.htm 1. CHS(Cylinder-Head-Sector): was an early metho ...

随机推荐

  1. js 当前时间刷新

    <p>每隔1秒钟,打印当前时间</p> <div id="time"></div> <script> function ...

  2. vue+cordova 构建hybrid app

    配了一个 vue + cordova + ionicCli 的 项目 支持 ionic 的脚手架命令 支持 cordova 的 插件 安装使用 支持 webpack 的自动构建 vue 安装了 vue ...

  3. 2018年Java实习春招总结

    因为女票在北京,打算去北京实习,所以从去年12月开始复习Java,做项目,视频是看的黑马的视频,还可以吧,把Java基础和SSM框架看了下,做了个小项目,然后看牛客网的中级项目课,做了一个健身头条项目 ...

  4. vue开发中遇到的问题集锦(2)

    1,在搭建了一个vue的脚手架之后,写了第一个组件,路由也已经配置完毕,且页面的路由显示是:http://localhost:8080/#/userLogin,userLogin里面有内容,但是页面显 ...

  5. 【集合框架】JDK1.8源码分析之HashMap(一) 转载

    [集合框架]JDK1.8源码分析之HashMap(一)   一.前言 在分析jdk1.8后的HashMap源码时,发现网上好多分析都是基于之前的jdk,而Java8的HashMap对之前做了较大的优化 ...

  6. Linux中Mysql root用户看不到mysql库问题解决方式

    第一种方式: 1.首先停止MySQL服务:service mysqld stop2.加参数启动mysql:/usr/bin/mysqld_safe --skip-grant-tables &  ...

  7. SAS中的剔除空格函数

    left函数:         刪除字符串左边(开头> 的空格right函数:       刪除字符串右边(结尾> 的空格trim函数:         刪除字符串右边(结尾> 的空 ...

  8. COS对象存储服务的使用

    ---------------------------------------------------------------------------------------------[版权申明:本 ...

  9. Linux 下的一个全新的性能测量和调式诊断工具 Systemtap,第 1 部分: kprobe

    kprobe 的原理.编程接口.局限性和使用注意事项 本系列文章详细地介绍了一个Linux下的全新的调式.诊断和性能测量工具Systemtap和它所依赖的基础kprobe以及促使开发该工具的先驱DTr ...

  10. 使用Dialog实现全局Loading加载框

    Dialog实现全局Loading加载框 很多人在实现Loading加载框的时候,都是在当前的页面隐藏一个Loading布局,需要加载的时候,显示出来,加载完再隐藏 使用Dialog实现Loading ...