GPT分区表

2024-09-04 22:48
文章标签 gpt 分区表

本文主要是介绍GPT分区表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 概述

GPT和MBR分区表的详细介绍可以参考UEFI规范,其中,UEFI规范可以从官网下载:www.uefi.org 。为方便大家下载,已放在本站:http://download.csdn.net/detail/u013344915/7019195


本文仅对UEFI规范这一部分“GUID Partition Table (GPT) Disk Layout”做简单的解读,更详细地请参考规范原文。原文只有十几页,看起来也不会很吃力。


2. 缩略语

  • GPT:GUID Paritition Table
  • MBR:Master Boot Record
  • LBA:Logical Boot Record


3. GPT相对MBR的优势

  • Logical Block Addresses (LBAs) are 64 bits (rather than 32 bits).
    LBA是64位编址 ——后面会看到,MBR的编址是4字节,因此只有2TB的硬盘空间可以被寻址;而GPT则是8字节。
  • Supports many partitions (rather than just four primary partitions).
    支持更多的分区,而不是只有4个主分区 ——实际上MBR可以通过扩展分区来绕过4个主分区的限制。
  • Provides both a primary and backup partition table for redundancy.
    提供了primary和backup分区表,即冗余备份 ——对于MBR,如果第一个扇区这个MBR破坏了,那么可能硬盘就无法访问了。
  • Uses version number and size fields for future expansion.
    支持以后的扩展
  • Uses CRC32 fields for improved data integrity.
    通过CRC32来改价数据完整性
  • Defines a GUID for uniquely identifying each partition.
    每个分区有一个唯一的GUID
  • Uses a GUID and attributes to define partition content type.
    GUID和属性来定义分区的内容类型
  • Each partition contains a 36 character human readable name.
    每个分区可以有个易读的名称


4. MBR

MBR分区的格式如下(规范的Chapter 5 - Table 13):


其中PartitionRecord是4个MBR partition record的数组,每个partition record的结构如下(规范的Chapter 5 - Table 14):


通过以上的两个表,注意到如下几个事实:

  • 寻址空间是4个字节:StartingLBA & SizeInLBA,通常一个LBA即一个扇区512字节。所以寻址空间大致是512 * 2^32 = 2TB。如果硬盘空间大于2TB,那么采用MBR就不能把硬盘存储空间用完;
  • 只有4个主分区,或者3个主分区+1个扩展分区:但扩展分区中可以有无限制个逻辑分区。对Windows经常装机的对这几个分区会很熟悉;
  • MBR中的BootCode是BIOS自举之后加载的硬盘中的第一个数据,接下来才进入OS级别的调用。


MBR格式的磁盘布局如下(规范的图16):


考虑到MBR分区的寻址空间的限制,及其他问题,引申出GPT分区。


5. GPT

对于GPT分区,首先注意一个事实就是:为了让其他OS能够识别硬盘,而采用了兼容MBR的设计策略。即GPT第一个LBA或扇区是称为protective MBR的分区,接下来从LBA1才是GPT的主要的内容。结构如下:




即:

  • LBA0:protective MBR,兼容考虑;
  • LBA1:Partition Table Header,即GPT分区表的表头,下面会给出Header的组成结构;
  • LBA2开始是GPT的每个分区记录,规范称为Partition Entry,其个数仅受磁盘空间所限;
  • LBAn:backup GPT Header放在磁盘的最后一个LBA;严格来讲,并不是一个LBA,因为Header部分占用一个LBA,另外的Partition Entries则会占用另外一些LBA空间。


规范的下面这个图形更加形象:



有了上面两个GPT分区结构图,再结合GPT Header和Partition Entry的结构体,就基本理解了GPT分区的情况。


5.1 GPT Header结构体

下面是规范的表17:


在这个表结构中,

  • 有2个CRC32校验:一个是整个Header部分的校验,以及Partition Entries部分的校验。当任何一个分区变化的时候,第二个CRC需要更新,接下来第一个Header级别的CRC也需要更新;
  • Header部分仅指定了partition entry的起始LBA、partition entry的个数、每个partition entry的大小;据此就可以通过寻址读取数据来计算partition entries部分的CRC32;
  • 指出了backup GPT的LBA,即AlternateLBA;
  • 所有LBA寻址都是8个字节,如MyLBA、AlternateLBA、FirstUsableLBA,等等其他的xxxLBA。假定每个扇区是512字节,那么GPT支持的硬盘空间大致就是512 * 2^64 = 8ZB

