.\" -*- 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 \-fFpPMbs
]
[
.B \-d
.I debug-flags
]
[
.B \-S
.I RAID-stride
]
[
.B \-z
.I undo_file
]
.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 file system is mounted, it can be used to expand the size of the
mounted file system, assuming the kernel and the file system supports
on-line resizing.  (Modern Linux 2.6 kernels will support on-line resize
for file systems mounted using ext3 and ext4; ext3 file systems will
require the use of file systems with the resize_inode feature enabled.)
.PP
The
.I size
parameter specifies the requested new size of the file system.
If no units are specified, the units of the
.I size
parameter shall be the file system blocksize of the file system.
Optionally, the
.I size
parameter may be suffixed by one of the following units
designators: 'K', 'M', 'G', 'T' (either upper-case or lower-case) or 's'
for power-of-two kilobytes, megabytes, gigabytes, terabytes or 512 byte
sectors respectively. The
.I size
of the file system 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 file system, 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 file system.
After running
.BR fdisk (8),
run resize2fs to resize the ext2 file system
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 file system.  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 file system!
.PP
The
.B \-b
and
.B \-s
options enable and disable the 64bit feature, respectively.  The resize2fs
program will, of course, take care of resizing the block group descriptors
and moving other data blocks out of the way, as needed.  It is not possible
to resize the file system concurrent with changing the 64bit status.
.SH OPTIONS
.TP
.B \-b
Turns on the 64bit feature, resizes the group descriptors as necessary, and
moves other metadata out of the way.
.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
.br
	16	\-\ Print timing information
.br
	32	\-\ Debug minimum file system size (\-M) calculation
.TP
.B \-f
Forces resize2fs to proceed with the file system resize operation, overriding
some safety checks which resize2fs normally enforces.
.TP
.B \-F
Flush the file system device's buffer caches before beginning.  Only
really useful for doing
.B resize2fs
time trials.
.TP
.B \-M
Shrink the file system to minimize its size as much as possible,
given the files stored in the file system.
.TP
.B \-p
Print out percentage completion bars for each
.B resize2fs
phase during an offline (non-trivial) resize operation, so that the user
can keep track of what the program is doing.  (For very fast resize
operations, no progress bars may be displayed.)
.TP
.B \-P
Print an estimate of the number of file system blocks in the file system
if it is shrunk using
.BR resize2fs 's
.B \-M
option and then exit.
.TP
.B \-s
Turns off the 64bit feature and frees blocks that are no longer in use.
.TP
.B \-S \fIRAID-stride
The
.B resize2fs
program will heuristically determine the RAID stride that was specified
when the file system was created.  This option allows the user to
explicitly specify a RAID stride setting to be used by resize2fs instead.
.TP
.BI \-z " undo_file"
Before overwriting a file system block, write the old contents of the block to
an undo file.  This undo file can be used with e2undo(8) to restore the old
contents of the file system should something go wrong.  If the empty string is
passed as the undo_file argument, the undo file will be written to a file named
resize2fs-\fIdevice\fR.e2undo in the directory specified via the
\fIE2FSPROGS_UNDO_DIR\fR environment variable.

WARNING: The undo file cannot be used to recover from a power or system crash.
.SH KNOWN BUGS
The minimum size of the file system as estimated by resize2fs may be
incorrect, especially for file systems 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)
