© 著作权归作者所有:来自 51CTO 博客作者 spazzzz 的原创作品,如需转载,请注明出处,否则将追究法律责任
https://blog.51cto.com/spazzzz/633137

前两天安装 SUSE enterprise linux 11 的时候,碰到了创建磁盘分区表类型这个问题,有两个选项:MSDOS 和 GPT。这就让我很纠结了,搞不懂这两个概念是什么意思,来从信息描述可以看出是关于磁盘上相当重要的分区表结构,所以对其的准确了解很重要。

MSDOS:

现有的 PC 机架构,大多是沿用了数十年的主板 BIOS + 硬盘 MBR 分区的这种组合模式,在这种模式下磁盘分区表类型就称为 MSDOS,也可称为 MBR 格式。MBR 是主引导记录 (Master Boot Record),也就是现有的硬盘分区表的存放地点,在 1024 扇区之内。MBR 格式的标准决定了 MBR 只支持在 2TB 以下的硬盘,如果硬盘超过 2TB 时,只能管理到 2TB!
 MSDOS 格式的分区表支持的最大卷为 2 TB (terabytes),并且每个磁盘最多只能有 4 个主分区 (或 3 个主分区,1 个扩展分区和无限制的逻辑分区)
在 linux 下,fdisk 命令只能用来操作 MSDOS 格式的分区表。

-------------------------------------------- 分割线 --------------------------------------------

GPT:

GPT 分区表数据结构

随着磁盘技术越来越先进,使用垂直磁化和巨磁阻磁头,出现了容量远超于传统磁盘的容量,所以为了克服 BIOS+MBR 的 2TB、4 分区限制,就出现了 EFI+GPT 的模式。
2004 年,微软和英特尔共同推出一种名为可扩展固件接口(EFI)的主板升级换代方案。EFI,即可扩展固件接口 (Extensible Firmware Interface),EFI 的位置很特殊,不像是 BIOS 那样是固件又是接口,EFI 只是一个接口,位于操作系统与平台固件之间。到目前为止,现有的 PC 机主板绝大部分还是 BIOS 模式,EFI 主板寥寥可数。
GPT,全局唯一标识分区表 (GUID Partition Table)。GPT 是 EFI 方案的一部分,但并不依赖于 EFI 主板,在 BIOS 主板的 PC 中也可使用 GPT 分区。与 MBR 最大 4 个分区表项的限制相比,GPT 对分区数量没有限制,但 Windows 最大仅支持 128 个 GPT 分区。GPT 可管理硬盘大小达到了 18EB(1EB=1024PB=1,048,576TB),不过 NTFS 格式最大仅支持 256TB。
GPT 的分区信息是在分区中,而不象 MBR 一样在主引导扇区,至关重要的平台操作数据位于分区,而不是位于非分区或隐藏扇区。另外,GPT 分区磁盘有多余的主要及备份分区表来提高分区数据结构的完整性。允许将主磁盘分区表和备份磁盘分区表用于冗余,支持唯一的磁盘和分区 ID。
为保护 GPT 不受 MBR 类磁盘管理软件的危害,GPT 在主引导扇区建立了一个保护分区 (Protective MBR) 的 MBR 分区表,这种分区的类型标识为 0xEE,这个保护分区的大小在 Windows 下为 128MB,Mac OS X 下为 200MB,在 Window 磁盘管理器里名为 GPT 保护分区,可让 MBR 类磁盘管理软件把 GPT 看成一个未知格式的分区,而不是错误地当成一个未分区的磁盘
在 linux 下,对 GPT 格式分区表的操作是通过 parted 命令

#parted /dev/sda
--GNU Parted 1.8.1
--Using /dev/sda
--Welcome to GNU Parted! Type ‘help’ to view a list of commands.
(parted)mklabel gpt //在磁盘sda上写上GPT格式分区表
(parted)mkpartfs primary ext3 0 -1 //将整个磁盘创建为1个主分区,并使用ext3文件系统。
(parted)print
(parted)quit
PS: 当使用 GPT 格式时,如果存储方式是按照 MBR 的磁盘 1027 磁柱内存放的,则不使用 EFI 主板即可启动,也就是 GPT 也可以使用 BIOS 启动,否则,分区表使用 GPT 格式,并且配备 2TB 以上磁盘,也必须使用 EFI 主板,而且操作系统也必须支持 GPT 分区表!