CN2 VPS 在云平台完成磁盘扩容后,如果操作系统内 df -h 未显示新容量,通常是因为分区表或文件系统未同步更新。使用 growpart 扩展分区表后,再对 ext4 文件系统执行 resize2fs 即可生效,操作前务必备份数据以防分区表损坏。
先说结论:扩容后容量未生效本质是底层块设备已变大,但上层分区表和文件系统仍维持旧大小,需按顺序刷新分区表与文件系统。
- 适合场景:云服务器控制台已扩容磁盘,但 Linux 系统内识别不到新增空间。
- 先看状态:执行
lsblk确认磁盘物理大小已变,但分区大小未变。 - 建议备份:调整分区表存在数据丢失风险,操作前建议创建快照或备份关键数据。
命令速用版
以下命令适用于大多数基于 ext4 文件系统的 Linux 发行版,假设扩容磁盘为 /dev/vda,分区为 /dev/vda1。
# 1. 安装必要工具(CentOS)
yum install -y cloud-utils-growpart e2fsprogs
# 1. 安装必要工具(Ubuntu/Debian)
apt-get install -y cloud-guest-utils e2fsprogs
# 2. 扩展分区表(将/dev/vda 的第 1 个分区扩展到最大)
growpart /dev/vda 1
# 3. 刷新分区表(部分系统需要)
partprobe /dev/vda
# 4. 扩展文件系统(ext4 使用 resize2fs)
resize2fs /dev/vda1为什么会这样
磁盘扩容未生效是因为 Linux 存储栈分为物理磁盘、分区表、文件系统三层,扩容操作通常只改变了最底层的物理磁盘大小。
云平台调整磁盘大小后,虚拟磁盘文件(如.vmdk)元数据已更新,但客户机内核可能未重新扫描 SCSI 总线,导致块设备大小未刷新。即使内核识别了新容量,分区表(Partition Table)仍记录着旧的结束扇区,文件系统(Filesystem)又基于分区表构建,因此必须依次通知分区表工具和新文件系统工具去占用新增的扇区空间。
分步处理
按顺序执行以下步骤,每步完成后需确认状态再进入下一步。
第一步:确认底层磁盘已扩容
执行 lsblk 或 fdisk -l /dev/vda,查看磁盘总容量是否与控制台一致。如果磁盘大小未变,需在系统内触发 SCSI 重扫描或重启实例。
第二步:安装扩容工具
部分最小化安装的系统默认缺少 growpart。CentOS 系统通过 yum install -y cloud-utils-growpart 安装,Ubuntu 系统通过 apt-get install -y cloud-guest-utils 安装。
第三步:扩展分区表
使用 growpart /dev/vda 1 命令,其中 1 代表分区号。若提示成功,再次运行 lsblk 应能看到分区大小已接近磁盘总大小。
第四步:扩展文件系统
确认文件系统类型,ext4 使用 resize2fs /dev/vda1,xfs 使用 xfs_growfs /挂载点。执行完成后无需重启,空间立即生效。
怎么验证是否生效
操作完成后,通过系统命令对比扩容前后的数值,确认文件系统已识别新增空间。
执行 df -h 查看挂载点可用空间是否增加,同时运行 lsblk 确认分区大小与磁盘大小一致。若使用 LVM,还需检查 pvs 和 lvs 确认物理卷和逻辑卷容量已同步更新。
常见坑
处理磁盘扩容时,不同文件系统工具和分区结构容易导致操作失败或数据风险。
首先是文件系统类型混淆,xfs 文件系统不支持 resize2fs,必须使用 xfs_growfs 且指定挂载点而非设备路径。其次是 LVM 结构,若磁盘被 LVM 管理,需先执行 pvresize 扩展物理卷,再执行 lvextend 扩展逻辑卷,最后才调整文件系统。最后是分区表风险,手动使用 fdisk 删除重建分区时,若起始扇区不一致会导致数据丢失,优先推荐非破坏性的 growpart 工具。
常见问题
resize2fs 报错 Device busy 怎么办
若文件系统已挂载且内核支持在线扩容,可直接运行;若报错,检查是否有进程占用,必要时卸载后操作。
扩容后是否需要重启服务器
大多数现代 Linux 内核支持在线扩容分区和文件系统,操作生效后无需重启即可立即使用新空间。
如何确认是 ext4 还是 xfs 文件系统
执行 df -T 命令,查看 Type 列,显示 ext4 则用 resize2fs,显示 xfs 则用 xfs_growfs。
参考来源
- Linux 磁盘扩容后宝塔面板不显示?手把手教你用 resize2fs 和 growpart 更新分区
- Linux 磁盘扩容后容量未生效的原因
- Linux 磁盘扩容后不生效怎么办_分区与文件系统处理【教程】
- resize2fs 强制扩容 resize2fs 在线扩容