GPT 分区详解

保护MBR


保护MBR包含一个DOS分区表(LBA0),只包含一个类型值为0xEE的分区项,在小于2TB的磁盘上,大小为整个磁盘;在更大的磁盘上,它的大小固定为2TB。它的作用是阻止不能识别GPT分区的磁盘工具试图对其进行格式化等操作,所以该扇区被称为“保护MBR”。实际上,EFI根本不使用这个分区表。

EFI部分

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


EFI信息区(GPT头)

起始于磁盘的LBA1,通常也只占用这个单一扇区。其作用是定义分区表的位置和大小。GPT头还包含头和分区表的校验和,这样就可以及时发现错误。

分区表

分区表区域包含分区表项。这个区域由GPT头定义,一般占用磁盘LBA2~LBA33扇区。分区表中的每个分区项由起始地址、结束地址、类型值、名字、属性标志、GUID值组成。分区表建立后,128位的GUID对系统来说是唯一的。

GPT分区

最大的区域,由分配给分区的扇区组成。这个区域的起始和结束地址由GPT头定义。

备份区

备份区域位于磁盘的尾部,包含GPT头和分区表的备份。它占用GPT结束扇区和EFI结束扇区之间的33个扇区。其中最后一个扇区用来备份1号扇区的EFI信息,其余的32个扇区用来备份LBA2~LBA33扇区的分区表。

EFI信息区数据结构

EFI信息区位于磁盘的1号扇区(LBA1),也称为GPT头。其具体结构如下表所示



































































EFI信息区结构
相对字节偏移量
(十六进制)
字节数 说明[整数皆以little endian方式表示]
00~07 8 GPT头签名“45 46 49 20 50 41 52 54”(ASCII码为“EFI PART”)
08~0B 4 版本号,目前是1.0版,其值是“00 00 01 00”
0C~0F 4 GPT头的大小(字节数),通常为“5C 00 00 00”(0x5C),也就是92字节。
10~13 4 GPT头CRC校验和(计算时把这个字段本身看做零值)
14~17 4 保留,必须为“00 00 00 00”
18~1F 8 EFI信息区(GPT头)的起始扇区号,通常为“01 00 00 00 00 00 00
00”,也就是LBA1。
20~27 8 EFI信息区(GPT头)备份位置的扇区号,也就是EFI区域结束扇区号。通常是整个磁盘最末一个扇区。
28~2F 8 GPT分区区域的起始扇区号,通常为“22 00 00 00 00 00 00
00”(0x22),也即是LBA34。
30~37 8 GPT分区区域的结束扇区号,通常是倒数第34扇区。
38~47 16 磁盘GUID(全球唯一标识符,与UUID是同义词)
48~4F 8 分区表起始扇区号,通常为“02 00 00 00 00 00 00 00”(0x02),也就是LBA2。
50~53 4 分区表总项数,通常限定为“80 00 00 00”(0x80),也就是128个。
54~57 4 每个分区表项占用字节数,通常限定为“80 00 00 00”(0x80),也就是128字节。
58~5B 4 分区表CRC校验和
5C~* * 保留,通常是全零填充

分区项
































分区项结构
相对字节偏移量
(十六进制)
字节数 说明[整数皆以little endian方式表示]
00~0F 16 用GUID表示的分区类型
10~1F 16 用GUID表示的分区唯一标示符
20~27 8 该分区的起始扇区,用LBA值表示。
28~2F 8 该分区的结束扇区(包含),用LBA值表示,通常是奇数。
30~37 8 该分区的属性标志
38~7F 72 UTF-16LE编码的人类可读的分区名称,最大32个字符。

注意,扇区尺寸不能假定为512字节,也就是说,一个扇区内可能存放4个以上的分区项,也可能只存放一个分区项的一部分。也就是说,除了头两个扇区(LBA
0 和 LBA 1)之外,GPT规范仅定义了数据结构的尺寸,而不关心使用多少个扇区进行存储。



























































分区类型
相关操作系统 GUID[little endian] 含义
None 00000000-0000-0000-0000-000000000000 未使用
None 024DEE41-33E7-11D3-9D69-0008C781F39F MBR分区表
None C12A7328-F81F-11D2-BA4B-00A0C93EC93B EFI系统分区[EFI System partition (ESP)]
None 21686148-6449-6E6F-744E-656564454649 BIOS引导分区,其对应的ASCII字符串是"Hah!IdontNeedEFI"。
None D3BFE2DE-3DAF-11DF-BA40-E3A556D89593 Intel Fast Flash (iFFS) partition (for Intel Rapid Start
technology)
Windows E3C9E316-0B5C-4DB8-817D-F92DF00215AE 微软保留分区
Windows EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 基本数据分区
Windows DE94BBA4-06D1-4D40-A16A-BFD50179D6AC Windows恢复环境
Linux 0FC63DAF-8483-4772-8E79-3D69D8477DE4 数据分区。Linux曾经使用和Windows基本数据分区相同的GUID。
这个新的GUID是由 GPT
fdisk 和 GNU Parted 开发者根据Linux传统的"8300"分区代码发明的。
Linux A19D880F-05FC-4D3B-A006-743F0F84911E RAID分区
Linux 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F 交换分区
Linux E6D6D379-F507-44C2-A23C-238F2A3DF928 逻辑卷管理器(LVM)分区
Linux 8DA63339-0007-60C0-C436-083AC8230908 保留

