.\" -*- nroff -*-
.\" Copyright 1997 by Theodore Ts'o.  All Rights Reserved.
.\" 
.\" .TH RESIZE2FS 8 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@"
.TH RESIZE2FS 8 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@"
.SH NAME
resize2fs \- ext2/ext3/ext4 file system resizer
.SH SYNOPSIS
.B resize2fs
[
.B \-fFpPM
]
[
.B \-d 
.I debug-flags
]
[
.B \-S
.I RAID-stride
]
.I device
[
.I size
]
.SH DESCRIPTION
The 
.B resize2fs 
program will resize ext2, ext3, or ext4 file systems.  It can be used to
enlarge or shrink an unmounted file system located on 
.IR device .
If the filesystem is mounted, it can be used to expand the size of the
mounted filesystem, assuming the kernel supports on-line resizing.  (As
of this writing, the Linux 2.6 kernel supports on-line resize for
filesystems mounted using ext3 only.).
.PP
The 
.I size
parameter specifies the requested new size of the filesystem.
If no units are specified, the units of the
.I size
parameter shall be the filesystem blocksize of the filesystem.
Optionally, the 
.I size
parameter may be suffixed by one of the following the units 
designators: 's', 'K', 'M', or 'G',
for 512 byte sectors, kilobytes, megabytes, or gigabytes, respectively.
The 
.I size
of the filesystem may never be larger than the size of the partition.
If 
.I size
parameter is not specified, it will default to the size of the partition.
.PP
The
.B resize2fs
program does not manipulate the size of partitions.  If you wish to enlarge
a filesystem, you must make sure you can expand the size of the
underlying partition first.  This can be done using 
.BR fdisk (8)
by deleting the partition and recreating it with a larger size or using
.BR lvextend (8),
if you're using the logical volume manager
.BR lvm (8).
When 
recreating the partition, make sure you create it with the same starting
disk cylinder as before!  Otherwise, the resize operation will 
certainly not work, and you may lose your entire filesystem.  
After running
.BR fdisk (8),
run resize2fs to resize the ext2 filesystem 
to use all of the space in the newly enlarged partition.
.PP
If you wish to shrink an ext2 partition, first use 
.B resize2fs
to shrink the size of filesystem.  Then you may use 
.BR fdisk (8)
to shrink the size of the partition.  When shrinking the size of 
the partition, make sure you do not make it smaller than the new size 
of the ext2 filesystem!
.SH OPTIONS
.TP
.B \-d \fIdebug-flags
Turns on various resize2fs debugging features, if they have been compiled 
into the binary.
.I debug-flags
should be computed by adding the numbers of the desired features 
from the following list:
.br
\	2\	\-\ Debug block relocations
.br
\	4\	\-\ Debug inode relocations
.br
\	8\	\-\ Debug moving the inode table
.TP 
.B \-f
Forces resize2fs to proceed with the filesystem resize operation, overriding 
some safety checks which resize2fs normally enforces.
.TP
.B \-F
Flush the filesystem device's buffer caches before beginning.  Only
really useful for doing 
.B resize2fs
time trials.
.TP
.B \-M
Shrink the filesystem to the minimum size.
.TP
.B \-p
Prints out a percentage completion bars for each
.B resize2fs
operation, so that the user can keep track of what
the program is doing.
.TP
.B \-P
Print the minimum size of the filesystem and exit.
.TP
.B \-S \fIRAID-stride
The
.B resize2fs
program will heuristically determine the RAID stride that was specified
when the filesystem was created.  This option allows the user to
explicitly specify a RAID stride setting to be used by resize2fs instead.
.SH KNOWN BUGS
The minimum size of the filesystem as estimated by resize2fs may be
incorrect, especially for filesystems with 1k and 2k blocksizes.
.SH AUTHOR
.B resize2fs
was written by Theodore Ts'o <tytso@mit.edu>.
.SH COPYRIGHT
Resize2fs is Copyright 1998 by Theodore Ts'o and PowerQuest, Inc.  All
rights reserved.  
As of April, 2000
.B Resize2fs
may be redistributed under the terms of the GPL.
.SH SEE ALSO
.BR fdisk (8),
.BR e2fsck (8),
.BR mke2fs (8),
.BR lvm (8), 
.BR lvextend (8)
