扩展现有分区并同步文件系统需两步:先扩展分区边界使内核识别新增空间,再扩展文件系统以实际使用该空间;跳过任一环节df -h均不显示容量增加。

扩展现有分区并同步文件系统,核心是两步:先让分区识别新增空间,再让文件系统用上这部分空间。跳过任一环节,df -h 就不会显示容量变大。
确认扩容前提和当前状态
操作前必须明确三件事:磁盘是否已物理扩容、分区表是否更新、文件系统类型是什么。
- 运行 lsblk 查看设备总容量是否已增大(比如 /dev/vda 从 40G 变成 50G)
- 执行 fdisk -l /dev/vda 确认分区大小是否仍为旧值(如 /dev/vda1 还是 40G)
- 用 df -Th 查目标挂载点(如 /)的文件系统类型,常见为 ext4 或 xfs
- 若使用 LVM,还需运行 vgs 和 lvs 看卷组是否有空闲空间
扩展分区边界(非LVM场景)
适用于直接在物理磁盘上划分的分区(如 /dev/vda1),且磁盘末尾有未分配空间。
- 推荐使用 growpart 工具(云环境兼容性好):
growpart /dev/vda 1 - 若无 growpart,可用 parted:
进入 parted /dev/vda → 输入 unit s → print 记下起始扇区 → rm 1 删除分区 → mkpart primary 2048s 100%(起始扇区必须与之前一致)→ quit - 执行 partprobe /dev/vda 或重启内核识别新分区表
扩展文件系统以占用新空间
这一步不可省略,且命令取决于文件系统类型,对象也不同。
- ext4/ext3/ext2 分区:
resize2fs /dev/vda1(直接对设备路径操作,支持在线) - XFS 文件系统:
先查挂载点:findmnt -n -o TARGET /dev/vda1 → 得到如 / → 再执行 xfs_growfs /(必须对挂载点,不能填设备路径) - LVM 环境下逻辑卷扩容:
lvextend -l +100%FREE /dev/mapper/vg0-root → 再按上述规则执行 resize2fs 或 xfs_growfs
验证是否真正生效
只看 df -h 是不够的,要交叉比对两个维度:
- 运行 lsblk 或 fdisk -l,确认 /dev/vda1 的大小已更新
- 运行 df -h,确认对应挂载点的“Avail”或“Size”列同步增大
- 两者数值应基本一致(允许少量元数据差异),不一致说明某步遗漏或出错


















