MBR和GPT概要学习
来源:互联网 发布:黑暗风格数据地图 编辑:程序博客网 时间:2024/05/18 15:07
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概要学习
- GPT和MBR
- MBR和GPT分区表
- 磁盘分区MBR和GPT
- MBR和GPT的区别
- MBR和GPT的区别
- MBR和GPT的区别
- MBR和GPT的区别
- MBR和GPT分区详解
- MBR 和 GPT 分区差别
- MBR和GPT分区区别
- MBR & GPT
- MBR & GPT
- MBR & GPT
- MBR&GPT
- MBR & GPT
- MBR&GPT
- MBR分区和GPT分区介绍
- GSON解析JSON
- github常见操作和常见错误!
- 封装OKHttp
- Arduino连接超声波传感器测距
- GIT 02 -git rebase -i 用法
- MBR和GPT概要学习
- iOS中宏(define)/常量(const)/变量的理解
- POJ3461 Oulipo
- FAST解析JSON
- 正则表达式
- 【GOF23设计模式】_中介者模式_同事协作类_内部类实现JAVA245
- Finding where unmanaged exceptions came from
- ACM课程总结
- 竖直时间轴之左右交叉布局