GPT学习文档
1. GPT
GPT全称:Globally Unique Identifier Partition Table Format-----à全局唯一标识分区表(GUID Partition Table,缩写:GPT)
GPT是一个实体硬盘的分区结构。它是可扩展固件接口标准的一部分,用来替代BIOS中的主引导记录MBR分区表。
GPT是一种由基于 Itanium 计算机中的可扩展固件接口 (EFI) 使用的磁盘分区架构。与主启动记录 (MBR) 分区方法相比,GPT 具有更多的优点, 与支持最大卷为 2 TB (terabytes) 并且每个磁盘最多有 4 个主分区(或 3 个主分区,1 个扩展分区和无限制的逻辑驱动器)的主启动记录 (MBR) 磁盘分区的样式相比,GUID 分区表 (GPT) 磁盘分区样式支持最大卷为 18 EB (exabytes) 并且每磁盘最多有 128 个分区。
(1)MBR分区表和GPT分区表
MBR分区表:(MBR含义:主引导记录)
所支持的最大卷:2T (T; terabytes,1TB=1024GB)
对分区的设限:最多4个主分区或3个主分区加一个扩展分区(扩展分区中支持无限制的逻辑驱动器)
GPT分区表:(GPT含义:GUID分区表)
支持最大卷:18EB,(E:exabytes,1EB=1024TB)
每个磁盘最多支持128个分区
(2)GPT分区介绍
MBR,主引导记录(Master Boot Record),也就是现有的硬盘分区模式。MBR分区的标准决定了MBR只支持在2TB以下的硬盘,超过2TB的硬盘只能管理2TB!为解决这个大问题,微软和英特尔在EFI方案中开发了GPT分区模式。
GPT,全局唯一标识分区表(GUID Partition Table),GUID,全局唯一标识符 (Globally Unique Identifier) 。GPT是EFI方案的一部分,但并不依赖于EFI主板,在BIOS主板的PC中也可使用GPT分区。与MBR最大4个分区表项的限制相比,GPT对分区数量没有限制,但Windows最大仅支持128个GPT分区。GPT可管理硬盘大小达到了18EB(1EB=1024PB=1,048,576TB),不过NTFS格式最大仅支持256TB。
GPT的分区信息是在分区中,而不象MBR一样在主引导扇区,为保护GPT不受MBR类磁盘管理软件的危害,GPT在主引导扇区建立了一个保护分区(Protective MBR)的MBR分区表,这种分区的类型标识为0xEE,这个保护分区的大小在Windows下为128MB,Mac OS X下为200MB,在Window磁盘管理器里名为GPT保护分区,可让MBR类磁盘管理软件把GPT看成一个未知格式的分区,而不是错误地当成一个未分区的磁盘。
GPT分区表的结构。此例中,每个逻辑块(LBA)为512字节,每个分区的记录为128字节。负数的LBA地址表示从最后的块开始倒数,−1表示最后一个块。
<1> 在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。
<2> 传统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。
<3>分区表头 (LBA 1)
分区表头定义了硬盘的可用空间以及组成分区表的项的大小和数量。在使用64位Windows Server 2003的机器上,最多可以创建128个分区,即分区表中保留了128个项,其中每个都是128字节。(EFI标准要求分区表最小要有16,384字节,即128个分区项的大小)
分区表头还记录了这块硬盘的GUID,记录了分区表头本身的位置和大小(位置总是在LBA 1)以及备份分区表头和分区表的位置和大小(在硬盘的最后)。它还储存着它本身和分区表的CRC32校验。固件、引导程序和操作系统在启动时可以根据这个校验值来判断分区表是否出错,如果出错了,可以使用软件从硬盘最后的备份GPT中恢复整个分区表,如果备份GPT也校验错误,硬盘将不可使用。所以GPT硬盘的分区表不可以直接使用16进制编辑器修改。
|
分区表头的格式 | ||
|
起始字节 |
长度 |
内容 |
|
0 |
8字节 |
签名("EFI PART", 45 46 49 20 50 41 52 54) |
|
8 |
4字节 |
修订(在1.0版中,值是 00 00 01 00) |
|
12 |
4字节 |
分区表头的大小(单位是字节,通常是92字节,即 5C 00 00 00) |
|
16 |
4字节 |
分区表头(第0-91字节)的CRC32校验,在计算时,把这个字段作为0处理,需要计算出分区串行的CRC32校验后再计算本字段 |
|
20 |
4字节 |
保留,必须是 0 |
|
24 |
8字节 |
当前LBA(这个分区表头的位置) |
|
32 |
8字节 |
备份LBA(另一个分区表头的位置) |
|
40 |
8字节 |
第一个可用于分区的LBA(主分区表的最后一个LBA + 1) |
|
48 |
8字节 |
最后一个可用于分区的LBA(备份分区表的第一个LBA − 1) |
|
56 |
16字节 |
硬盘GUID(在类UNIX系统中也叫UUID) |
|
72 |
8字节 |
分区表项的起始LBA(在主分区表中是2) |
|
80 |
4字节 |
分区表项的数量 |
|
84 |
4字节 |
一个分区表项的大小(通常是128) |
|
88 |
4字节 |
分区串行的CRC32校验 |
|
92 |
* |
保留,剩余的字节必须是0(对于512字节LBA的硬盘即是420个字节) |
主分区表和备份分区表的头分别位于硬盘的第二个扇区(LBA 1)以及硬盘的最后一个扇区。备份分区表头中的信息是关于备份分区表的。
<4>分区表项 (LBA 2–33)
GPT分区表使用简单而直接的方式表示分区。一个分区表项的前16字节是分区类型GUID。例如,EFI系统分区的GUID类型是{C12A7328-F81F-11D2-BA4B-00A0C93EC93B}。接下来的16字节是该分区唯一的GUID(这个GUID指的是该分区本身,而之前的GUID指的是该分区的类型)。再接下来是分区起始和末尾的64位LBA编号,以及分区的名字和属性。
|
GPT分区表项的格式 | ||
|
起始字节 |
长度 |
内容 |
|
0 |
16字节 |
分区类型GUID |
|
16 |
16字节 |
分区GUID |
|
32 |
8字节 |
起始LBA(小端序) |
|
40 |
8字节 |
末尾LBA |
|
48 |
8字节 |
属性标签(如:60表示“只读”) |
|
56 |
72字节 |
分区名(可以包括36个UTF-16(小端序)字符) |
<5>操作系统支持
对于不标准的MBR/GPT混合硬盘,不同的系统中的实现有些不一致。[5]除非另加说明,操作系统在处理混合硬盘时优先读取GPT分区表
以下表格中的“不支持”应该理解成:不能识别GPT分区的硬盘,[6]系统只能识别保护分区。GPT硬盘的数据可以通过第三方管理工具进行操作。
[编辑]类Unix操作系统
|
操作系统 |
版本 |
平台 |
自BIOS/GPT启动 |
自EFI/GPT启动 |
备注 |
|
FreeBSD |
7.0以后 |
x86、x86-64 |
是 |
是 |
在MBR/GPT混合硬盘中,可以同时使用GPT和MBR分区标识。 |
|
Linux |
大多数x86架构的Linux发行版 Fedora 8+、Ubuntu 8.04+[7] |
x86-64、IA-64、x86 |
是 |
是 |
一些分区工具,如fdisk,不支持GPT。 而gdisk、grub2之类的新工具[8]支持GPT。 |
|
Mac OS X |
10.4.0以后(一些功能要到10.4.6以后)[9] |
x86、x86-64 |
否 |
是 |
|
|
Solaris |
Solaris 10 以后 |
x86、x86-64、SPARC |
No (Work in Progress) |
No (Work in Progress) |
|
》32位Windows
|
操作系统 |
版本 |
平台 |
自BIOS/GPT启动 |
自EFI/GPT启动 |
支持GPT磁盘读取写入 |
备注 |
|
Windows XP |
(2001-10-25) |
x86 |
否 |
否 |
否 |
不支持 |
|
Windows Server 2003 |
(2003-04-24) |
x86 |
否 |
否 |
否 |
不支持 |
|
Windows Server 2003 |
Service Pack 1 (2005-03-30) |
x86 |
否 |
否 |
是 |
仅支持作为数据盘使用,[6]在MBR/GPT混合硬盘中优先使用MBR。 |
|
Windows Vista |
(2005-07-22) |
x86 |
否 |
否 |
是 |
在MBR/GPT混合硬盘中优先使用MBR。 |
|
Windows Server 2008 |
(2008-02-27) |
x86 |
否 |
否 |
是 |
在MBR/GPT混合硬盘中优先使用MBR。 |
|
Windows 7 |
(2009-10-22) |
x86 |
否 |
否 |
是 |
在MBR/GPT混合硬盘中优先使用MBR。[5] |
》64位Windows
下表列出了支持GPT的64位版Windows。既包括IA-64架构的服务器版本,也包括x86-64和EM64T架构。
|
操作系统 |
版本 |
平台 |
自BIOS/GPT启动 |
自EFI/GPT启动 |
支持GPT磁盘读取写入 |
备注 |
|
Windows XP |
64-bit (2001-10-25) |
IA-64 |
否 |
是 |
是 |
在MBR/GPT混合硬盘中优先使用MBR。可拆卸磁盘仅支持MBR分区表。 |
|
Windows XP |
64-bit, Version 2003 (2003-03-28) |
IA-64 |
否 |
是 |
是 |
在MBR/GPT混合硬盘中优先使用MBR。可拆卸磁盘仅支持MBR分区表。 |
|
Windows Server 2003 |
64-bit (2003-04-24) |
IA-64 |
否 |
是 |
是 |
在MBR/GPT混合硬盘中优先使用MBR。 默认使用GPT。IA-64架构的启动盘必须是GPT硬盘,其余硬盘可以使用MBR也可以使用GPT。[10] |
|
Windows Server 2003 |
x64, Service Pack 1 (2005-03-30) |
x86-64 |
否 |
否 |
是 |
仅支持作为数据盘使用,[6]在MBR/GPT混合硬盘中优先使用MBR。 |
|
Windows XP |
Professional x64 (2005-04-25) |
x86-64 |
否 |
否 |
是 |
仅支持作为数据盘使用,[6]在MBR/GPT混合硬盘中优先使用MBR。可拆卸磁盘仅支持MBR分区表。 |
|
Windows Vista |
(2005-07-22) |
x86-64 |
否 |
是 |
是 |
在MBR/GPT混合硬盘中优先使用MBR。 |
|
Windows Server 2008 |
(2008-02-27) |
x86-64,IA-64 |
否 |
是 |
是 |
在MBR/GPT混合硬盘中优先使用MBR。 |
|
Windows 7 |
(2009-10-22) |
x86-64 |
否 |
是 |
是 |
在MBR/GPT混合硬盘中优先使用MBR。[5] |
|
Windows Server 2008 R2 |
(2009-10-22) |
x86-64,IA-64 |
否 |
是 |
是 |
在MBR/GPT混合硬盘中优先使用MBR。 |
》分区类型GUID
|
相关操作系统 |
分区类型 |
GUID[1] |
|
(None) |
未使用 |
00000000-0000-0000-0000-000000000000 |
|
MBR分区表 |
024DEE41-33E7-11D3-9D69-0008C781F39F | |
|
EFI系统分区 |
C12A7328-F81F-11D2-BA4B-00A0C93EC93B | |
|
BIOS引导分区 |
21686148-6449-6E6F-744E-656564454649 | |
|
Windows |
微软保留分区 |
E3C9E316-0B5C-4DB8-817D-F92DF00215AE |
|
基本数据分区[2] |
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 | |
|
逻辑软盘管理工具元数据分区 |
5808C8AA-7E8F-42E0-85D2-E1E90434CFB3 | |
|
逻辑软盘管理工具数据分区 |
AF9B60A0-1431-4F62-BC68-3311714A69AD | |
|
Windows恢复环境 |
DE94BBA4-06D1-4D40-A16A-BFD50179D6AC | |
|
IBM通用并行文件系统(GPFS)分区 |
37AFFC90-EF7D-4e96-91C3-2D7AE055B174 | |
|
HP-UX |
数据分区 |
75894C1E-3AEB-11D3-B7C1-7B03A0000000 |
|
服务分区 |
E2A1E728-32E3-11D6-A682-7B03A0000000 | |
|
Linux |
数据分区[2] |
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 |
|
RAID分区 |
A19D880F-05FC-4D3B-A006-743F0F84911E | |
|
交换分区 |
0657FD6D-A4AB-43C4-84E5-0933C84B4F4F | |
|
逻辑卷管理器(LVM)分区 |
E6D6D379-F507-44C2-A23C-238F2A3DF928 | |
|
保留 |
8DA63339-0007-60C0-C436-083AC8230908 | |
|
FreeBSD |
启动分区 |
83BD6B9D-7F41-11DC-BE0B-001560B84F0F |
|
数据分区 |
516E7CB4-6ECF-11D6-8FF8-00022D09712B | |
|
交换分区 |
516E7CB5-6ECF-11D6-8FF8-00022D09712B | |
|
UFS分区 |
516E7CB6-6ECF-11D6-8FF8-00022D09712B | |
|
en:Vinum volume manager分区 |
516E7CB8-6ECF-11D6-8FF8-00022D09712B | |
|
ZFS分区 |
516E7CBA-6ECF-11D6-8FF8-00022D09712B | |
|
Mac OS X |
HFS(HFS+)分区 |
48465300-0000-11AA-AA11-00306543ECAC |
|
苹果公司UFS |
55465300-0000-11AA-AA11-00306543ECAC | |
|
ZFS[3] |
6A898CC3-1DD2-11B2-99A6-080020736631 | |
|
苹果RAID分区 |
52414944-0000-11AA-AA11-00306543ECAC | |
|
苹果RAID分区,下线 |
52414944-5F4F-11AA-AA11-00306543ECAC | |
|
苹果启动分区 |
426F6F74-0000-11AA-AA11-00306543ECAC | |
|
Apple Label |
4C616265-6C00-11AA-AA11-00306543ECAC | |
|
Apple TV 恢复分区 |
5265636F-7665-11AA-AA11-00306543ECAC | |
|
Solaris |
启动分区 |
6A82CB45-1DD2-11B2-99A6-080020736631 |
|
根分区 |
6A85CF4D-1DD2-11B2-99A6-080020736631 | |
|
交换分区 |
6A87C46F-1DD2-11B2-99A6-080020736631 | |
|
备份分区 |
6A8B642B-1DD2-11B2-99A6-080020736631 | |
|
/usr 分区[3] |
6A898CC3-1DD2-11B2-99A6-080020736631 | |
|
/var 分区 |
6A8EF2E9-1DD2-11B2-99A6-080020736631 | |
|
/home 分区 |
6A90BA39-1DD2-11B2-99A6-080020736631 | |
|
备用扇区 |
6A9283A5-1DD2-11B2-99A6-080020736631 | |
|
保留分区 |
6A945A3B-1DD2-11B2-99A6-080020736631 | |
|
6A9630D1-1DD2-11B2-99A6-080020736631 | ||
|
6A980767-1DD2-11B2-99A6-080020736631 | ||
|
6A96237F-1DD2-11B2-99A6-080020736631 | ||
|
6A8D2AC7-1DD2-11B2-99A6-080020736631 | ||
|
NetBSD[4] |
交换分区 |
49F48D32-B10E-11DC-B99B-0019D1879648 |
|
FFS分区 |
49F48D5A-B10E-11DC-B99B-0019D1879648 | |
|
LFS分区 |
49F48D82-B10E-11DC-B99B-0019D1879648 | |
|
RAID分区 |
49F48DAA-B10E-11DC-B99B-0019D1879648 | |
|
concatenated分区 |
2DB519C4-B10F-11DC-B99B-0019D1879648 | |
|
加密分区 |
2DB519EC-B10F-11DC-B99B-0019D1879648 |
1. 本表中的GUID使用小端序表示。例如,EFI系统分区的GUID在这里写成C12A7328-F81F-11D2-BA4B-00A0C93EC93B但实际上它对应的16字节的串行是 28 73 2A C1 1F F8 D2 11 BA 4B 00 A0 C9 3E C9 3B ——只有前3部分的字节序被交换了。
2. Linux和Windows的数据分区使用相同的GUID。
3. Solaris系统中/usr分区的GUID在Mac OS X上被用作普通的ZFS分区。
4. 具体定义见src/sys/sys/disklabel_gpt.h。NetBSD的GUID在单独定义之前曾经使用过FreeBSD的GUID。
2. 划分GPT分区
假设要用parted对/dev/sdb(大小为6000G)进行分区操作:
1、进入系统执行:
#parted /dev/sdb
2、建立磁盘label:
mklabel GPT
3、按p键,查看磁盘可用空间,显示单位为M。6000G应该显示大致
为: /dev/sdb 的磁盘几何结构:0.000-6000000.000 兆字节
4、创建分区:
在(parted)后输入:
mkpart并按照提示操作
分区类型? primary/主分区/extended/扩展分区? p (如果要创建扩展分区 此处
输入e)
文件系统类型? [ext2]? (这里直接回车,分区创建完毕后通过mkfs.ext3
/dev/sdb*建立文件系统)
起始点?0
结束点?-1
5、按p键查看刚创建的分区是否已经成功。
6、如果成功,键入quit退出parted。
7、使用mkfs.ext3 /dev/sdb1 来创建文件系统
fdisk命令虽然很交互,操作也方便,但是对于大于2T的磁盘无法操作,如果我们想用大于2T的磁盘怎么办?可以把磁盘转化为GPT格式。
GPT格式的磁盘相当于原来MBR磁盘中原来保留4个partition table的4*16个字节只留第一个16个字节,类似于扩展分区,真正的partition table在512字节之后,GPT磁盘没有四个主分区的限制。
但fdisk不支持GPT,我们可以使用parted来对GPT磁盘操作。
parted功能很强大,既可用命令行也可以用于交互式
在提示符下输入parted就会进入交互式模式,如果有多个磁盘的话,我们需要运行select sdx x为磁盘,来进行磁盘的选择
parted>
parted>select sdb 假设磁盘为sdb
parted>mklable gpt 将MBR磁盘格式化为GPT
parted>mklable msdos 将GPT磁盘转化为MBR磁盘
parted>mkpart primary 0 100 划分一个起始位置为0大小为100M的主分区
parted>mkpart primary 100 200 划分一个起始位置为100M大小为100M的主分区
parted>print 打印当前分区
在parted里边不支持ext3的文件系统,所以如果要使用的话,要退出parted进行格式话
mkfs.ext3 /dev/sdx1
因为fdisk是不支持GPT磁盘,所以不要使用fdisk -l来查看X磁盘刚才分好的区,看不到的。
命令行的模式:
将硬盘转化为GPT磁盘后,执行下列命令
parted /dev/sdx mkpart primary 0 100 划分一个起始位置为0大小为100M的主分区
Acronym for GUID Partition Table
GPT was introduced for iA64 systems, to get around a fixed 32 bit issue (2 to the power of 32 is 4 billion times a 512 byte block equals 2 Terabytes) in the PC-BIOS Partition table. Partitions larger than 2 TB require using a GPT disklabel, which differs from the PC-BIOS Partition table in a number of ways:
* Is easily extensible.
* Can contain up to 128 primary partitions, as opposed to 4, so there's no need for extended partitions.
* Allows Partitions larger than 2 TB.
* Identifies Partitions with a GUID so you can reference that Partition even if disks are moved around.
* Identifies Partition type with a GUID, thus avoiding the type conflicts that plague the PC-BIOS Partition table format.
* Provides a 46(?) character UTF-16 partition label to identify Partitions.
* Has a "fake" MBR for backwards compatibility.
* Includes a CRC32 to detect corrupt Partition tables.
* Stores a backup Partition table at the end of the disk.
Most partitioning tools under Linux will fail to do anything sensible with a > 2 TB Partition. As of this writing, parted(8) is the only one that understands them and will let you set the GPT label on the disk.
There is a lot of information stating that you cannot boot off a GPT enabled device. Most of the claims imply that the fault is with LILO or GRUB not understanding GPT devices. We've not tested this, but GPT and traditional MBRs will coexist.
See also:
* Disk Sectors on GPT Disks from the MS Knowledge Base
所以在超过2TB时,我不能使用交互很好的Fdisk命令,只能磁盘转化为GPT格式。由于GPT格式的磁盘相当于原来MBR磁盘中原来保留4个 partition table的4*16个字节只留第一个16个字节,其它的类似于扩展分区,真正的partition table在512字节之后,所以对GPT磁盘表来讲没有四个主分区的限制。
对GPT磁盘分区表进行操作,我们要使用parted命令。其实parted功能很强大,它可以象fdisk一样既可用命令行也可以用于交互式.
下面我们就来实际操作吧,在提示符下输入parted就会进入交互式模式
# parted /dev/sdb
GNU Parted 1.8.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
将MBR磁盘格式化为GPT
(parted) mkpart primary 0 100
划分一个起始位置为0大小为100M的主分区
(parted) mkpart primary 100 200
划分一个起始位置为100M大小为100M的主分区
(parted) mkpart primary 0 -1
划分所有空间到一个分区
(parted) print
打印当前分区
(parted) quit
可能还会用到的一些命令
(parted) mklable msdos
如果要反过来.将GPT磁盘转化为MBR磁盘
在这样分完分区后,还要使用mkfs.ext3来进行格式化
#partprobe
#mkfs.ext3 -F /dev/sdb1
记的哦,因为fdisk是不支持GPT磁盘,所以使用fdisk -l来查看磁盘刚才的分区是没有用的.
命令行的模式:
将硬盘转化为GPT磁盘后,执行下列命令
parted /dev/sdx mkpart primary 0 10000
##划分一个起始位置为0大小为10T的主分区
下关于大于2T磁盘的使用GPT磁盘
我们来看一下两种分区表
MBR分区表:(MBR含义:主引导记录)
所支持的最大卷:2T (T; terabytes,1TB=1024GB)
对分区的设限:最多4个主分区或3个主分区加一个扩展分区(扩展分区中支持无限制的逻辑驱动器)
GPT分区表:(GPT含义:GUID分区表)
支持最大卷:18EB,(E:exabytes,1EB=1024TB)
每个磁盘最多支持128个分区
假设要用parted对/dev/sdb(大小为6000G)进行分区操作:
1、进入系统执行:
#parted /dev/sdb
2、建立磁盘label:
mklabel GPT
3、按p键,查看磁盘可用空间,显示单位为M。6000G应该显示大致
为: /dev/sdb 的磁盘几何结构:0.000-6000000.000 兆字节
4、创建分区:
在(parted)后输入:
mkpart并按照提示操作
分区类型? primary/主分区/extended/扩展分区? p (如果要创建扩展分区 此处
输入e)
文件系统类型? [ext2]? (这里直接回车,分区创建完毕后通过mkfs.ext3
/dev/sdb*建立文件系统)
起始点?0
结束点?-1
5、按p键查看刚创建的分区是否已经成功。
6、如果成功,键入quit退出parted。
7、使用mkfs.ext3 /dev/sdb1 来创建文件系统
fdisk命令虽然很交互,操作也方便,但是对于大于2T的磁盘无法操作,如果我们想用大于2T的磁盘怎么办?可以把磁盘转化为GPT格式。
GPT格式的磁盘相当于原来MBR磁盘中原来保留4个partition table的4*16个字节只留第一个16个字节,类似于扩展分区,真正的partition table在512字节之后,GPT磁盘没有四个主分区的限制。
但fdisk不支持GPT,我们可以使用parted来对GPT磁盘操作。
parted功能很强大,既可用命令行也可以用于交互式
在提示符下输入parted就会进入交互式模式,如果有多个磁盘的话,我们需要运行select sdx x为磁盘,来进行磁盘的选择
parted>
parted>select sdb 假设磁盘为sdb
parted>mklable gpt 将MBR磁盘格式化为GPT
parted>mklable msdos 将GPT磁盘转化为MBR磁盘
parted>mkpart primary 0 100 划分一个起始位置为0大小为100M的主分区
parted>mkpart primary 100 200 划分一个起始位置为100M大小为100M的主分区
parted>print 打印当前分区
在parted里边不支持ext3的文件系统,所以如果要使用的话,要退出parted进行格式话
mkfs.ext3 /dev/sdx1
因为fdisk是不支持GPT磁盘,所以不要使用fdisk -l来查看X磁盘刚才分好的区,看不到的。
命令行的模式:
将硬盘转化为GPT磁盘后,执行下列命令
parted /dev/sdx mkpart primary 0 100 划分一个起始位置为0大小为100M的主分区
Acronym for GUID Partition Table
GPT was introduced for iA64 systems, to get around a fixed 32 bit issue (2 to the power of 32 is 4 billion times a 512 byte block equals 2 Terabytes) in the PC-BIOS Partition table. Partitions larger than 2 TB require using a GPT disklabel, which differs from the PC-BIOS Partition table in a number of ways:
* Is easily extensible.
* Can contain up to 128 primary partitions, as opposed to 4, so there's no need for extended partitions.
* Allows Partitions larger than 2 TB.
* Identifies Partitions with a GUID so you can reference that Partition even if disks are moved around.
* Identifies Partition type with a GUID, thus avoiding the type conflicts that plague the PC-BIOS Partition table format.
* Provides a 46(?) character UTF-16 partition label to identify Partitions.
* Has a "fake" MBR for backwards compatibility.
* Includes a CRC32 to detect corrupt Partition tables.
* Stores a backup Partition table at the end of the disk.
Most partitioning tools under Linux will fail to do anything sensible with a > 2 TB Partition. As of this writing, parted(8) is the only one that understands them and will let you set the GPT label on the disk.
There is a lot of information stating that you cannot boot off a GPT enabled device. Most of the claims imply that the fault is with LILO or GRUB not understanding GPT devices. We've not tested this, but GPT and traditional MBRs will coexist.
See also:
* Disk Sectors on GPT Disks from the MS Knowledge Base
所以在超过2TB时,我不能使用交互很好的Fdisk命令,只能磁盘转化为GPT格式。由于GPT格式的磁盘相当于原来MBR磁盘中原来保留4个 partition table的4*16个字节只留第一个16个字节,其它的类似于扩展分区,真正的partition table在512字节之后,所以对GPT磁盘表来讲没有四个主分区的限制。
对GPT磁盘分区表进行操作,我们要使用parted命令。其实parted功能很强大,它可以象fdisk一样既可用命令行也可以用于交互式.
下面我们就来实际操作吧,在提示符下输入parted就会进入交互式模式
# parted /dev/sdb
GNU Parted 1.8.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
将MBR磁盘格式化为GPT
(parted) mkpart primary 0 100
划分一个起始位置为0大小为100M的主分区
(parted) mkpart primary 100 200
划分一个起始位置为100M大小为100M的主分区
(parted) mkpart primary 0 -1
划分所有空间到一个分区
(parted) print
打印当前分区
(parted) quit
可能还会用到的一些命令
(parted) mklable msdos
如果要反过来.将GPT磁盘转化为MBR磁盘
在这样分完分区后,还要使用mkfs.ext3来进行格式化
#partprobe
#mkfs.ext3 -F /dev/sdb1
记的哦,因为fdisk是不支持GPT磁盘,所以使用fdisk -l来查看磁盘刚才的分区是没有用的.
命令行的模式:
将硬盘转化为GPT磁盘后,执行下列命令
parted /dev/sdx mkpart primary 0 10000
##划分一个起始位置为0大小为10T的主分区
源自#
为了你的电脑安全,请只打开来源可靠的网址。
此链接转自手机浏览器,可能无法打开。
此内容由傲游浏览器转帖插件分享
此内容由UC手机浏览器分享
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26823568/viewspace-730143/ ,如需转载,请注明出处,否则将追究法律责任。