最近更新时间:2022-02-09
对于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”内。
运行如下命令,安装growpart扩容工具。
yum install cloud-utils-growpart |
如果执行后回显为工具使用介绍,则表示已经安装,无需重复安装。
运行如下命令,查看Linux操作系统内核版本。
uname -a |
内核版本不同,需要进行的操作也不同。
当内核版本高于3.6.0时(例如Linux CentOS 7.5 64位系统),不需要重启实例即可完成扩容,具体操作请参见“扩容容量划分至原有分区(内核版本高于3.6.0)”。
高内核版本以Linux CentOS 7.5 64位操作系统为例,回显信息如下:
版本号为3.1.10,高于3.6.0。
当内核版本低于3.6.0时(例如Linux CentOS 6.5 64位系统),需要执行reboot命令重启实例才能完成扩容,具体操作请参见“扩容容量划分至原有分区(内核版本低于3.6.0)”。
低内核版本以CentOS 6.5 64位操作系统为例,回显信息如下:
版本号为2.6.32,低于3.6.0。
运行如下命令,查看系统盘“/dev/vda”的总容量。
fdisk -l |
回显信息如下,表示“/dev/vda”的总容量已变为扩容后的容量。
运行如下命令,查看系统盘分区“/dev/vda1”的容量和文件系统格式。
df -TH |
回显信息如下,表示“/dev/vda1”的容量仍为扩容前的容量,文件系统格式为xfs。
运行如下命令,调用growpart为需要扩容的云硬盘和对应的第几个分区扩容。
growpart [磁盘名称] [分区编号] |
本例中,指定系统盘分区“/dev/vda1”。磁盘名称为“/dev/vda”,分区编号为1:
growpart /dev/vda 1 |
回显信息如下:
对磁盘分区进行扩容。
当文件系统为ext*类型时,运行如下命令:
resize2fs [分区名称] |
例如,对/dev/vda1进行扩容:
resize2fs /dev/vda1 |
当文件系统为xfs类型时,运行如下命令:
xfs_growfs [分区名称] |
例如,对/dev/vda1进行扩容:
xfs_growfs /dev/vda1 |
本示例中,“/dev/vda1”分区的文件系统类型为xfs,回显信息如下,表示扩容完成。
运行df -TH命令,查看是否扩容成功。
回显信息如下,“/dev/vda1”分区的容量已变为扩容后的容量,扩容成功。
运行如下命令,重新生成initramfs文件。
dracut -f |
运行如下命令,查看系统盘“/dev/vda”的总容量。
fdisk -l |
回显信息如下,表示“/dev/vda”的总容量已变为扩容后的容量。
运行如下命令,查看系统盘分区“/dev/vda1”的容量和文件系统格式。
df -TH |
回显信息如下,表示“/dev/vda1”的容量仍为扩容前的容量,文件系统格式为ext4。
运行如下命令,调用growpart为需要扩容的云硬盘和对应的第几个分区扩容。
growpart [磁盘名称] [分区编号] |
本例中,指定系统盘分区“/dev/vda1”。磁盘名称为“/dev/vda”,分区编号为1:
growpart /dev/vda 1 |
回显信息如下:
运行reboot命令,重启云主机实例。
重启完成后,重新登录云主机实例,并执行以下操作。
对磁盘分区进行扩容。
当文件系统为ext*类型时,运行如下命令:
resize2fs [分区名称] |
例如,对/dev/vda1进行扩容:
resize2fs /dev/vda1 |
当文件系统为xfs类型时,运行如下命令:
xfs_growfs [分区名称] |
例如,对/dev/vda1进行扩容:
xfs_growfs /dev/vda1 |
本示例中,“/dev/vda1”分区的文件系统类型为ext4,回显信息如下,表示扩容完成。
运行df -TH命令,查看是否扩容成功。
回显信息如下,“/dev/vda1”分区的容量已变为扩容后的容量,扩容成功。
将扩容部分的容量格式化为新的MBR分区,相当于在原有磁盘中新建一个MBR分区。
本示例以数据盘“/dev/vda”原有容量40GB,有1个分区“/dev/vda1”为例,将数据盘容量扩大至50GB,将新增的10GB划分至新的MBR分区“/dev/vda2”内。
登录Linux实例。
运行如下命令,查看当前磁盘分区情况。
lsblk |
回显信息如下,表示“/dev/vda”的总容量已变为扩容后的容量。
运行如下命令,对新增数据盘执行分区操作。
fdisk [新增数据盘] |
以新挂载的数据盘“/dev/vda”为例:
fdisk /dev/vda |
回显信息如下:
输入“n”,按“Enter”,创建新的分区。
磁盘有两种分区类型:
"p”表示主分区。
"e”表示扩展分区。
以创建一个主分区为例,输入“p”,按“Enter”,开始创建一个主分区。
输入分区编号。
以分区编号选择“2”为例,输入主分区编号“2”,按“Enter”。
输入新建分区的初始磁柱值,按“Enter”。
系统会自动提示新分区可用空间的起始磁柱值和截止磁柱值,可以输入此区间内的值,或者使用默认值。
以选择默认初始磁柱编号为例,输出如下回显信息:
输入截止磁柱值,按“Enter”。
系统会自动提示新分区可用空间的起始磁柱值和截止磁柱值,可以输入此区间内的值,或者使用默认值。
以选择默认截止磁柱编号为例。输出如下回显信息,表示分区完成,即为10G的扩容容量新建了1个分区。
输入“p”,按“Enter”,查看新建分区的详细信息。
输出如下回显信息,表示新建分区“/dev/vda2”的详细信息。
输入“w”,按“Enter”,将分区结果写入分区表中。
输出如下回显信息。
运行如下命令,将新的分区表同步至操作系统。
partprobe |
运行如下命令,格式化文件系统为所需格式。
mkfs -t [文件系统格式] [新建分区] |
以文件格式为EXT4为例:
mkfs -t ext4 /dev/vda2 |
回显信息如下:
如果需要设置为xfs文件系统的,请执行命令:mkfs -t xfs /dev/vda2。
手动挂载磁盘分区
说明:
手动挂载硬盘后,每次重启系统都需要重新挂载。您可以修改“/etc/fstab”文件,将新建磁盘分区设置为开机自动挂载,参考步骤“开机自动挂载磁盘分区”。
运行如下命令,创建挂载点。
mkdir [挂载点] |
例如,创建挂载点“/guazai”:
mkdir /guazai |
运行如下命令,将新建分区挂载至创建的挂载点。
mount [新建分区] [挂载点] |
例如,将新建分区“/dev/vda2”挂载至挂载点“/guazai”:
mount /dev/vda2 /guazai |
运行df -TH命令,查看是否挂载成功。
回显信息如下,表示挂载成功。
开机自动挂载磁盘分区
运行如下命令,查看新创建分区的UUID和TYPE。
blkid [新建分区] |
以新建分区“/dev/vda2”为例,回显信息如下:
请记录新建分区的UUID。
运行vi /etc/fstab命令,配置自动挂载。
输入i,进入编辑模式。
将光标移至文件末尾,按Enter,添加如下内容。
UUID=77d446cb-b852-48b6-8c50-bdb41faf0284 /guazai ext4 defaults 0 2 |
本示例仅为举例,请以实际情况为准。各字段说明如下:
UUID:即上一步骤中查到的UUID。
挂载点:即磁盘挂载点,可以通过df -TH命令查询,本示例中为/guazai。
文件系统格式:可以通过df -TH命令查询,本示例中为ext4。
磁盘分区挂载选项:此处设置为defaults即可。
Linux dump备份选项:0表示不使用Linux dump备份,1表示使用Linux dump备份。通常设置为0,即不使用Linux dump备份。
fsck选项:即开机时是否使用fsck检查磁盘。0表示不检查,根目录使用1,其他分区从2开始。
按Esc,输入:wq,按Enter,保存退出。
运行reboot命令,重启虚拟机。重启前请先保存数据,以免丢失。
运行df -TH命令,查看是否挂载成功。
如下回显说明“/dev/vda2”已经自动挂载到挂载点“/guazai”。