虚拟机系统盘(GPT标准分区)扩容文档

本文主要介绍如何对虚拟机的系统盘(GPT标准分区)进行扩容。假设在虚拟机订购完成后,默认系统盘空间为50G,均挂载在根分区(/)下,然后在控制台上进行系统盘扩容,但是因为操作系统内分区表和文件系统未进行扩容操作,执行df -h会看到根分区仍然只有50G的空间,故需要进行根分区(/)和文件系统的扩容。

说明
此扩容操作涉及到系统盘,若操作有误存在导致操作系统故障的风险,请务必严格按照文档谨慎操作并做好备份操作,建议在虚拟机创建初期,未部署任何应用前进行操作。

前期准备


在待扩容机器上依此执行以下命令检查确认磁盘分区情况

1
2
df -h
lsblk

例如通过以下结果可知系统盘根分区(/dev/vda4)目前空间只有45.5G(扣除/bootswap分区),但实际上/dev/vda磁盘有250G的空间,并且根(/)所在分区/dev/vda4为磁盘/dev/vda的最后一个分区(此点必须满足才可以继续下面的步骤)。

那么接下来就是要将系统盘(/dev/vda)的剩余空间全部扩容到根分区中。

操作步骤


扩容根分区

  1. 通过parted命令扩容系统盘根分区(/dev/vda4)的大小
1
2
# parted  <path_to_device>
parted /dev/vda

说明
help可以查看parted命令帮助
print可以查看当前分区表信息
确认“Partition Table”为gpt再继续后续步骤

通过resizepart命令重置/dev/vda4分区的大小,END参数设置为Disk磁盘大小,将所有剩余空间均分配给/dev/vda4

重置大小后执行quit退出parted

  1. 执行以下命令重新读取分区表信息

说明
如果机器可以重启建议直接重启机器

1
partprobe
  1. 执行以下命令检查分区扩容情况,可以看到/dev/vda4的大小已扩容至245.1G
1
lsblk

扩容文件系统

  1. 执行以下命令查看根分区文件系统类型
1
mount | grep -w /
  1. 如果是XFS文件系统执行以下命令扩容
1
2
# xfs_growfs <mountpoint>
xfs_growfs /
  1. 如果是EXT4文件系统执行以下命令扩容
1
2
# resize2fs <path_to_partition>
resize2fs /dev/vda4
  1. 执行以下命令确认根分区磁盘空间是否扩容成功
1
df -h

  1. (可选)执行以下命令重启虚拟机看是否重启成功,确保扩容没有对操作系统造成影响。
1
reboot