传统的MBR(Master Boot Record)分区方式,有一个局限:无法支持超过2TB的硬盘分区(单个分区超过2TB)。
GPT(GUID Partition Table)的分区表很好的解决了这个问题,但在Linux系统中,传统的fdisk命令无法支持GPT分区方式,因此只能使用parted命令来实现划分大于2TB的分区。
注意:parted命令是实时生效的,不要在生产环境测试parted功能。
下面来介绍一下parted命令的用法:
parted [选项] [设备] [命令[参数]]
选项:
-l,�Clist:显示所有块设备;
[命令[参数]]:
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:选择操作的磁盘,交互模式中使用。
下面使用一些范例来说明以上参数的用法:
1、查看所有块设备
在上图中可以看到两块磁盘,它们的容量分别为107G和4T,它们的分区表类型均为msdos。
2、使用fdisk尝试划分在于2T的分区
尝试划分2500G的分区,但结果却只得到了一个452G的分区,这是怎么回事呢?我们再来尝试划分一个2T分区;
明明划分的是2TB的分区,结果分区大小却为0;说明MBR分区最大支持到2TB,那于大于2TB的部分将会在减去2T后将剩余的空间划分为一个分区,这也就是为什么在划分sda1时指定2500GB,却只得到了一个452G分区的原因。
3、将/dev/sdb转换为GPT分区
因为MBR分区类型无法支持2GB以上的分区,所以需要将/dev/sdb转换为GPT分区;
注意转换分区类型会删除磁盘上的所有数据,在转换前要做好备份工作;
如上图所示,在转换前会提醒数据将丢失并询问是否继续。
4、新建一个2500GB的分区
使用fdisk命令查看分区信息;
5、将分区格式化后挂载到/mnt/sdb1目录下
由于环境为CentOS 7,所以在格式化分区时使用了xfs格式,其实刚才在创建分区时指定的文件系统格式是ext4,但格式化时并没有影响,表时创建分区时指定的文件系统只是用于标识,并没有实际作用。
测试文件系统,在目录中创建一个测试文件;
6、修改分区的名称
7、删除分区
8、恢复已删除分区
parted具有恢复已经被删除的分区的功能,但一定要记得被删除的分区的起始和结束边界;
恢复的文件系统的名称(Name)已经没有了,查看目录中的文件是否可以正常读取;
结果显示恢复的文件系统可以正常读取原数据。
9、修改分区标识
设置/dev/sdb1为lvm,并且处于激活状态;
10、交互模式
parted命令与fdisk命令一样,也有交互模式,其中使用的命令与上面介绍的用法相同;
使用pared命令不带任何参数即可进入交互模式;
不指定磁盘的话,默认对第一块磁盘进行操作,如下图所示:
如想更换操作的磁盘有以下两种方法:
1)进入交互模式时指定要操作的磁盘;
2)在交互模式中使用select命令切换操作磁盘;
退出交互模式;
在交互模式中使用help查看帮助信息;
查看命令的具体使用方法,help COMMAND;
从上面结果可知,在交互模式中,命令的使用方法与命令行方式中的使用方法是一样的,可参考前面的命令参数介绍。
转载请注明:运维部落 parted使用说明