扩展Linux系统盘分区和文件系统

对于Linux操作系统,在控制台扩容后,需要将扩容部分的容量划分至原有分区内,或者为扩容部分的云硬盘分配新的分区。

对于扩容前系统盘只有一个分区(例如/dev/vda1)的情况,扩容后,如果重启了云主机实例,则扩容的容量会自动加入到当前分区(/dev/vda1)中,您可以直接使用扩容后的容量。

对于扩容前系统盘存在多个分区(例如/dev/vda1/dev/vdb2)或者只有一个分区(例如/dev/vda1)但扩容后不重启实例的情况下,您可以参考如下步骤进行操作。

本文以CentOS 7.5 64位操作系统和CentOS 6.5 64位操作系统为例进行介绍。

包括如下任务:

扩容容量划分至原有分区

扩容容量划分至原有分区的准备工作

本示例以数据盘“/dev/vda”原有容量40GB,有1个分区“/dev/vda1”为例,将数据盘容量扩大至50GB,将新增的10GB划分至已有的MBR分区“/dev/vda1”内。

  1. 登录Linux实例。

  1. 运行如下命令,安装growpart扩容工具。

yum install cloud-utils-growpart

如果执行后回显为工具使用介绍,则表示已经安装,无需重复安装。

  1. 运行如下命令,查看Linux操作系统内核版本。

uname -a

内核版本不同,需要进行的操作也不同。

当内核版本高于3.6.0时(例如Linux CentOS 7.5 64位系统),不需要重启实例即可完成扩容,具体操作请参见“扩容容量划分至原有分区(高内核版本)”。

高内核版本以Linux CentOS 7.5 64位操作系统为例,回显信息如下:

版本号为3.1.10,高于3.6.0

当内核版本低于3.6.0时(例如Linux CentOS 6.5 64位系统),需要执行reboot命令重启实例才能完成扩容,具体操作请参见“扩容容量划分至原有分区(低内核版本)。

低内核版本以CentOS 6.5 64位操作系统为例,回显信息如下:

版本号为2.6.32,低于3.6.0

扩容容量划分至原有分区(内核版本高于3.6.0

  1. 运行如下命令,查看系统盘“/dev/vda”的总容量。

fdisk -l

回显信息如下,表示“/dev/vda”的总容量已变为扩容后的容量。

  1. 运行如下命令,查看系统盘分区“/dev/vda1”的容量和文件系统格式。

df -TH

回显信息如下,表示“/dev/vda1”的容量仍为扩容前的容量,文件系统格式为xfs

  1. 运行如下命令,调用growpart为需要扩容的云硬盘和对应的第几个分区扩容。

growpart [磁盘名称] [分区编号]

本例中,指定系统盘分区“/dev/vda1”。磁盘名称为“/dev/vda”,分区编号为1

growpart /dev/vda 1

回显信息如下:

  1. 对磁盘分区进行扩容。

当文件系统为ext*类型时,运行如下命令:

resize2fs [分区名称]

例如,对/dev/vda1进行扩容:

resize2fs /dev/vda1

当文件系统为xfs类型时,运行如下命令:

xfs_growfs [分区名称]

例如,对/dev/vda1进行扩容:

xfs_growfs /dev/vda1

本示例中,“/dev/vda1”分区的文件系统类型为xfs,回显信息如下,表示扩容完成。

运行“df -TH”命令,查看是否扩容成功。

回显信息如下,“/dev/vda1”分区的容量已变为扩容后的容量,扩容成功。

扩容容量划分至原有分区(内核版本低于3.6.0

  1. 运行如下命令,重新生成initramfs文件。

dracut -f

  1. 运行如下命令,查看系统盘“/dev/vda”的总容量。

fdisk -l

回显信息如下,表示“/dev/vda”的总容量已变为扩容后的容量。

  1. 运行如下命令,查看系统盘分区“/dev/vda1”的容量和文件系统格式。

df -TH

回显信息如下,表示“/dev/vda1”的容量仍为扩容前的容量,文件系统格式为ext4

  1. 运行如下命令,调用growpart为需要扩容的云硬盘和对应的第几个分区扩容。

growpart [磁盘名称] [分区编号]

本例中,指定系统盘分区“/dev/vda1”。磁盘名称为“/dev/vda”,分区编号为1

growpart /dev/vda 1

回显信息如下:

  1. 运行reboot命令,重启云主机实例。

  1. 重启完成后,重新登录云主机实例,并执行以下操作。

  1. 对磁盘分区进行扩容。

当文件系统为ext*类型时,运行如下命令:

resize2fs [分区名称]

例如,对/dev/vda1进行扩容:

resize2fs /dev/vda1

当文件系统为xfs类型时,运行如下命令:

xfs_growfs [分区名称]

例如,对/dev/vda1进行扩容:

xfs_growfs /dev/vda1

本示例中,“/dev/vda1”分区的文件系统类型为ext4,回显信息如下,表示扩容完成。

  1. 运行“df -TH”命令,查看是否扩容成功。

回显信息如下,“/dev/vda1”分区的容量已变为扩容后的容量,扩容成功。

 

扩容容量格式化为新分区

将扩容部分的容量格式化为新的MBR分区,相当于在原有磁盘中新建一个MBR分区。

本示例以数据盘“/dev/vda”原有容量40GB,有1个分区“/dev/vda1”为例,将数据盘容量扩大至50GB,将新增的10GB划分至新的MBR分区“/dev/vda2”内。

 

  1. 登录Linux实例。

  1. 运行如下命令,查看当前磁盘分区情况。

lsblk

回显信息如下,表示“/dev/vda”的总容量已变为扩容后的容量。

 

  1. 运行如下命令,对新增数据盘执行分区操作。

fdisk [新增数据盘]

以新挂载的数据盘“/dev/vda”为例:

fdisk /dev/vda

回显信息如下:

 

  1. 输入“n”,按“Enter”,创建新的分区。

 

磁盘有两种分区类型:

"p”表示主分区。

"e”表示扩展分区。

以创建一个主分区为例,输入“p”,按“Enter”,开始创建一个主分区。

 

  1. 输入分区编号。

以分区编号选择“2”为例,输入主分区编号“2”,按“Enter”

 

  1. 输入新建分区的初始磁柱值,按“Enter”

系统会自动提示新分区可用空间的起始磁柱值和截止磁柱值,可以输入此区间内的值,或者使用默认值。

以选择默认初始磁柱编号为例,输出如下回显信息:

 

  1. 输入截止磁柱值,按“Enter”

系统会自动提示新分区可用空间的起始磁柱值和截止磁柱值,可以输入此区间内的值,或者使用默认值。

以选择默认截止磁柱编号为例。输出如下回显信息,表示分区完成,即为10G的扩容容量新建了1个分区。

 

  1. 输入“p”,按“Enter”,查看新建分区的详细信息。

输出如下回显信息,表示新建分区“/dev/vda2”的详细信息。

 

  1. 输入“w”,按“Enter”,将分区结果写入分区表中。

输出如下回显信息。

 

  1. 运行如下命令,将新的分区表同步至操作系统。

partprobe

  1. 运行如下命令,格式化文件系统为所需格式。

mkfs -t [文件系统格式] [新建分区]

以文件格式为EXT4为例:

mkfs -t ext4 /dev/vda2

回显信息如下:

 

如果需要设置为xfs文件系统的,请执行命令:mkfs -t xfs /dev/vda2