065 resize2fs命令
命令说明
resize2fs 用于调整 ext2/ext3/ext4 文件系统的大小(扩容或缩容),通常在 LVM 扩卷或磁盘扩容后把文件系统撑满新空间;xfs 文件系统则用 xfs_growfs。
语法
resize2fs [选项]... 设备 [大小]
常用参数
| 参数 | 说明 |
|---|---|
| (默认) | 不带大小时扩容到设备的最大可用空间 |
| 大小 | 指定目标大小如 10G、512M(缩容时必须显式给出) |
| -P | 只打印最小可缩到的大小,不实际执行(缩容前评估) |
| -p | 显示进度百分比 |
| -f | 强制跳过一致性检查(慎用) |
| -F | 操作前先强制 fsck 设备 |
| -d 标志 | 输出调试信息 |
| -M | 缩容到最小可能尺寸 |
使用示例
$ resize2fs /dev/sda1
把 sda1 文件系统扩到分区当前大小
$ lvextend -l +100%FREE -r /dev/vg0/lv_root
LVM 扩卷并联动 resize2fs(-r 自动调整)
$ lvextend -L +50G /dev/vg_data/lv_app && resize2fs /dev/vg_data/lv_app
先扩逻辑卷再扩文件系统(在线扩容标准流程)
$ resize2fs -P /dev/sda1
评估该文件系统最小能缩到多少
$ umount /data && e2fsck -f /dev/sdb1 && resize2fs /dev/sdb1 100G && mount /data
缩容流程:卸载→检查→缩→挂载
$ resize2fs /dev/sdb1 2T
扩到指定 2T 大小
$ xfs_growfs /data
对比:xfs 扩容用 xfs_growfs 且按挂载点操作
$ df -h /data
扩容后立即验证生效
实用技巧
- resize2fs 只管 ext 系列文件系统;xfs 用 xfs_growfs(只能扩不能缩),btrfs 用 btrfs filesystem resize,先 blkid/df -T 确认类型再动手。
- ext4 在线扩容(挂载状态下)安全无损;但缩容必须先卸载并 e2fsck -f,顺序颠倒会损坏数据。
- 完整磁盘扩容链条:云盘/RAID 扩容量 → 分区层(growpart 或 fdisk 删建同起点分区)→ LVM(pvresize+lvextend)→ 文件系统层(resize2fs/xfs_growfs),少一层 df 都不会变。
- resize2fs 对 xfs 会报 “Invalid argument” 或 not supported,这是类型不匹配,不是命令坏了。
- LVM 场景 -r 参数(--resizefs)让 lvextend 自动调用 resize2fs/xfs_growfs,一条命令完成两层,最省心。