博舍

GPT分区表详解 分区表类型gpt

GPT分区表详解

GPT概述

 

全局唯一标识分区表(GUIDPartitionTable,缩写:GPT)是一个实体硬盘的分区结构。它是可扩展固件接口标准的一部分,用来替代BIOS中的主引导记录分区表。传统的主启动记录(MBR)磁盘分区支持最大卷为2.2TB(terabytes),每个磁盘最多有4个主分区(或3个主分区,1 个扩展分区和无限制的逻辑驱动器)。与MBR分区方法相比,GPT具有更多的优点,因为它允许每个磁盘有多达128个分区,支持高达18 千兆兆字节(exabytes,1EB=10^6TB)的卷大小,允许将主磁盘分区表和备份磁盘分区表用于冗余,还支持唯一的磁盘和分区ID (GUID)。与MBR 分区的磁盘不同,GPT的分区信息是在分区中,而不象MBR一样在主引导扇区。为保护GPT不受MBR类磁盘管理软件的危害,GPT在主引导扇区建立了一个保护分区(Protective MBR)的MBR分区表,这种分区的类型标识为0xEE,这个保护分区的大小在Windows下为128MB,MacOS X下为200MB,在Window磁盘管理器里名为GPT保护分区,可让MBR类磁盘管理软件把GPT看成一个未知格式的分区,而不是错误地当成一个未分区的磁盘。另外,GPT分区磁盘有多余的主要及备份分区表来提高分区数据结构的完整性。

 

在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。跟现代的MBR一样,GPT也使用逻辑区块地址(LBA)取代了早期的CHS寻址方式。传统MBR信息存储于LBA0,GPT头存储于LBA1,接下来才是分区表本身。64位Windows操作系统使用16,384字节(或32扇区)作为GPT分区表,接下来的LBA34是硬盘上第一个分区的开始。为了减少分区表损坏的风险,GPT在硬盘最后保存了一份分区表的副本。与主启动记录(MBR)分区方法相比,GPT具有更多的优点,因为它允许每个磁盘有多达128个分区,支持高达18千兆兆字节的卷大小,允许将主磁盘分区表和备份磁盘分区表用于冗余,还支持唯一的磁盘和分区ID(GUID)。

 

GPT结构

 

GPT的结构见下图

 

 

传统MBR(LBA0)在GPT分区表的最开头,处于兼容性考虑仍然存储了一份传统的MBR,用来防止不支持GPT的硬盘管理工具错误识别并破坏硬盘中的数据,这个MBR也叫做保护MBR。在支持从GPT启动的操作系统中,这里也用于存储第一阶段的启动代码。在这个MBR中,只有一个标识为0xEE的分区,以此来表示这块硬盘使用GPT分区表。不能识别GPT硬盘的操作系统通常会识别出一个未知类型的分区,并且拒绝对硬盘进行操作,除非用户特别要求删除这个分区。这就避免了意外删除分区的危险。另外,能够识别GPT分区表的操作系统会检查保护MBR中的分区表,如果分区类型不是0xEE或者MBR分区表中有多个项,也会拒绝对硬盘进行操作。在使用MBR/GPT混合分区表的硬盘中,这部分存储了GPT分区表的一部分分区(通常是前四个分区),可以使不支持从GPT启动的操作系统从这个MBR启动,启动后只能操作MBR分区表中的分区。如BootCamp就是使用这种方式启动Windows。分区表头(LBA1)分区表头定义了硬盘的可用空间以及组成分区表的项的大小和数量。在使用64位WindowsServer2003的机器上,最多可以创建128个分区,即分区表中保留了128个项,其中每个都是128字节。(EFI标准要求分区表最小要有16,384字节,即128个分区项的大小)分区表头还记录了这块硬盘的GUID,记录了分区表头本身的位置和大小(位置总是在LBA1)以及备份分区表头和分区表的位置和大小(在硬盘的最后)。它还储存着它本身和分区表的CRC32校验。固件、引导程序和操作系统在启动时可以根据这个校验值来判断分区表是否出错,如果出错了,可以使用软件从硬盘最后的备份GPT中恢复整个分区表,如果备份GPT也校验错误,硬盘将不可使用。所以GPT硬盘的分区表不可以直接使用16进制编辑器修改。分区表头的格式如下

 

