.\" -*- 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 filesystem is mounted, it can be used to expand the size of the
mounted filesystem, 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 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
Note: when kilobytes is used above, I mean
.IR real ,
power-of-2 kilobytes, (i.e., 1024 bytes), which some politically correct
folks insist should be the stupid-sounding ``kibibytes''.  The same
holds true for megabytes, also sometimes known as ``mebibytes'', or
gigabytes, as the amazingly silly ``gibibytes''.  Makes you want to
gibber, doesn't it?
.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!
.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 filesystem 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 filesystem size (\-M) calculation
.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 file system to minimize its size as much as possible,
given the files stored in the file system.
.TP
.B \-p
Prints out a percentage completion bars for each
.B resize2fs
operation during an offline resize, so that the user can keep track
of what the program is doing.
.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 filesystem 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 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)
