Section: Maintenance Commands (8)
Updated: July 2002Index
ext2prepare - ext2 filesystem resizing preparation tool
command modifies an unmounted ext2 filesystem ondevice
(8)program can later resize the mounted filesystem to be at least as large assize
although the actual maximum size will be some larger multiple of variousfilesystem parameters. Whileext2prepare
must be run on an unmounted filesystem,device
does not have to currently be as large assize
.This allows one to later increase the size ofdevice
and do the resize while the filesystem is mounted.
If thesizeparameter does not have a modifier, it will be taken to be in ext2filesystem blocks (which can be 1k, 2k, or 4k - usedumpe2fs(8)to find out more information about the current filesystem). The modifiersb,K,M,G,orTmean thesizeparameter is given in 512-byte blocks, kilo-, mega-, giga-, or terabytesrespectively.
Theext2prepareprogram does not change the size of the actual device. If you wish toenlarge a filesystem, you must make sure you expand the underlying devicefirst. This can be done online for Logical Volumes by usinglvextend(8)from the LVM package, or possibly viamdorRAIDfacilities in the hardware if you are not using partitions. It isnotpossible to do this by using thefdisk(8)family of tools to extend a partition while it is mounted (at least theauthor has not been able to successfully do this).
Because of the original design of the ext2 filesystem did not haveonline resizing in mind, there are certain limitations to the amount ofresizing that can be done while the filesystem is mounted, if youhaven't done any preparation for the resize. The default block size forext2 was 1k blocks until v1.15 of e2fsprogs (1999), where it changed to4k blocks for filesystems larger than 512MB.
With no filesystem preparation, it is always possible to resize to thenext 256MB boundary for 1k filesystems, the next 2GB boundary for for 2kfilesystems, and the next 16GB boundary for 4k filesystems. By usingext2prepareon an unmounted filesystem, it is possible forext2online(8)to increase the size of a mounted ext2 filesystem to at least the givensizeby reserving blocks for group descriptors within the ext2 filesystemstructure.ext2preparedoes this by moving metadata blocks while the filesystem is unmounted,and then allocating the freed blocks to a reserved inode so thatext2online(8)can later use these blocks to safely enlarge the filesystem while thefilesystem is in use.
- -d, --debug
- Turn on debugging messages.
- -f, --force
- Force preparation without first checking the filesystem state.
- -q, --quiet
- Do not print anything but error messages.
- -v, --verbose
- Turn on normal verbose status messages.
- -V, --version
- Print the version number and exit.
- 1 Error in options or command-line parameters.
- 2 Error while preparing filesystem.
The following example shows how to testext2prepare
with a spare partition. First a filesystem of 32MB is created on thedevice. The filesystem is then prepared to grow to a maximum size of 10GB,mounted, and the size is verified. The filesystem is then extended tofill the device (the default action when no size is given), and the newsize is verified.
mke2fs /dev/vg0/lvtest 32768
ext2prepare /dev/vg0/lvtest 10G
mount -o debug,check=strict /dev/vg0/lvtest /mnt/test
ext2online -d -v /dev/vg0/lvtest
By using thedebugandcheck=strictoptions to mount, as well as the-dand-voptions toext2prepare,we will see the user-space status messages, and the kernelmessages will be logged by syslog.
Note that resizing a mounted filesystem is inherently dangerous and maycorrupt filesystems, although no errors resulting in data loss have everbeen reported to the author. In theory online resizing should work finewith arbitrarily large filesystems, but it has not yet been tested by theauthor on a filesystem larger than 11GB.Use with caution.
a good idea, because your disk may fail at any time, you delete files byaccident, or your computer is struck by a meteor.
program was written by Andreas Dilger <adilgerAATTclusterfs.com> usingthe ext2 resizing tools developed by Lennert Buytenhek <buytenhAATTgnu.org>.The ext2online kernel patches are available as part of the GNU ext2resizepackage at <http://sourceforge.org/projects/ext2resize/
uses a reserved inode to store blocks needed for a future resize(so that they can't be accidentally used by another program),e2fsck
(8)needs to be slightly modified to understand this new reserved inode.If an unmodifiede2fsck
(8)is run on a filesystem that has been changed withext2prepare
,it will complain about the reserved inode and free all of the blocksassociated with this inode. If this happens, it will not be possibleto resize the filesystem past the default limits given previously.However, the filesystem itself is not affected in any way by these events.The ext2resize programs donot
work on big-endian machines (Alpha, SPARC, PPC, etc).
is (C) Copyright 1999, 2000, 2001 by Andreas Dilger and may bedistributed under the terms of the GNU General Public License.
- RETURN VALUES
- SEE ALSO
This document was created byman2html,using the manual pages.