Parted分区

来源:互联网 发布:指纹匹配算法 编辑:程序博客网 时间:2024/05/17 04:41
          传统的MBR(Master Boot Record)分区方式,有一个局限:无法支持超过2TB的硬盘的分区(或单个分区超过2TB),这个情况在当前这个数据量激增的时候,实在令人难以接受(尤其是企业级的应用,动辄数TB的数据量)。
        这个问题引入了一个GPT(Globally Unique Identifier Partition Table Format)分区的概念,相关信息历史可以参考词条GPT。
        GPT的分区表很好了解决了传统MBR无法逾越2TB的限制。但是在Linux系统中,传统的fdisk命令无法支持gpt分区方式。(在红帽企业版Linux 4 Update 4之后的版本提供了对大于2 terabytes(TB)的磁盘设备的支持)

        parted的操作都是实时的,也就是说你执行了一个分区的命令,他就实实在在地分区了,而不是像fdisk那样,需要执行w命令写入所做的修改, 所以进行parted的测试千万注意不能在生产环境中!

下面是parted命令的用法:

[root@localhost ~]# parted /dev/sdb help  check NUMBER                             do a simple check on the file system  cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another partition  help [COMMAND]                           prints general help, or help on COMMAND  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)  mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on partititon NUMBER  mkpart PART-TYPE [FS-TYPE] START END     make a partition  mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system  move NUMBER START END                    move partition NUMBER  name NUMBER NAME                         name partition NUMBER as NAME  print [free|NUMBER|all]                  display the partition table, a partition, or all devices  quit                                     exit program  rescue START END                         rescue a lost partition near START and END  resize NUMBER START END                  resize partition NUMBER and its file system  rm NUMBER                                delete partition NUMBER  select DEVICE                            choose the device to edit  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER  unit UNIT                                set the default unit to UNIT  version                                  displays the current version of GNU Parted and copyright information信息: 如果必要,不要忘记更新 /etc/fstab。
用法示例:

打印一个磁盘的当前的分区结构:

[root@localhost ~]# parted /dev/sda printModel: VMware, VMware Virtual S (scsi)Disk /dev/sda: 21.5GBSector size (logical/physical): 512B/512BPartition Table: msdosNumber  Start   End     Size    Type    File system  标志 1      32.3kB  107MB   107MB   主分区  ext3         启动 2      107MB   21.5GB  21.4GB  主分区               lvm 信息: 如果必要,不要忘记更新 /etc/fstab。
将一个MBR的磁盘格式化为GPT磁盘:

(parted) mklabel gpt
将一个GPT磁盘格式化为MBR磁盘:

(parted) mklabel msdos
划分一个起始位置是0,大小为100M的主分区:

[root@localhost ~]# parted /dev/sdb mkpart primary 0 1000M
删除一个分区:

[root@localhost ~]# parted /dev/sdb printModel: VMware, VMware Virtual S (scsi)Disk /dev/sdb: 2147MBSector size (logical/physical): 512B/512BPartition Table: msdosNumber  Start   End     Size    Type    File system  标志 1      0.51kB  1000MB  1000MB  主分区                   信息: 如果必要,不要忘记更新 /etc/fstab。                                 [root@localhost ~]# parted /dev/sdb rm 1信息: 如果必要,不要忘记更新 /etc/fstab。
将一个磁盘的所有空间都划分成一个分区:

[root@localhost ~]# parted /dev/sdb mkpart primary 0 -1
常用的分区操作基本就上面的这些,关于调整分区和移动分区的操作可以参照下文给出的资料

需要格外注意的是:parted命令和fdisk命令不同,fdisk命令是等到你最后执行那个w的时候才生效最终写入到分区表中的,parted命令是实时的写入到分区表,所以在操作有数据的磁盘的时候需要格外小心,毕竟数据无价的!


MBR和2TB的限制

        在使用fdisk建立分区时,我们最大只能建立2TB大小的分区,如果你的磁盘(阵列)大于2TB,只能通过划分多个分区的方法才能充分利用磁盘容量,这对于使用小于2TB分区的朋友没啥影响,但对于使用大于2TB分区(比如5TB的分区)的朋友就会遇到问题了,要突破这个限制;我们先来了解下MBR(Master Boot Record)和GPT(GUID Partition Table).

MBR
        主引导记录(Master Boot Record,缩写:MBR),又叫做主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。

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

        从主引导记录的结构可以知道,它仅仅包含一个64个字节的硬盘分区表。由于每个分区信息需要16个字节,所以对于采用MBR型分区结构的硬盘(其磁盘卷标类型为MS-DOS),最多只能识别4个主要分区。所以对于一个采用此种分区结构的硬盘来说,想要得到4个以上的主要分区是不可能的。这里就需要引出扩展分区了。扩展分区也是主分区(Primary partition)的一种,但它与主分区的不同在于理论上可以划分为无数个逻辑分区,每一个逻辑分区都有一个和MBR结构类似的扩展引导记录(EBR)。
        在MBR分区表中最多4个主分区或者3个主分区+1个扩展分区,也就是说扩展分区只能有一个,然后可以再细分为多个逻辑分区。
在Linux系统中,硬盘分区命名为sda1-sda4或者hda1-hda4(其中a表示硬盘编号可能是a、b、c等等)。在MBR硬盘中,分区号1-4是主分区(或者扩展分区),逻辑分区号只能从5开始。
        在MBR分区表中,一个分区最大的容量为2T,且每个分区的起始柱面必须在这个disk的前2T内。你有一个3T的硬盘,根据要求你至少要把它划分为2个分区,且最后一个分区的起始扇区要位于硬盘的前2T空间内。如果硬盘太大则必须改用GPT。

GPT
        全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区结构。它是EFI(可扩展固件接口标准)的一部分,用来替代BIOS中的主引导记录分区表。但因为MBR分区表不支持容量大于2.2TB(2.2 × 1012字节)的分区,所以也有一些BIOS系统为了支持大容量硬盘而用GPT分区表取代MBR分区表。

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

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

EFI
        可扩展固件接口(英文名Extensible Firmware Interface 或EFI)是一种个人电脑系统规格,用来定义操作系统与系统韧体之间的软件界面,为替代BIOS的升级方案。可扩展固件接口负责加电自检(POST)、连系操作系统以及提供连接操作系统与硬件的接口。
EFI最初由英特尔开发,现时由UEFI论坛来推广与发展。

UEFI
        是由EFI1.10为基础发展起来的,它的所有者已不再是Intel,而是一个称作Unified EFI Form的国际组织,贡献者有Intel,Microsoft,AMI,等几个大厂,属于open source,目前版本为2.1。

原创粉丝点击