起始字节长度内容08字节签名("EFIPART",4546492050415254)84字节修订(在1.0版中,值是00000100)124字节分区表头的大小(单位是字节,通常是92字节,即5C000000)164字节分区表头(第0-91字节)的CRC32校验,在计算时,把这个字段作为0处理,需要计算出分区串行的CRC32校验后再计算本字段204字节保留,必须是0248字节当前LBA(这个分区表头的位置)328字节备份LBA(另一个分区表头的位置)408字节第一个可用于分区的LBA(主分区表的最后一个LBA+1)488字节最后一个可用于分区的LBA(备份分区表的第一个LBA−1)5616字节硬盘GUID(在类UNIX系统中也叫UUID)728字节分区表项的起始LBA(在主分区表中是2)804字节分区表项的数量844字节一个分区表项的大小(通常是128)884字节分区串行的CRC32校验92*保留,剩余的字节必须是0(对于512字节LBA的硬盘即是420个字节)

 

主分区表和备份分区表的头分别位于硬盘的第二个扇区(LBA1)以及硬盘的最后一个扇区。备份分区表头中的信息是关于备份分区表的。

 

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

 

起始字节长度内容016字节分区类型GUID1616字节分区GUID328字节起始LBA(小端序)408字节末尾LBA488字节属性标签(如:60表示“只读”)5672字节分区名(可以包括36个UTF-16(小端序)字符)

 

parted概述

 

上文介绍了GPT,由于常见的fdisk不支持GPT(在硬盘容量大于2Tb的时候无法使用fdisk进行分区的管理),故在IA64平台上管理磁盘时parted还是相当实用的,GNUParted具有丰富的功能,它除了能够进行分区的添加、删除等常见操作外,还可以进行移动分区、创建文件系统、调整文件系统大小、复制文件系统等操作。它可以处理最常见的分区格式,包括:ext2,ext3,fat16,fat32,NTFS,ReiserFS,JFS,XFS,UFS,HFS,以及Linux交换分区。parted命令格式parted有两种运行模式:命令行模式和交互模式。与fdisk的交互模式交互模式不同,在parted的交互模式下执行命令,一旦按回车键确认,命令就马上执行,对磁盘的更改就立刻生效。parted命令的常用格式是:1、#parted[选项]2、#parted[选项][]格式(1)用于进入parted的交互模式,在该模式下输入parted的子命令对指定的硬盘进行分区等操作。quit命令用于退出交互模式。格式(2)直接在命令行方式下对指定的硬盘进行分区等操作。其中常用的选项为:-h,––help—显示求助信息-i,––interactive—在必要时提示用户-l,––list—显示所有磁盘设备的分区表-s,––script—从不提示用户-v,––version—显示版本无论哪种模式,在parted中都可以使用若干子命令,见下表。

 