Microsoft还进一步对分区的属性进行了细分:低位4字节表示与分区类型无关的属性,高位4字节表示与分区类型有关的属性。Microsoft目前使用了下列属性:
























分区属性
Bit 解释
0 系统分区(磁盘分区工具必须将此分区保持原样,不得做任何修改)
1 EFI隐藏分区(EFI不可见分区)
2 传统的BIOS的可引导分区标志
60 只读
62 隐藏
63 不自动挂载,也就是不自动分配盘符

GPT 分区详解

时间: 2024-10-13 13:01:01

GPT 分区详解的相关文章

MBR分区和GPT分区详解

什么是磁盘分区? 磁盘分区是使用分区编辑器(partition editor)在磁盘上划分几个逻辑部分,盘片一旦划分成数个分区(Partition),不同类的目录与文件可以存储进不同的分区.越多分区,也就有更多不同的地方,可以将文件的性质区分得更细,按照更为细分的性质,存储在不同的地方以管理文件. 硬盘结构及参数 3D参数(Disk Geometry):CHS(Cylinder/Head/Sector) C-Cylinder(柱面):柱面数表示硬盘每面盘片上有几条磁道,最大为1024(用10个二

SQL Server表分区详解

原文:SQL Server表分区详解 什么是表分区 一般情况下,我们建立数据库表时,表数据都存放在一个文件里. 但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件放在不同的磁盘下由多个cpu进行处理.这样文件的大小随着拆分而减小,还得到硬件系统的加强,自然对我们操作数据是大大有利的. 所以大数据量的数据表,对分区的需要还是必要的,因为它可以提高select效率,还可以对历史数据经行区分存档等.但是数据量少的数据就不要凑这个热

linux下磁盘分区详解

给新硬盘上建立分区时都要遵循以下的顺序:建立主分区→建立扩展分区→建立逻辑分区→激活主分区→格式化所有分区. 一个硬盘的主分区也就是包含操作系统启动所必需的文件和数据的硬盘分区,要在硬盘上安装操作系统,则该硬盘必须得有一个主分区.         扩展分区也就是除主分区外的分区,但它不能直接使用,必须再将它划分为若干个逻辑分区才行.逻辑分区也就是我们平常在操作系统中所看到的D.E.F等盘. 分区从实质上说就是对硬盘的一种格式化.当我们创建分区时,就已经设置好了硬盘的各项物理参数,指定了BIOS系

Fdisk 分区详解

Fdisk 分区详解 来源 http://blog.itpub.net/20674423/viewspace-722812/ 1.             通过Fdisk查看系统分区详细信息: Fdisk –l   详解: [[email protected] ~]# fdisk -l Disk /dev/sda: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders Units = cylinders of

linux磁盘分区详解【转】

本文装载自:http://blog.csdn.net/aaronychen/article/details/2270048#comments 在学习 Linux 的过程中,安装 Linux 是每一个初学者的第一个门槛.在这个过程中间,最大的困惑莫过于给硬盘进行分区.虽然,现在各种发行版本的 Linux 已经提供了友好的图形交互界面,但是很多的人还是感觉无从下手.这其中的原因主要是不清楚 Linux 的分区规定,以及它下面最有效的分区工具― Fdisk 的使用方法. 首先我们要对硬盘分区的基本概念

MySQL的表分区详解

这篇文章主要介绍了MySQL的表分区,例如什么是表分区.为什么要对表进行分区.表分区的4种类型详解等,需要的朋友可以参考下 一.什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了.如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区.当然也可根据其他的条件分区. 二.为什么要对表进行分区为了改善大型表以及具有各种访问模式的表的可伸缩性,可管理性和提高数据库效率.分区的一些优点包括:      1).与单个磁

linux磁盘及分区详解

1.Linux 分区简介 1.1 主分区 vs 扩展分区 硬盘分区表中最多能存储四个分区,但我们实际使用时一般只分为两个分区,一个是主分区(Primary Partion)一个是扩展分区(extended partition),主分区可以马上被使用但不能再分区,扩展分区必须再进行分区后才能使用,也就是说它必须还要进行二次分区.那么由扩展分区再分下去的是什么呢?它就是逻辑分区(Logical Partion),逻辑分区没有数量上限制. 1.2 驱动器标示的含义 对习惯于使用Dos或Windows的

linux磁盘分区详解

如果你想了解linux分区,请务必认真阅读本文.对于初学者来说,linux分区不像windows下那么一目了解 在学习 Linux 的过程中,安装 Linux 是每一个初学者的第一个门槛.在这个过程中间,最大的困惑莫过于给硬盘进行分区.虽然,现在各种发行版本的 Linux 已经提供了友好的图形交互界面,但是很多的人还是感觉无从下手.这其中的原因主要是不清楚 Linux 的分区规定,以及它下面最有效的分区工具― Fdisk 的使用方法. 首先我们要对硬盘分区的基本概念进行一些初步的了解,硬盘的分区

SQL Server分区详解

一.SQL Server分区介绍 在SQL Server中,数据库的所有表和索引都视为已分区表和索引,默认这些表和索引值包含一个分区:也就是说表或索引至少包含一个分区.SQL Server中数据是按水平方式分区,是多行数据映射到单个分区.已经分区的表或者索引,在执行查询或者更新时,将被看作为单个逻辑实体,简单说来利用分区将一个表数据分多个表来存储,对于大数据量的表,将表分成多块查询,若只查询某个分区数据将降低消耗提高效率.需要注意的是单个索引或者表的分区必须位于一个数据库中. 在使用大量数据管理