天翼或阿里云-云平台后台在线扩容后,怎么把磁盘和文件系统扩容(容量显示正常)

我使用的天翼云的ECS,购买一个一个磁盘 /dev/vda ,容量是40G ,分区是/dev/vda1,我现在通过云平台把/dev/vda 从40G扩充到100G, 使用fdisk  -l 可以看到100G,然而使用 df -hP 查看还是40G,我怎么把100G的磁盘转换成实际可以使用的磁盘?

请先 登录 后评论

1 个回答

石天

你遇到的是典型的“扩容后文件系统未同步”问题:云平台已经把底层磁盘从 40 GB 扩到 100 GB,但操作系统里的分区表和文件系统还停留在 40 GB。

下面给出一条“不丢数据、不重启、不新建分区”的完整思路,按顺序执行即可把 100 GB 全部用起来。

(以下命令均以 root 身份在 /dev/vda 上操作,请确认你只有一块系统盘且是 vda,如有第二块数据盘请先备份再操作。)

一,查看磁盘block块容量和文件系统容量

lsblk -p

# 应该能看到 vda 100G,vda1 40G

df -hP /

# 应该看到根分区 40G

二:安装在线扩容工具

# CentOS/Rocky/Alma

yum install -y cloud-utils-growpart xfsprogs

# Ubuntu/Debian

apt-get update && apt-get install -y cloud-guest-utils xfsprogs


三: 把分区表“拉”到 100 GB(不丢数据)

growpart /dev/vda 1

# 注意:1 前面有空格,表示第 1 分区


四:把文件系统也拉到 100 GB,根据你根分区的文件系统类型选一条



xfs(CentOS 默认)

xfs_growfs /

 
ext4(Ubuntu 默认)

resize2fs /dev/vda1

五:进行验证

df -hP /
# 现在应该看到 99G 左右可用
lsblk -p
# vda1 100G

常见问题
1. growpart  报 “NOCHANGE”
说明你之前已经扩过分区表,直接跳第 4 步即可。

2. xfs_growfs  报 “data size unchanged”
同样说明文件系统已经在线扩完,无需再操作。

3. 如果你用的是 LVM( lsblk  里出现 centos-root 或 ubuntu--vg-root 等)
先扩物理卷  pvresize /dev/vda1 ,再扩逻辑卷  lvextend -l +100%FREE /dev/mapper/centos-root ,最后  xfs_growfs /  或  resize2fs 。

一句话总结
growpart 扩分区 → resize2fs/xfs_growfs 扩文件系统,两步即可把云平台的 100 GB 真正用起来,全程无需重启。

请先 登录 后评论
  • 1 关注
  • 0 收藏,23 浏览
  • shitian 提出于 2025-12-23 09:59

相似问题