MBR和GPT概要学习
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字节 | |
| 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概要学习的更多相关文章
- MBR和GPT分区学习
		1.MBR 早期的windows和linux都采用的MBR的方法来处理开机引导程序和分区表,对于linux的MBR分区来讲,0柱面0磁道1扇区用于引导驱动程序,第一扇区有512个字节,前446字节存放 ... 
- Linux 学习手记(6): 磁盘、分区、MBR与GPT
		1. 磁盘在LINUX中的表示 Linux所有设备都被抽象为一个文件,保存在/dev目录下 设备名称一般为hd[a-z]或者sd[a-z]([a-z]为分区号),如:hda.hdb.sda.sdb I ... 
- 【干货】BIOS、UEFI、MBR、GPT、GRUB 到底是什么意思?
		公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ 01 前言 在学习 Linux 系统启动原理之前,我们先了解下与操作系统启动相关的几个概念. 02 与操作系统启动相关的几个 ... 
- 系统分区MBR、GPT
		分区模式: ①MBR(主引导记录(Master Boot Record))分区:在驱动器最前端的一段引导扇区 缺点:主分区不超过4个,单个分区容量最大2TB 分区工具fdisk只能给硬盘做MBR分区, ... 
- Androidz之Activity概要学习
		Androidz之Activity概要学习 1. Activity类概述 Activity(活动)是一个单独的.能获取焦点的,且能与用户交互的东西.所以我们通常在Activity类中的onCr ... 
- BIOS与UEFI、MBR和GPT介绍
		操作步骤: UEFI是取代传统BIOS的,全称“统一的可扩展固件接口”.MBR则是传统的分区表类型,最大的缺点则是不支持容量大于2T的硬盘.GPT则弥补了MBR这个缺点,最大支持18EB的硬盘,是基于 ... 
- win server 2003 将MBR转为GPT突破硬盘2TB的限制(附微软磁盘科普)
		备注:https://technet.microsoft.com/zh-cn/library/cc773223.aspx GUID 分区表 与支持最大卷为 2 TB (terabytes) 并且每个磁 ... 
- EFI、UEFI、MBR、GPT的区别
		UEFI.GPT.MBR是什么?这些专业术语不难理解,UEFI属于主板类名词,其作用类似于BIOS.GPT.MBR则属于硬盘类名词,它们的作用类似一艘航母的骨架,有了这个骨架,我们才可以进行细致到诸如 ... 
- Linux 磁盘介绍(磁盘、分区、MBR、GPT)
		原文:https://www.linuxidc.com/Linux/2013-06/85717.htm 1. CHS(Cylinder-Head-Sector): was an early metho ... 
随机推荐
- Python笔记(一)——打印输出
			一.输出语句input 输出语句print 例:用户输入 username = input("username:") #变量名 显示的字符 password = input( ... 
- ACM  Strange fuction
			现在,这里有一个功能: F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100) 当x在0到100之间时,你能找到最小值吗? 输入 第一行包 ... 
- Docker仓库
			仓库是集中存放镜像文件的场所.有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分.实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(t ... 
- Android开发技巧——设置系统状态栏颜色
			开门见山,先来三张效果图: 然后我们再来讲如何实现以及如何快速地实现. 如何实现 实现设置系统状态栏颜色需要至少在Android 4.4.2(API 19)以上.这是因为,在这个版本以下,没有任何的A ... 
- (译)openURL 在 iOS10中已弃用
			翻译自:openURL Deprecated in iOS10 译者:Haley_Wong 苹果在iOS 2 推出了 openURL:方法 作为一种打开外部链接的方式.而与之相关的方法 canOpen ... 
- defaultdict的威力
			>>> from collections import defaultdict >>> s='mmississippi' >>> d=defaul ... 
- WebView 的使用案例
			package com.example.day20_webview; import android.os.Bundle; import android.annotation.SuppressLint; ... 
- Apache shiro集群实现 (六)分布式集群系统下的高可用session解决方案---Session共享
			Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ... 
- OpenCV+OpenGL 双目立体视觉三维重建
			0.绪论 这篇文章主要为了研究双目立体视觉的最终目标--三维重建,系统的介绍了三维重建的整体步骤.双目立体视觉的整体流程包括:图像获取,摄像机标定,特征提取(稠密匹配中这一步可以省略),立体匹配,三维 ... 
- Swift中方法闭包参数不能省略括号的一种情况
			大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们知道在swift中,如果方法的最后一个参数是一个闭包类型, ... 
