传统的MBR(Master Boot Record)分区方式,有一个局限:无法支持超过2TB的硬盘分区(单个分区超过2TB)。

    GPT(GUID Partition Table)的分区表很好的解决了这个问题,但在Linux系统中,传统的fdisk命令无法支持GPT分区方式,因此只能使用parted命令来实现划分大于2TB的分区。

    注意:parted命令是实时生效的,不要在生产环境测试parted功能。

二.Parted命令的格式

    下面来介绍一下parted命令的用法:

    parted [选项] [设备] [命令[参数]]

        选项:

            -l,–list:显示所有块设备;

        [命令[参数]]:

            mklabel label-type:设置分区表类型;

                label-type:

                   aix,amiga,bsd,dvh,gpt,loop,mac,msdoc,pc98,sun

            name partition name:设置分区名;                

                partition:分区号码;

                    从1开始的数字,例如:指定/dev/sda5分区,name 5 即可;

            mkpart part-type [fs-type] start end:创建分区;

                part-type:分区类型;

                    primary:主分区;

                    extended:扩展分区;

                    logical:逻辑分区;

                fs-type:文件系统类型;

                    ext[2|3|4],linux-swap,xfs等;

                start:分区开始位置;

                end:分区结尾位置;   

            print:查看指定磁盘的分区表;

            rescue start end:恢复已被删除的分区;

            rm partition:删除指定分区;

                partition:分区号码;

                    从1开始的数字,例如:想要删除指定/dev/sda5分区,rm 5 即可;      

            set partition flag state:设置分区标记;

                flag:

                    boot:引导分区;

                    hidden:隐藏分区;

                    raid:磁盘阵列;

                    lvm:逻辑卷;

                    注意:此处不支持swap分区,swap分区可以在创建分区时指定。

                state:

                    on:激活状态;

                    off:关闭状态;

            quit:退出parted交互模式;

            select device:选择操作的磁盘,交互模式中使用。

三.parted命令的使用方法

    下面使用一些范例来说明以上参数的用法:

    1、查看所有块设备

1.png

    在上图中可以看到两块磁盘,它们的容量分别为107G和4T,它们的分区表类型均为msdos。

    2、使用fdisk尝试划分在于2T的分区 

2.png

    尝试划分2500G的分区,但结果却只得到了一个452G的分区,这是怎么回事呢?我们再来尝试划分一个2T分区;     

3.png

    明明划分的是2TB的分区,结果分区大小却为0;说明MBR分区最大支持到2TB,那于大于2TB的部分将会在减去2T后将剩余的空间划分为一个分区,这也就是为什么在划分sda1时指定2500GB,却只得到了一个452G分区的原因。 

    3、将/dev/sdb转换为GPT分区

    因为MBR分区类型无法支持2GB以上的分区,所以需要将/dev/sdb转换为GPT分区;

    注意转换分区类型会删除磁盘上的所有数据,在转换前要做好备份工作;

4.png

    如上图所示,在转换前会提醒数据将丢失并询问是否继续。      

    4、新建一个2500GB的分区

5.png

    使用fdisk命令查看分区信息;

6.png

    5、将分区格式化后挂载到/mnt/sdb1目录下

1.png

    由于环境为CentOS 7,所以在格式化分区时使用了xfs格式,其实刚才在创建分区时指定的文件系统格式是ext4,但格式化时并没有影响,表时创建分区时指定的文件系统只是用于标识,并没有实际作用。

8.png

    测试文件系统,在目录中创建一个测试文件;

16.png

    6、修改分区的名称

10.png

12.png

    7、删除分区

13.png

14.png

    8、恢复已删除分区

    parted具有恢复已经被删除的分区的功能,但一定要记得被删除的分区的起始和结束边界;

15.png

    恢复的文件系统的名称(Name)已经没有了,查看目录中的文件是否可以正常读取;

17.png

    结果显示恢复的文件系统可以正常读取原数据。

    9、修改分区标识

18.png

    设置/dev/sdb1为lvm,并且处于激活状态;

19.png

    10、交互模式

    parted命令与fdisk命令一样,也有交互模式,其中使用的命令与上面介绍的用法相同;

    使用pared命令不带任何参数即可进入交互模式;

    不指定磁盘的话,默认对第一块磁盘进行操作,如下图所示:

20.png

    如想更换操作的磁盘有以下两种方法:

        1)进入交互模式时指定要操作的磁盘;

21.png

        2)在交互模式中使用select命令切换操作磁盘;    

22.png

    退出交互模式;

23.png

    在交互模式中使用help查看帮助信息;

24.png

    查看命令的具体使用方法,help COMMAND;

25.png

    从上面结果可知,在交互模式中,命令的使用方法与命令行方式中的使用方法是一样的,可参考前面的命令参数介绍。

转载请注明:运维部落  parted使用说明