5.2 GPT Partition Entry

对应规范的表18.


6. 示例代码

  • Windows:Windows上面读磁盘分区表
  • Linux:待补充


7. 延伸阅读

  • Windows的磁盘管理、文件系统等:http://msdn.microsoft.com/en-us/library/windows/desktop/aa363978%28v=vs.85%29.aspx
  • 分区类型,即MBR中的OSType:http://www.win.tue.nl/~aeb/partitions/partition_types.html

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



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

相关文章

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

GPT系列之:GPT-1,GPT-2,GPT-3详细解读

一、GPT1 论文:Improving Language Understanding by Generative Pre-Training 链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf 启发点:生成loss和微调loss同时作用,让下游任务来适应预训

速通GPT-3:Language Models are Few-Shot Learners全文解读

文章目录 论文实验总览1. 任务设置与测试策略2. 任务类别3. 关键实验结果4. 数据污染与实验局限性5. 总结与贡献 Abstract1. 概括2. 具体分析3. 摘要全文翻译4. 为什么不需要梯度更新或微调⭐ Introduction1. 概括2. 具体分析3. 进一步分析 Approach1. 概括2. 具体分析3. 进一步分析 Results1. 概括2. 具体分析2.1 语言模型

MiniCPM-V: A GPT-4V Level MLLM on Your Phone

MiniCPM-V: A GPT-4V Level MLLM on Your Phone 研究背景和动机 现有的MLLM通常需要大量的参数和计算资源,限制了其在实际应用中的范围。大部分MLLM需要部署在高性能云服务器上,这种高成本和高能耗的特点,阻碍了其在移动设备、离线和隐私保护场景中的应用。 文章主要贡献: 提出了MiniCPM-V系列模型,能在移动端设备上部署的MLLM。 性能优越:

PostgreSQL分区表(partitioning)应用实例详解

https://www.jb51.net/article/97937.htm   PostgreSQL分区表(partitioning)应用实例详解  更新时间:2016年11月22日 10:25:58   作者:小灯光环    我要评论   这篇文章主要为大家详细介绍了PostgreSQL分区表(partitioning)应用实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

OpenAI澄清:“GPT Next”不是新模型。

不,”GPT Next” 并不是OpenAI的下一个重要项目。 本周早些时候,OpenAI 日本业务的负责人长崎忠男在日本 KDDI 峰会上分享了一场演讲,似乎在暗示一个名为 “GPT Next” 的新模型即将出现。 但OpenAI的一位发言人已向Mashable证实,幻灯片中用引号括起来的”GPT Next”一词只是一个假设性占位符,旨在表明OpenAI的模型如何随着时间呈指数级进化。发言人

AI跟踪报道第55期-新加坡内哥谈技术-本周AI新闻: GPT NEXT (x100倍)即将在2024推出

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/ 点击下面视频观看在B站本周AI更新: B 站 链接 观看: 本周AI

什么是GPT-3的自回归架构?为什么GPT-3无需梯度更新和微调

文章目录 知识回顾GPT-3的自回归架构何为自回归架构为什么架构会影响任务表现自回归架构的局限性与双向模型的对比小结 为何无需梯度更新和微调为什么不需要怎么做到不需要 🍃作者介绍:双非本科大四网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发,目前开始人工智能领域相关知识的学习 🦅个人主页:@逐梦苍穹 📕所属专栏:人工智能 🌻gitee地址:x

win10 gpt分区+uefi引导 卸载双系统ubuntu

1、首先暴力卸载ubuntu 在win10里面磁盘管理中找到对应的linux磁盘分区 删除卷OK 2、重启 出现下面(根据机型不同界面可能不一样 ) 3、exit 退出grub引导 进入uefi引导  选择win10引导项 (当然你要是一直按着进入bios boot的那个按键的话 也不用看第二步了 直接选择windows启动项进去 dell的话是F12) 4、进入

【硬刚Hive】Hive面试题(3):如何用sqoop将hive中分区表的分区字段导入到MySQL中

问题分析:  1.hive中分区表其底层就是HDFS中的多个目录下的单个文件,hive导出数据本质是将HDFS中的文件导出 2.hive中的分区表,因为分区字段(静态分区)不在文件中,所以在sqoop导出的时候,无法将分区字段进行直接导出 思路:在hive中创建一个临时表,将分区表复制过去后分区字段转换为普通字段,然后再用sqoop将tmp表导出即实现需求 步凑如下: 1.创建目标表(