What is the difference between xfs_growfs and resize2fs?
xfs_growfs grows XFS only and takes a mount point (online-only, no shrink); resize2fs resizes ext2/3/4 and takes a device path (online or offline, and can shrink).
These are the two filesystem-resize tools, and the differences matter because using the wrong argument fails:
xfs_growfs |
resize2fs |
|
|---|---|---|
| Filesystem | XFS | ext2 / ext3 / ext4 |
| Argument | mount point (e.g. /mnt/data) |
device path (e.g. /dev/vg01/lv01) |
| Online (mounted) | Yes — only mounted | Yes |
| Offline (unmounted) | No | Yes |
| Shrink | No | Yes |
xfs_growfs /mnt/data # XFS wants the mount point
resize2fs /dev/vg01/lv01 # ext4 wants the device path
Why they differ: XFS was designed around grow-only, always-online operation, so it identifies the filesystem by where it's mounted and refuses to shrink by design. ext4 keeps backward compatibility with the older ext2/ext3 resize machinery, which operates on the device and can do both directions.
Practical upshot: remember "XFS = mount point, grow only; ext4 = device path, both ways." Reach for either one after lvextend has made the underlying LV bigger — resizing the filesystem is always the second half of growing storage.