文档详情

GPT和UEFI详解

206****923
实名认证
店铺
DOCX
78.52KB
约7页
文档ID:41490990
GPT和UEFI详解_第1页
1/7

GPTGPT 和和 UEFIUEFI 详解详解我们的电脑想要快速开机,需要具备三个条件:一是主板要支持 UEFI,二是操作系统要支持 UEFI(比如 Win8),最后就是硬盘需要采用 GPT 分区下面我们就来经历一次二万五千里长征的学习,仔细剖析一下什么是 GPT,什么又是 UEFI?GPT 是英文 GUID Partition Table Format 的缩写形式,GUID 又是英文 Globally Unique Identifier 的缩写形式,所以 GPT 的中文意思直译为“全局唯一标示磁盘分区表格式”,但也有人,特别在许多磁盘管理软件中经常又把它称为“GUID 分区表格式”,实质都是一样的在此我把这些名词说清楚了,以后大家就不要被那些乱七八糟的称法所迷惑了1.GPT 分区详解分区详解1.1.保护保护 MBR保护保护 MBR 包含一个 DOS 分区表(LBA0),只包含一个类型值为 0xEE 的分区项,在小于 2TB 的磁盘上,大小为整个磁盘;在更大的磁盘上,它的大小固定为 2TB它的作用是阻止不能识别 GPT 分区的磁盘工具试图对其进行格式化等操作,所以该扇区被称为“保护 MBR”。

实际上,EFI 根本不使用这个分区表图 1 GUID 分区表模型图 2 GUID 分区表1.2.EFI 部分部分EFI 部分又可以分为 4 个区域:EFI 信息区(GPT 头)、分区表、GPT 分区、备份区域1.1.1. EFI 信息区(信息区(GPT 头)头)EFI 信息区,也称为 GPT 头,位于磁盘的 1 号扇区(LBA1),通常也只占用这个单一扇区(512 字节)其作用是定义分区表的位置和大小GPT 头还包含头和分区表的校验和,这样就可以及时发现错误EFI 信息区的数据结构具体如表 1 所示表表 1 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),也即是 LBA3430~378GPT 分区区域的结束扇区号,通常是倒数第 34 扇区38~4716磁盘 GUID(全球唯一标识符,与 UUID 是同义词)48~4F8分区表起始扇区号,通常为“02 00 00 00 00 00 00 00”(0x02),也就是 LBA250~534分区表总项数,通常限定为“80 00 00 00”(0x80),也就是 128 个54~574每个分区表项占用字节数,通常限定为“80 00 00 00”(0x80),也就是 128 字节58~5B4分区表 CRC 校验和5C~**保留,通常是全零填充1.1.2. GPT 分区表分区表分区表分区表区域通常包含 128 个分区项分区项,每个分区项通常占用 128 字节这个区域是由前面所述的 GPT 头定义的,一般占用磁盘 LBA2~LBA33 扇区分区表中的每个分区项由起始地址、结束地址、类型值、名字、属性标志、GUID 值组成。

分区表建立后,128 位的 GUID 对系统来说是唯一的每个分区项的数据结构具体如表 2 所示表表 2 分区项结构分区项结构相对字节偏移量相对字节偏移量 (十六进制十六进制)字节数字节数说明说明[整数皆以整数皆以 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 规范仅定义了数据结构的尺寸,而不关心使用多少规范仅定义了数据结构的尺寸,而不关心使用多少个扇区进行存储个扇区进行存储分区类型的取值情况如表 3 所示表表 3 分区类型分区类型相关操作相关操作 系统系统GUID[little endian]含义含义None00000000-0000-0000-0000-000000000000未使用None024DEE41-33E7-11D3-9D69-0008C781F39FMBR 分区表NoneC12A7328-F81F-11D2-BA4B-00A0C93EC93BEFI 系统分区[EFI System partition (ESP)]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 时的自动挂载Linux3B8F8425-20E0-4F3B-907F-1A25A76F98E8Server Data (/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 目前使用了如表 4 所列的属性表表 4 Microsoft 所用的分区属性所用的分区属性Bit解释解释0系统分区(磁盘分区工具必须将此分区保持原样,不得做任何修改)1EFI 隐藏分区(EFI 不可见分区)2传统的 BIOS 的可引导分区标志60只读62隐藏63不自动挂载,也就是不自动分配盘符1.1.3. GPT 分区分区这是最大的区域,由分配给分区的扇区组成这个区域的起始和结束地址由GPT 头定义1.1.4. 备份区备份区备份区域位于磁盘的尾部,包含 GPT 头和分区表的备份它占用 GPT 结束扇区和 EFI 结束扇区之间的 33 个扇区其中最后一个扇区用来备份 1 号扇区的 EFI 信息,其余的 32 个扇区用来备份 LBA2~LBA33 扇区的分区表转载转载网址网址。

下载提示
相似文档
正为您匹配相似的精品文档