.\" -*- 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 file system resizer
.SH SYNOPSIS
.B resize2fs
[
.B \-d 
.I debug-flags
]
[
.B \-S
.I RAID-stride
]
[
.B \-f
]
[
.B \-F
]
[
.B \-p
]
.I device
[
.I size
]
.SH DESCRIPTION
The 
.B resize2fs 
program will resize ext2 or ext3 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
\	1\	\-\ Print out all disk I/O 
.br
\	2\	\-\ Debug block relocations
.br
\	8\	\-\ Debug inode relocations
.br
\	16\	\-\ Debug moving the inode table
.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
.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 \-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.
.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)
