阿里云 CentOS 磁盘扩容记录:resize2fs 版本过低导致无法扩容的解决方案

在日常使用阿里云服务器时,经常会遇到数据盘写满的情况。如果只是单纯在控制台扩容磁盘,却发现系统里 /dev/vda2 并没有立刻扩展,这时需要手动操作分区和文件系统。本篇文章整理了从扩容到 resize2fs 报错,再到最终解决的完整过程。


一、问题现象

服务器磁盘情况如下:

bash 复制代码
lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    253:0    0  850G  0 disk
├─vda1 253:1    0  500G  0 part /
└─vda2 253:2    0  350G  0 part /lostData

在对 /dev/vda 扩容后,尝试执行:

bash 复制代码
resize2fs /dev/vda2

报错:

复制代码
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Device or resource busy while trying to open /dev/vda2
Couldn't find valid filesystem superblock.

可以看到系统自带的 resize2fs 版本过低,无法正确识别新分区。


二、解决步骤

1. 确认磁盘扩容是否生效

bash 复制代码
fdisk -l /dev/vda

如果 /dev/vda 大小大于之前的 850G,说明控制台扩容已经传递到系统。

2. 扩展分区

扩容后的空间不会自动分配到 /dev/vda2,需要手动扩展分区。

bash 复制代码
yum install -y cloud-utils-growpart
growpart /dev/vda 2

执行完成后,再次确认:

bash 复制代码
lsblk

此时 /dev/vda2 应该已经变大。

3. 检查文件系统

在调整文件系统前,先运行 e2fsck 检查:

bash 复制代码
e2fsck -f /dev/vda2

4. 扩展文件系统

接下来使用 resize2fs 将文件系统扩展到整个分区:

bash 复制代码
resize2fs /dev/vda2

如果旧版本报错,可以升级 e2fsprogs

bash 复制代码
wget https://mirrors.edge.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.46.5/e2fsprogs-1.46.5.tar.gz
tar -xzf e2fsprogs-1.46.5.tar.gz
cd e2fsprogs-1.46.5
./configure
make && make install

安装完成后,再次运行 resize2fs 即可成功。

5. 验证扩容结果

bash 复制代码
df -hT | grep lostData

可以看到 /lostData 文件系统大小已经扩展到新的磁盘容量。


三、总结

在阿里云 CentOS 环境下,磁盘满了之后的扩容流程可以总结为:

  1. 控制台扩容云盘
  2. growpart 扩展分区
  3. e2fsck 检查文件系统
  4. resize2fs 扩展文件系统(必要时升级 e2fsprogs)
  5. df -hT 验证结果

这样就可以安全、在线地扩展数据盘容量,避免因磁盘满导致业务中断。


相关推荐
郝学胜-神的一滴5 小时前
Linux线程错误调试指南:从原理到实践
linux·服务器·开发语言·c++·程序人生
iconball5 小时前
个人用云计算学习笔记 --32 Docker和docker swarm
运维·笔记·学习·docker·容器·云计算
QT 小鲜肉6 小时前
【Linux命令大全】001.文件管理之mdir命令(实操篇)
linux·运维·服务器·chrome·笔记
这儿有一堆花6 小时前
拒绝性能缩水:如何甄别真正的高性能 VPS
运维·服务器
daizikui6 小时前
streamlit实现登录功能
服务器·前端·javascript
不染尘.6 小时前
cookie和session技术及实现
服务器·网络·网络协议·计算机网络
_F_y6 小时前
五种IO模型
服务器·网络
掘根6 小时前
【消息队列项目】服务器实现
运维·服务器
一只旭宝6 小时前
Linux专题十:I/O 复用进阶(LT/ET 模式)同步,异步阻塞,以及 libevent 库核心知识点
linux·服务器·网络