GUID(GPT)分区表详解

2024-05-31 18:18
文章标签 详解 gpt 分区表 guid

本文主要是介绍GUID(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~078GPT头签名“45 46 49 20 50 41 52 54”(ASCII码为“EFI PART”)
08~0B4版本号,目前是1.0版,其值是“00 00 01 00”
0C~0F4GPT头的大小(字节数),通常为“5C 00 00 00”(0x5C),也就是92字节。
10~134GPT头CRC校验和(计算时把这个字段本身看做零值)
14~174保留,必须为“00 00 00 00”
18~1F8EFI信息区(GPT头)的起始扇区号,通常为“01 00 00 00 00 00 00 00”,也就是LBA1。
20~278EFI信息区(GPT头)备份位置的扇区号,也就是EFI区域结束扇区号。通常是整个磁盘最末一个扇区。
28~2F8GPT分区区域的起始扇区号,通常为“22 00 00 00 00 00 00 00”(0x22),也即是LBA34。
30~378GPT分区区域的结束扇区号,通常是倒数第34扇区。
38~4716磁盘GUID(全球唯一标识符,与UUID是同义词)
48~4F8分区表起始扇区号,通常为“02 00 00 00 00 00 00 00”(0x02),也就是LBA2。
50~534分区表总项数,通常限定为“80 00 00 00”(0x80),也就是128个。
54~574每个分区表项占用字节数,通常限定为“80 00 00 00”(0x80),也就是128字节。
58~5B4分区表CRC校验和
5C~**保留,通常是全零填充

分区项

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

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

分区类型
相关操作系统GUID[little endian]含义
None00000000-0000-0000-0000-000000000000未使用
None024DEE41-33E7-11D3-9D69-0008C781F39FMBR分区表
NoneC12A7328-F81F-11D2-BA4B-00A0C93EC93BEFI系统分区[EFI System partition (ESP)],必须是VFAT格式
NoneBC13C2FF-59E6-4262-A352-B275FD6F7172扩展boot分区,必须是VFAT格式
None21686148-6449-6E6F-744E-656564454649BIOS引导分区,其对应的ASCII字符串是"Hah!IdontNeedEFI"。
NoneD3BFE2DE-3DAF-11DF-BA40-E3A556D89593Intel Fast Flash (iFFS) partition (for Intel Rapid Start technology)
WindowsE3C9E316-0B5C-4DB8-817D-F92DF00215AE微软保留分区
WindowsEBD0A0A2-B9E5-4433-87C0-68B6B72699C7基本数据分区
WindowsDE94BBA4-06D1-4D40-A16A-BFD50179D6ACWindows恢复环境
Linux0FC63DAF-8483-4772-8E79-3D69D8477DE4数据分区。Linux曾经使用和Windows基本数据分区相同的GUID。
这个新的GUID是由 GPT fdisk 和 GNU Parted 开发者根据Linux传统的"8300"分区代码发明的。
Linux44479540-F297-41B2-9AF7-D131D5F0458Ax86根分区 (/) 这是systemd的发明,可用于无fstab时的自动挂载
Linux4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709x86-64根分区 (/) 这是systemd的发明,可用于无fstab时的自动挂载
Linux69DAD710-2CE4-4E3C-B16C-21A1D49ABED3ARM32根分区 (/) 这是systemd的发明,可用于无fstab时的自动挂载
LinuxB921B045-1DF0-41C3-AF44-4C6F280D3FAEAArch64根分区 (/) 这是systemd的发明,可用于无fstab时的自动挂载
Linux3B8F8425-20E0-4F3B-907F-1A25A76F98E8服务器数据分区(/srv) 这是systemd的发明,可用于无fstab时的自动挂载
Linux933AC7E1-2EB4-4F13-B844-0E14E2AEF915HOME分区 (/home) 这是systemd的发明,可用于无fstab时的自动挂载
Linux0657FD6D-A4AB-43C4-84E5-0933C84B4F4F交换分区(swap) 不是systemd的发明,但同样可用于无fstab时的自动挂载
LinuxA19D880F-05FC-4D3B-A006-743F0F84911ERAID分区
LinuxE6D6D379-F507-44C2-A23C-238F2A3DF928逻辑卷管理器(LVM)分区
Linux8DA63339-0007-60C0-C436-083AC8230908保留

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

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

这篇关于GUID(GPT)分区表详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1018678

相关文章

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

CSS place-items: center解析与用法详解

《CSSplace-items:center解析与用法详解》place-items:center;是一个强大的CSS简写属性,用于同时控制网格(Grid)和弹性盒(Flexbox)... place-items: center; 是一个强大的 css 简写属性,用于同时控制 网格(Grid) 和 弹性盒(F

spring中的ImportSelector接口示例详解

《spring中的ImportSelector接口示例详解》Spring的ImportSelector接口用于动态选择配置类,实现条件化和模块化配置,关键方法selectImports根据注解信息返回... 目录一、核心作用二、关键方法三、扩展功能四、使用示例五、工作原理六、应用场景七、自定义实现Impor

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五