fdisk命令无法划分大于2T的单个分区,而parted命令比fdisk更加灵活,功能也更丰富。它可以划分单个分区大于2T的GPT格式的分区,也可以划分普通的MBR分区。     

      概念学习:      

       MBR:MBR分区表(即主引导记录)。所支持的最大卷:2T,而且对分区有限制,最多4个主分区或3个主分区加一个扩展分区。

       GPT: GPT(即GUID分区表),是源自EFI标准的一种较新的磁盘分区表结构的标准,是未来磁盘分区的主要形式。与MBR分区方式相比,具有如下优点。突破MBR 4个主分区限制,每个磁盘最多支持128个分区。支持大于2T的分区,最大卷可达18EB。

 

       parted是一个可以分区并能进行分区调整的工具,它可以创建,破坏,移动,复制,调整(ext2、swap、 fat 、fat32、hfs、 reiserfs)类型的分区,并可检测调整jfs,ntfs,ufs,xfs分区。

    使用方法:parted [options] [device [command [options...]...]]

    options

    -h  显示帮助信息

    -l  显示所有块设备上的分区

    device

    对哪个块设备进行操作,如果没有指定则使用第一个块设备

    command [options...]

    check partition  

    对分区做一个简单的检测


    cp [source-device] source dest  

    复制source-device设备上的source分区到当前设备的dest分区

 

    mklabel label-type 

    创建新分区表类型,label-type可以是:"bsd", "dvh", "gpt",  "loop","mac", "msdos", "pc98", or "sun" 一般的pc机都是msdos格式,如果分区大于2T则需要选用gpt格式的分区表。

 

    mkfs partition fs-type  

    在partition分区上创建一个fs-type文件系统,fs-type可以是:"fat16", "fat32", "ext2", "linux-swap","reiserfs" 注意不支持ext3格式的文件系统,只能先分区然后用专有命令进行格式化。

   

    mkpart part-type [fs-type] start end 

    创建一个part-type类型的分区,part-type可以是:"primary", "logical", or "extended" 如果指定fs-type则在创建分区的同时进行格式化。start和end指的是分区的起始位置,单位默认是M。

    eg:mkpart  primary  0  -1   0表示分区的开始  -1表示分区的结尾  意思是划分整个硬盘空间为主分区


    mkpartfs part-type fs-type start end 

    创建一个fs-type类型的part-type分区,不推荐使用,最好是使用mkpart分区完成后使用mke2fs进行格式化。


    name partition name 

    给分区设置一个名字,这种设置只能用在Mac, PC98, and GPT类型的分区表,设置时名字用引号括起来


    select device 

    在机器上有多个硬盘时,选择操作那个硬盘


    resize partition start end  

    调整分区大小


    rm partition  

    删除一个分区


    rescue start end  

    拯救一个位于stat和end之间的分区


    unit unit 

    在前面分区时,默认分区时数值的单位是M,这个参数卡伊改变默认单位,"kB", "MB",  "GB",  "TB"


    move partition start end 

    移动partition分区

 

    print  显示分区表信息  quit 退出parted


 Parted 命令分为两种模式:命令行模式和交互模式。

       1、命令行模式: parted [option] device [command] ,该模式可以直接在命令行下对磁盘进行分区操作,比较适合编程应用。

       2、交互模式:parted [option] device 类似于使用fdisk /dev/xxx 

      


 实战案例1:

需求:
现有一个做了RAID5的硬盘,要求分三个区,

硬盘总分区大小:7T

/data0           4.8T
/data1           1T
                 4G (无需格式化,作DRBD用)
具体操作方法如下:
1、分区
parted /dev/sdb mkpart primary 0 4800000
parted /dev/sdb mkpart primary 4800001 5800001
parted /dev/sdb mkpart primary 5800002 5804098
parted /dev/sdb p

[root@drbd01 ~]# parted /dev/sdb p

Model: DELL PERC H700 (scsi)
Disk /dev/sdb: 6998GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     标志
 1      17.4kB  4800GB  4800GB  ext3         primary      
 2      4800GB  5800GB  1000GB  ext3         primary      
 3      5800GB  5804GB  4097MB               primary  

2、格式化
mkfs.ext3 /dev/sdb1
mkfs.ext3 /dev/sdb2

3、挂载

mount /dev/sdb1   /data0
mount /dev/sdb2   /data1

[root@drbd01 ~]# df -h
文件系统              容量  已用 可用 已用% 挂载点
/dev/sda2              20G  2.7G   16G  15% /
/dev/sda5             875G  1.1G  829G   1% /elain
/dev/sdb1             4.3T  1.3G  4.1T   1% /data0
/dev/sdb2            1000G  1.1G  998G   1% /data0
/dev/sda1             494M   17M  452M   4% /boot

一共7T分区 分区要求一个4.8T 一个 1T  一个 4G 
无交互的parted实战操作过程

export LANG='ZH_CN.GB18030'
parted /dev/sdb mklabel gpt                                                      
parted /dev/sdb mkpart primary 0 4800000  #单位:M
parted /dev/sdb mkpart primary 4800001 5800001
parted /dev/sdb mkpart primary 5800002 5804098
parted /dev/sdb p 

实战案例2

需求

现有一个做了RAID5的硬盘,要求分三个区

硬盘总分区大小:4T

/test0           100M
/test1           100M

剩余所有空间给一个区                
具体操作方法如下:

#  parted  /dev/sdb
GNU  Parted  1.8.1
Using  /dev/sdb
Welcome  to  GNU  Parted!  Type  ‘help’  to  view  a  list  of  commands.

(parted) mklable 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来查看X磁盘刚才的分区是没有用的.

命令行的模式:

将硬盘转化为GPT磁盘后,执行下列命令

parted /dev/sdx mkpart primary 0 100 ##划分一个起始位置为0大小为100M的主分区

parted /dev/sdx mkpart primary 100 200 ##划分一个起始位置为100大小为100M的主分区