命令说明help[COMMAND]打印命令的帮助信息,或指定命令的帮助信息print [free|NUMBER|all]  显示分区表,指定编号的分区,或所有设备的分区表mkpartPART-TYPE[FSTYPE]STARTEND创建新分区。PART-TYPE是以下类型之一:primary(主分区)、extended(扩展分区)、logical(逻辑分区)。START和END是新分区开始和结束的具体位置。rmNUMBER删除指定编号NUMBER的分区。setNUMBERFLAGSTATE对指定编号NUMBER的分区设置分区标记FLAG。对于PC常用的msdos分区表来说,分区标记FLAG可有如下值:”boot”(引导),“hidden”(隐藏),“raid”(软RAID磁盘阵),“lvm”(逻辑卷),“lba”(LBA,LogicBlockAddressing模式)。状态STATE的取值是:on或offunitUNIT设置默认输出时表示磁盘大小的单位为UNIT,UNIT的常用取值可以为:‘MB’、‘GB’、‘%’(占整个磁盘设备的百分之多少)、‘compact’(人类易读方式,类似于df命令中-h参数的用)、‘s’(扇区)、‘cyl’(柱面)、‘chs’(柱面cylinders:磁头heads:扇区sectors的地址)mkfsNUMBERFS-TYPE对指定编号NUMBER的分区创建指定类型FS-TYPE的文件系统。mkpartfsPART-TYPEFSTYPESTARTEND创建新分区同时创建文件系统。FS-TYPE是以下类型一:ext2、fat16、fat32、linuxswap、NTFS、reiserfs、ufs等cp[FROM-DEVICE]FROM-NUMBERTONUMBER将分区FROM-NUMBER上的文件系统完整地复制到分区TO-NUMBER中,作为可选项还可以指定一个来源硬盘的设备名称FROM-DEVICE,若省略则在当前设备上进行复制。moveNUMBERSTARTEND将指定编号NUMBER的分区移动到从START开始END结束的位置上。注意:(1)只能将分区移动到空闲空间中。(2)虽然分区被移动了,但它的分区编号是不会改变的resizeNUMBERSTARTEND对指定编号NUMBER的分区调整大小。分区的开始位置和结束位置由START和END决定checkNUMBER检查指定编号NUMBER分区中的文件系统是否有什么错误rescueSTARTEND恢复靠近位置START和END之间的分区mklabel,mktableLABELTYPE创建一个新的LABEL-TYPE类型的空磁盘分区表,对于PC而言msdos是常用的LABELTYPE。若是用GUID分区表,LABEL-TYPE应该为gpt

 

参考至:http://blog.sina.com.cn/s/blog_6ca646a00100z0uq.html           http://goward.jimdo.com/2010/07/19/linux-parted%E5%88%86%E5%8C%BA%E5%B7%A5%E5%85%B7%E4%BD%BF%E7%94%A8%E8%AF%A6%E8%A7%A3/

 

           http://zh.wikipedia.org/wiki/GUID%E7%A3%81%E7%A2%9F%E5%88%86%E5%89%B2%E8%A1%A8           http://baike.baidu.com/view/493745.htm

 

本文原创,转载请注明出处、作者如有错误,欢迎指正邮箱:czmcj@163.com

 

分区表格式科普:MBR

热点推荐-ADs都叫兽™备份还原-安全快速地把系统迁移至SSD

自动4K对齐将系统迁移至SSD时,自动进行4K对齐以提高SSD性能。

支持GPT和MBR迁移系统时,为SSD自动匹配合适的分区格式。

支持NTFS和FAT32可迁移不同的文件系统格式,一步到位。

备份速度快可高达3,000MB/分钟的备份速度。

全方位备份方案支持系统迁移/系统备份/分区备份/硬盘备份/文件备份/磁盘克隆。

自动4K对齐提高SSD性能

支持GPT和MBR自动匹配分区格式

支持NTFS和FAT32可迁移不同的文件系统

免费试用免费试用目前已有2000位用户免费体验!

硬盘分区表类型(MBR、GPT)选择很重要

前段时间,小编买了一块3T的机械硬盘用于存放视频教程,买回来第一件事就是给硬盘分区,小编只想分一个3T大的区就行了,默认情况下,我的分区表类型选择了MBR,但是,格式化后发现根本不能分一个区,这到底是怎么回事呢?其实,这就是硬盘分区表MBR和GPT的区别。

那么MBR和GPT到底有什么区别呢?

MBR分区表(MasterBootRecord的缩写),即硬盘主引导记录分区表,它只支持容量在2.1TB以下的硬盘,超过2.1TB的硬盘只能管理2.1TB,最多只支持4个主分区或三个主分区和一个扩展分区,扩展分区下可以有多个逻辑分区。

GPT分区表(GUIDPartitionTable的缩写),即全局唯一标识分区表,GPT对分区数量没有限制,但Windows最大仅支持128个GPT分区,GPT可管理硬盘大小达到了18EB。只有基于UEFI平台的主板才支持GPT分区引导启动。

