前两天安装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)quitPS:当使用GPT格式时,如果存储方式是按照MBR的磁盘1027磁柱内存放的,则不使用EFI主板即可启动,也就是GPT也可以使用BIOS启动,否则,分区表使用GPT格式,并且配备2TB以上磁盘,也必须使用EFI主板,而且操作系统也必须支持GPT分区表!