腾讯云 100G 系统盘扩到 200G,growpart 执行成功,fdisk 里看分区已经是 200G,跑 resize2fs /dev/vda1 直接报 Bad magic number in super-block while trying to open,容量一直停在一百 G。
原因不止一个,得分开看。resize2fs 的参数写成了整块盘而不是分区,读到的位置本来就不是超级块;分区表改了但内核还没重读,/proc/partitions 里仍是旧大小;主超级块损坏,需要指定备份超级块才能打开;扩容操作前 fdisk 保存时把分区起始扇区改了,分区已经错位。
上来先确认设备名和分区大小是不是对齐
lsblk /dev/vda && cat /proc/partitions | grep vda
随后让内核重新读取分区表
partprobe /dev/vda && blockdev --getsize64 /dev/vda1
主超级块不行就换备份超级块试
dumpe2fs /dev/vda1 | grep -i backup
等前面都确认过,再用备份超级块执行扩容
resize2fs -b /dev/vda1 200G
报错是间歇性的,我蹲守了半小时才抓到一次完整现场。
别只看报错消失,验证要多做一步。resize2fs 输出 The filesystem on /dev/vda1 is now 52428800 blocks,df -h 里容量变成 200G 且挂载读写正常。
提醒一点。扩容顺序是分区、内核重读、文件系统三层,任何一层没跟上都会报类似错误,先 lsblk 对齐再动手。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。
