华为云 EVS 云硬盘扩容后空间没变大?分区与文件系统扩展步骤

举报
yd_294423728 发表于 2026/10/28 11:28:17 2026/10/28
【摘要】 背景在华为云控制台给 EVS 云硬盘扩容后,很多人登录 ECS 一看,df -h 显示的容量还是原来那么大,于是以为扩容失败了。其实控制台扩容只是把块设备变大了,分区和文件系统并不会自动跟着变大,需要在系统里再做两步:扩分区、扩文件系统。本文整理 Linux 下最常见的几种情况和对应命令,以及容易踩的坑。 先分清三层层级查看命令扩容后是否自动变大块设备(云硬盘本身)lsblk是(控制台扩容...

背景

在华为云控制台给 EVS 云硬盘扩容后,很多人登录 ECS 一看,df -h 显示的容量还是原来那么大,于是以为扩容失败了。其实控制台扩容只是把块设备变大了,分区和文件系统并不会自动跟着变大,需要在系统里再做两步:扩分区、扩文件系统。

本文整理 Linux 下最常见的几种情况和对应命令,以及容易踩的坑。

先分清三层

层级 查看命令 扩容后是否自动变大
块设备(云硬盘本身) lsblk 是(控制台扩容后即生效,个别旧系统需重新扫描)
分区 lsblk / fdisk -l / parted -l 否,需要 growpart 或 parted
文件系统 df -Th 否,需要 resize2fs / xfs_growfs

判断方法:lsblk 里磁盘(如 vdb)已经是新容量,但分区(如 vdb1)还是旧容量,说明卡在第二层;分区也变大了但 df -Th 没变,说明卡在第三层。

扩容前的准备

  1. 先打快照或备份。扩分区是改分区表的操作,操作失误可能导致数据不可读,有快照心里不慌。
  2. 确认分区表类型:parted /dev/vdb print 看 Partition Table 是 msdos(MBR)还是 gpt。MBR 分区最大只支持 2 TiB,扩到 2 TiB 以上要用 GPT。
  3. 确认文件系统类型:df -Th,常见是 ext4 或 xfs,两者扩展命令不同。
  4. 确认是不是 LVM:lsblk 里看到 lvm 类型的设备,就要走下面 LVM 的步骤。

情况一:普通分区 + ext4/xfs(最常见)

以数据盘 /dev/vdb,分区 /dev/vdb1 为例:

# 1. 确认磁盘已变大
lsblk

# 2. 安装 growpart(不同发行版包名不同)
# CentOS / EulerOS / openEuler: yum install -y cloud-utils-growpart
# Ubuntu / Debian: apt install -y cloud-guest-utils

# 3. 扩分区(注意磁盘和分区号之间有空格)
growpart /dev/vdb 1

# 4. 扩文件系统
# ext4:
resize2fs /dev/vdb1
# xfs(参数是挂载点):
xfs_growfs /mnt/data

# 5. 验证
df -Th

系统盘同理,通常是 growpart /dev/vda 1 加上 resize2fs /dev/vda1 或 xfs_growfs /。growpart 和 resize2fs、xfs_growfs 都支持在线执行,一般不需要卸载或重启。

情况二:LVM

LVM 多了物理卷(PV)和逻辑卷(LV)两层:

growpart /dev/vdb 1              # 分区在 PV 下面时先扩分区;整盘做 PV 则跳过
pvresize /dev/vdb1               # 让 PV 识别新容量
lvextend -l +100%FREE /dev/vg_data/lv_data
resize2fs /dev/vg_data/lv_data   # ext4
# 或 xfs_growfs /挂载点           # xfs

也可以用 lvextend -r,它会顺手调用对应的文件系统扩展命令。

情况三:整盘直接做文件系统(没有分区)

有些数据盘是直接 mkfs.ext4 /dev/vdb,没有分区。这种情况跳过 growpart,直接 resize2fs /dev/vdb 或 xfs_growfs 挂载点 即可。

常见的坑

  • 用 resize2fs 扩 xfs:会报错 Bad magic number。xfs 要用 xfs_growfs,而且参数是挂载点。
  • growpart 写错格式:是 growpart /dev/vdb 1,不是 growpart /dev/vdb1。
  • growpart 提示 NOCHANGE:说明分区已经到磁盘末尾,或者系统还没感知到新容量。可以先看 lsblk 里磁盘大小有没有变;个别旧内核可以尝试重新扫描设备,仍不行再考虑重启。
  • MBR 超过 2 TiB:分区最多只能用到 2 TiB,多出来的部分用不上,需要规划成 GPT。
  • xfs 不能缩容:xfs 只能扩不能缩,规划容量时要留意。
  • 云硬盘只能扩不能缩:控制台扩容是单向的,按需逐步扩比一次扩很大更稳妥。
  • 扩容后要不要改 fstab:只是扩容不用改;但如果挂载用的是 /dev/vdb1 这种设备名,建议顺便改成 UUID,避免多盘时设备名变化导致开机挂载失败。

自检清单

  1. lsblk:磁盘容量是否已经是新值?
  2. 分区表是 MBR 还是 GPT,目标容量是否超过 2 TiB?
  3. 有没有 LVM?
  4. 文件系统是 ext4 还是 xfs?
  5. 扩完后 df -Th 是否显示新容量?
  6. 快照确认无误后,按需清理。

小结

控制台扩容只是第一步,系统内还要「扩分区 + 扩文件系统」。先用 lsblk 和 df -Th 定位卡在哪一层,再按 ext4/xfs、普通分区/LVM 选对命令,基本就不会出问题。我习惯每次扩容前先打个快照,再按上面的清单一步步核对。弹性弹服弹器

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。