补充说明
resize2fs 属于 e2fsprogs,用于扩大或缩小 ext 系列文件系统。扩容通常可以在线进行:先扩大底层块设备或逻辑卷(lvextend、分区调整),再执行 resize2fs,内核与文件系统会协作完成迁移。缩容则必须卸载文件系统,且要先做一致性检查。
标准缩容流程:umount 卸载,e2fsck -f 强制检查,resize2fs <设备> <新大小> 缩小文件系统,最后再缩小分区或逻辑卷。顺序不能颠倒,否则会破坏数据。缩容前建议备份;resize2fs -P 可以打印文件系统能缩到的最小块数。
文件系统大小参数可使用 S、K、M、G 后缀(大小写含义有别,注意 man 页说明);不指定大小时默认扩展到设备当前大小。ext4 的在线扩容支持良好,ext3 也可在线扩容,但缩容始终需要卸载。
语法
resize2fs [选项] 设备 [新大小]
选项
-p:显示进度条-P:打印文件系统最小尺寸(块数)后退出-M:缩小到最小尺寸-f:强制执行,跳过某些安全检查-F:在调整前刷新设备缓冲区-d:输出调试信息
实例
# 扩容:先把逻辑卷扩大,再扩展文件系统到设备大小
sudo lvextend -L +10G /dev/vg0/lv_home
sudo resize2fs /dev/vg0/lv_home
# 明确扩展到 50G
sudo resize2fs /dev/vg0/lv_home 50G
# 查看最小可缩尺寸(单位为块)
sudo resize2fs -P /dev/vg0/lv_home
# 缩容前必须卸载并检查
sudo umount /home
sudo e2fsck -f /dev/vg0/lv_home
sudo resize2fs /dev/vg0/lv_home 20G
sudo lvreduce -L 20G /dev/vg0/lv_home
# 查看文件系统类型与块大小
sudo dumpe2fs -h /dev/vg0/lv_home | grep -E 'Block size|Block count'