这就是电脑学习小编为什么买的一个3T的硬盘无法用MBR分成一个盘的原因了,你有遇到吗?

最近有小伙伴在后台留言问小编,win10系统选择什么分区表类型?其实这个和系统没有太大关系,只和启动方式有关系。

硬盘分区格式为MBR格式,启动模式应该为Legacy;(以前电脑基本采用这种方式)

硬盘分区格式为GUID(GPT)格式,启动模式应该为UEFI。(现在新电脑基本采用这种方式)

MBR主引导记录早在1983年IBM PC DOS 2.0中就已经提出,又叫做主引导扇区。之所以叫“主引导记录”,是因为它是存在于驱动器开始部分的一个特殊的启动扇区。这个扇区包含了已安装的操作系统的启动加载器和驱动器的逻辑分区信息。是计算机开机后访问硬盘时所必须要读取的首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。

MBR是由分区程序(如Fdisk,Parted)所产生的,它不依赖任何操作系统,而且硬盘引导程序也是可以改变的,从而能够实现多系统引导。

主引导扇区是硬盘的第一扇区。它由三个部分组成,主引导记录MBR、硬盘分区表DPT和硬盘有效标志。在总共512字节的主引导扇区里MBR占446个字节,偏移地址0000H–0088H),它负责从活动分区中装载,并运行系统引导程序;第二部分是Partition table区(DPT分区表),占64个字节;第三部分是Magic number,占2个字节。

在Linux系统中,硬盘分区命名为sda1-sda4或者hda1-hda4(其中a表示硬盘编号可能是a、b、c等等)。在MBR硬盘中,分区号1-4是主分区(或者扩展分区),逻辑分区号只能从5开始。

在MBR分区表中,一个分区最大的容量为2T,且每个分区的起始柱面必须在这个disk的前2T内。你有一个3T的硬盘,根据要求你至少要把它划分为2个分区,且最后一个分区的起始扇区要位于硬盘的前2T空间内。如果硬盘太大则必须改用GPT。

全局唯一标识分区表(GUIDPartitionTable,缩写:GPT)是一个实体硬盘的分区结构。它的推出是和UEFI BIOS相辅相成的,鉴于MBR的磁盘容量和分区数量已经不能满足硬件发展的需求,GPT首要的任务就是突破了2.2T分区的限制,最大支持18EB的分区。它是EFI(可扩展固件接口标准)的一部分,用来替代BIOS中的主引导记录分区表。但因为MBR分区表不支持容量大于2.2TB(2.2×1012字节)的分区,所以也有一些BIOS系统为了支持大容量硬盘而用GPT分区表取代MBR分区表。

在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。

而在分区数量上,GPT会为每一个分区分配一个全局唯一的标识符,理论上GPT支持无限个磁盘分区,不过在Windows系统上由于系统的限制,最多只能支持128个磁盘分区,基本可以满足所有用户的存储需求。在每一个分区上,这个标识符是一个随机生成的字符串,可以保证为地球上的每一个GPT分区都分配完全唯一的标识符。

与支持最大卷为2TB(Terabytes)并且每个磁盘最多有4个主分区(或3个主分区,1个扩展分区和无限制的逻辑驱动器)的MBR磁盘分区的样式相比,GPT磁盘分区样式支持最大卷为18EB(Exabytes)(1EB=1048576TB)并且每磁盘的分区数没有上限,只受到操作系统限制(由于分区表本身需要占用一定空间,最初规划硬盘分区时,留给分区表的空间决定了最多可以有多少个分区,IA-64版Windows限制最多有128个分区,这也是EFI标准规定的分区表的最小尺寸)。与MBR分区的磁盘不同,至关重要的平台操作数据位于分区,而不是位于非分区或隐藏扇区。另外,GPT分区磁盘有备份分区表来提高分区数据结构的完整性。

其中转换为GPT的时候可以创建两个隐藏分区,ESP和MSR。ESP是efi系统分区用于保存引导文件,MSR是微软的保留分区,用于安装操作系统

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