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的主分区