一、 parted的用途及说明
1.1 MBR分区与GPT分区
传统的MBR分区表格式,仅支持最大四个主分区,而且不可以格式化2TB以上的磁盘,因此,大磁盘更适合使用parted工具进行GPT的分区格式。
1.2 概要说明
parted用于对磁盘(或RAID磁盘)进行分区及管理,与fdisk分区工具相比,支持2TB以上的磁盘分区,并且允许调整分区的大小。
1.3 GNU手册说明
parted是一个用于硬盘分区或调整分区大小的工具。使用它你可以创建、清除、调整、移动和复制ext2、ext3、linux-swap、FAT、FAT32和reiserfs分区;也能创建、调整和移动苹果系统的HFS分区;还能检测jfs、ntfs、ufs和xfs分区。该工具常用于为新安装的操作系统创建空间,重新分配硬盘使用情况,在将数据拷贝到新硬盘的时候也常常使用。
二、parted的使用方法(交互式)
2.1 对磁盘进行分区
$ parted /dev/sdb
# 对/dev/sdb进行分区或管理操作
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
# 定义分区表格式(常用的有msdos和gpt分区表格式,msdos不支持2TB以上容量的磁盘,所以大于2TB的磁盘选gpt分区表格式)
警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
# /dev/sdb上现有的磁盘标签将被销毁,该磁盘上的所有数据将丢失。你想要继续
是/Yes/否/No? yes
(parted) mkpart p1
# 创建第一个分区,名称为p1(p1只是第一个分区的名称,用别的名称也可以,如part1)
文件系统类型? [ext2]? xfs
# 定义分区格式(不支持ext4,想分ext4格式的分区,可以通过mkfs.ext4格式化成ext4格式)
起始点? 1
# 定义分区的起始位置(单位支持K,M,G,T)
结束点? 100%
# 定义分区的结束位置(单位支持K,M,G,T)
(parted) print # 查看当前分区情况
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
1 1049kB 107GB 107GB xfs p1
2.2 删除分区
$ parted /dev/sdb
# 对/dev/sdb进行分区或管理操作
(parted) rm
# rm删除命令(删除之前必须确保分区没有被挂载)
分区编号? 1
# 删除第一个分区
(parted) print # 打印当前分区情况
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
在格式化几个TB的磁盘的时候,时间会非常的长,格式化6T的磁盘时间大概在一个半小时左右。(据硬盘实际情况而定)
三、partd分区实例
fdisk工具虽然很好用,但对于大于2T以上的硬盘分区特别慢,可能一部分容量识别不了,也不支持非交互模式。
用parted就非常方便了,对大硬盘支持很好,也可以实现脚本分区。
parted该指令默认都已经安装过了,如果没有安装的话,使用以下命令进行安装:
$ yum install parted
parted有个不提示用户参数选项,就是通过这个选项来实现非交互!
-s, --script
never prompts for user intervention
3.1 定义分区类型
$ parted -s /dev/sdb mklabel gpt
# -s表示不输出提示信息
# 如果不是用脚本执行分区操作,不建议忽略提示信息
3.2 查看磁盘分区信息
$ parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
3.3 创建与删除分区
命令格式如下:
parted 磁盘 mkpart 分区类型 [文件系统类型] 开始 结束
其中,分区类型有 primary、logical、extended三种,文件系统类型为可选项,一般选择为 ext4、xfs或swap等。开始与结束表示分区开始与结束的位置(默认单位为MB),也可以使用百分比表示分区位置,比如你想把整个磁盘创建一个分区,可以使用下面的命令:
把整个磁盘/dev/sdb创建为一个主分区
$ parted /dev/sdb mkpart primary xfs 0% 100%
把磁盘/dev/sdb创建为多个主分区
$ parted /dev/sdb mkpart primary xfs 1G 10G
$ parted /dev/sdb mkpart primary xfs 10G 50%
$ parted /dev/sdb mkpart primary xfs 50% 100%
$ parted /dev/sdb print # 查看
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
1 1000MB 10.0GB 9000MB primary
2 10.0GB 53.7GB 43.7GB primary
3 53.7GB 107GB 53.7GB primary
删除分区
$ parted /dev/sdb rm 1
# 删除分区号为 1 的分区
$ parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
2 10.0GB 53.7GB 43.7GB primary
3 53.7GB 107GB 53.7GB primary
格式化并挂载
$ mkfs.xfs /dev/sdb2
$ mkdir /data
$ mount /dev/sdb2 /data
$ df -hT /data
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sdb2 xfs 41G 33M 41G 1% /data
四、操作示例
需求:一块 100G的磁盘,使用parted创建一个分区(此分区包含所有磁盘空间),然后挂载到 /data 目录进行使用。过程如下:
$ parted /dev/sdb mklabel gpt
$ parted /dev/sdb mkpart primary xfs 0% 100%
$ mkfs.xfs /dev/sdb1
$ mount /dev/sdb1 /data
$ df -hT /data
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sdb1 xfs 100G 33M 100G 1% /data
$ vim /etc/fstab
/dev/sdb1 /data xfs defaults 0 0
# 实现开机自动挂载