分区工具parted的详解及常用分区使用方法

一、 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
# 实现开机自动挂载
*************** 当你发现自己的才华撑不起野心时,就请安静下来学习吧!***************
原文地址:https://www.cnblogs.com/lvzhenjiang/p/14391479.html