GPT

本文深入探讨了GUID磁盘分区表(GPT)的概念,它是EFI标准的一部分,旨在替代MBR分区表,支持更大的磁盘容量。文章详细介绍了GPT的结构布局,包括其在硬盘上的位置、分区信息的存储方式以及如何处理不同大小的扇区。此外,还讨论了GPT在操作系统中的支持情况,以及如何减少分区表损坏的风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://baike.baidu.com/item/GPT/15413476?fr=aladdin

GUID磁盘分区表(GUID Partition Table,缩写:GPT)其含义为“全局唯一标识磁盘分区表”,是一个实体硬盘的分区表的结构布局的标准。它是可扩展固件接口(EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分,被用于替代BIOS系统中的一64bits来存储逻辑块地址和大小信息的主开机纪录(MBR)分区表。

GUID磁盘分区表(GUIDPartition Table,缩写:GPT)是一个实体硬盘的分区表的结构布局的标准。它是可扩展固件接口(EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分,被用于替代BIOS系统中的一个扇区来存储逻辑块地址和大小信息的主开机纪录(MBR)分区表。对于那些扇区为512字节的磁盘,MBR分区表不支持容量大于1TB(1 × 10 ^ 12字节)的分区,然而,一些硬盘制造商(诸如希捷和西部数据)注意到了这个局限性,并且将他们的容量较大的磁盘升级到了4KB的扇区,这意味着MBR的有效容量上限提升到了16 TB。 这个看似“正确的”解决方案,在临时地降低了人们对改进磁盘分配表的需求的同时,也给市场带来了关于在有较大的块(block)的设备上从BIOS启动时,如何最佳的划分磁盘分区的困惑。GPT分配64bits给逻辑块地址,因而使得最大分区大小在2 ^ 64-1个扇区成为了可能。对于每个扇区大小为512字节的磁盘,那意味着可以有9.4ZB(9.4 x 10 ^ 21 字节)或18 E 个512字节(9,444,732,965,739,290,426,880字节 或 18,446,744,073,709,551,615(2 ^ 64-1)个扇区 x 512(=2^9)字节每扇区)。
截止至2010年,大多数操作系统对GPT均有所支持,尽管包括Mac OS X和Windows在内的一些仅支持在EFI基础上自GPT分区启动,见#操作系统支持。
GPT分区表的结构。此例中,每个逻辑块(LBA)为512字节,每个分区的记录为128字节。负数的LBA地址表示从最后的块开始倒数,−1表示最后一个块。

在这里插入图片描述

在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。
**跟现代的MBR一样,GPT也使用逻辑区块位址(LBA)取代了早期的CHS寻址方式。**传统MBR信息存储于LBA 0,GPT头存储于LBA 1,接下来才是分区表本身。64位Windows操作系统使用16,384字节(或32扇区)作为GPT分区表,接下来的LBA 34是硬盘上第一个分区的开始。
苹果公司曾经警告说:“不要假定所有设备的块大小都是512字节。”一些现代的存储设备如固态硬盘可能使用1024字节的块,一些磁光盘(MO)可能使用2048字节的扇区(但是磁光盘通常是不进行分区的)。一些硬盘生产商在计划生产4096字节一个扇区的硬盘,但截至2010年初,这种新硬盘使用固件对操作系统伪装成512字节一个扇区。
使用英特尔架构的苹果机也使用GPT。
为了减少分区表损坏的风险,GPT在硬盘最后保存了一份分区表的副本。

传统MBR编辑
(LBA 0)
在GPT分区表的最开头,处于兼容性考虑仍然存储了一份传统的MBR,用来防止不支持GPT的硬盘管理工具错误识别并破坏硬盘中的数据,这个MBR也叫做保护MBR。在支持从GPT启动的操作系统中,这里也用于存储第一阶段的启动代码。在这个MBR中,只有一个标识为0xEE的分区,以此来表示这块硬盘使用GPT分区表。不能识别GPT硬盘的操作系统通常会识别出一个未知类型的分区,并且拒绝对硬盘进行操作,除非用户特别要求删除这个分区。这就避免了意外删除分区的危险。另外,能够识别GPT分区表的操作系统会检查保护MBR中的分区表,如果分区类型不是0xEE或者MBR分区表中有多个项,也会拒绝对硬盘进行操作。
在使用MBR/GPT混合分区表的硬盘中,这部分存储了GPT分区表的一部分分区(通常是前四个分区),可以使不支持从GPT启动的操作系统从这个MBR启动,启动后只能操作MBR分区表中的分区。如Boot Camp就是使用这种方式启动Windows。\

分区表头编辑
(LBA 1)
分区表头定义了硬盘的可用空间以及组成分区表的项的大小和数量。在使用64位Windows Server 2003的机器上,最多可以创建128个分区,即分区表中保留了128个项,其中每个都是128字节。(EFI标准要求分区表最小要有16,384字节,即128个分区项的大小)
分区表头还记录了这块硬盘的GUID,记录了分区表头本身的位置和大小(位置总是在LBA 1)以及备份分区表头和分区表的位置和大小(在硬盘的最后)。它还储存着它本身和分区表的CRC32校验。固件、引导程序和操作系统在启动时可以根据这个校验值来判断分区表是否出错,如果出错了,可以使用软件从硬盘最后的备份GPT中恢复整个分区表,如果备份GPT也校验错误,硬盘将不可使用。所以GPT硬盘的分区表不可以直接使用16进制编辑器修改。
主分区表和备份分区表的头分别位于硬盘的第二个扇区(LBA 1)以及硬盘的最后一个扇区。备份分区表头中的信息是关于备份分区表的。

分区表项编辑
(LBA 2–33)
GPT分区表使用简单而直接的方式表示分区。一个分区表项的前16字节是分区类型GUID。例如,EFI系统分区的GUID类型是{C12A7328-F81F-11D2-BA4B-00A0C93EC93B}。接下来的16字节是该分区唯一的GUID(这个GUID指的是该分区本身,而之前的GUID指的是该分区的类型)。再接下来是分区起始和末尾的64位LBA编号,以及分区的名字和属性。

### GPT 模型概述 GPT(Generative Pre-trained Transformer)是由 OpenAI 开发的一系列大型语言模型,旨在通过预训练和微调的方式生成高质量的自然语言文本[^2]。这些模型基于 Transformer 架构构建,并利用了大量的无监督数据进行预训练,在多种下游任务中表现出卓越性能。 最新版本的 GPT-4o 是 OpenAI 近期发布的一个重要更新,它进一步提升了模型的能力范围和效率[^1]。然而需要注意的是,具体的技术细节可能尚未完全公开,因此部分功能仍需等待官方文档确认。 #### Python 实现中的核心组件 对于开发者而言,理解如何设计并优化 GPT 模型至关重要。以下是几个主要方面: 1. **Transformer 架构**: GPT 的基础是 Transformer 结构,这是一种能够高效捕捉序列间依赖关系的神经网络架构。该结构由多个堆叠层组成,每层都包含了多头注意力机制以及前馈神经网络[^3]。 2. **注意力机制**: 注意力机制允许模型根据不同位置的重要性分配权重,从而更好地捕获上下文信息。这是使 GPT 能够生成连贯且语义丰富的句子的关键技术之一[^3]。 3. **模型训练与优化**: 训练过程通常涉及大量未标注的数据集用于自监督学习阶段;随后针对特定应用场景可以采用有标签的小规模数据集完成迁移学习或微调操作。为了提高计算资源利用率,还可以引入混合精度训练等策略来加速收敛速度[^3]。 下面展示了一个简单的基于 PyTorch 的 GPT 模型初始化代码片段: ```python import torch.nn as nn from transformers import GPT2Tokenizer, GPT2LMHeadModel tokenizer = GPT2Tokenizer.from_pretrained('gpt2') model = GPT2LMHeadModel.from_pretrained('gpt2') def generate_text(prompt, max_length=50): inputs = tokenizer.encode(prompt, return_tensors='pt') outputs = model.generate(inputs, max_length=max_length) result = tokenizer.decode(outputs[0], skip_special_tokens=True) return result ``` 此脚本加载了预训练好的 `GPT2` 权重文件,并定义了一种基本的文字生成功能。用户可以通过调整参数来自定义输出长度或其他特性。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值