EXT2PREPARE(8)					   EXT2PREPARE(8)


NAME
       ext2prepare - ext2 filesystem resizing preparation tool

SYNOPSIS
       ext2prepare    [-d]    [-f]    [-q]   [-v]   [-V]   device
       size[b|K|M|G|T]]

DESCRIPTION
       The  ext2prepare	 command  modifies  an	 unmounted   ext2
       filesystem  on  device  so  that ext2online(8) program can
       later resize the mounted filesystem  to	be  at	least  as
       large  as  size	although  the actual maximum size will be
       some larger multiple  of	 various  filesystem  parameters.
       While  ext2prepare must be run on an unmounted filesystem,
       device does not have to currently be  as	 large	as  size.
       This  allows  one to later increase the size of device and
       do the resize while the filesystem is mounted.

       If the size parameter does not have a modifier, it will be
       taken  to  be  in ext2 filesystem blocks (which can be 1k,
       2k, or 4k -  use dumpe2fs(8) to find out more  information
       about  the current filesystem).	The modifiers b, K, M, G,
       or T mean the size parameter is given in 512-byte  blocks,
       kilo-, mega-, giga-, or terabytes respectively.


       The  ext2prepare	 program  does not change the size of the
       actual device.  If you wish to enlarge a	 filesystem,  you
       must  make  sure	 you  expand the underlying device first.
       This can be done online for Logical Volumes by using lvex-
       tend(8)	from  the LVM package, or possibly via md or RAID
       facilities in the hardware if you  are  not  using  parti-
       tions.	It  is	not  possible  to  do  this  by using the
       fdisk(8) family of tools to extend a partition while it is
       mounted (at least the author has not been able to success-
       fully do this).


       Because of the original design of the ext2 filesystem  did
       not  have online resizing in mind, there are certain limi-
       tations to the amount of resizing that can be  done  while
       the  filesystem is mounted, if you haven't done any prepa-
       ration for the resize.  The default block  size	for  ext2
       was  1k	blocks	until v1.15 of e2fsprogs (1999), where it
       changed to 4k blocks for filesystems larger than 500MB.


       With no filesystem preparation, it is always  possible  to
       resize  to the next 256MB boundary for 1k filesystems, the
       next 2GB boundary for for 2k  filesystems,  and	the  next
       16GB boundary for 4k filesystems.  By using ext2prepare on
       an unmounted filesystem, it is possible for  ext2online(8)
       to  increase  the  size of a mounted ext2 filesystem to at
       least  the  given  size	by  reserving  blocks  for  group



ext2prepare v1.1.17	    March 2001				1





EXT2PREPARE(8)					   EXT2PREPARE(8)


       descriptors   within   the   ext2   filesystem  structure.
       ext2prepare does this by moving metadata blocks while  the
       filesystem  is  unmounted,  and	then allocating the freed
       blocks to a reserved inode so that ext2online(8) can later
       use  these  blocks  to safely enlarge the filesystem while
       the filesystem is in use.


OPTIONS
       -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.


RETURN VALUES
       0    Resizing successful

       1    Error in options or command-line parameters.

       2    Error while preparing filesystem.


EXAMPLES
       The following example shows how to test ext2prepare with a
       spare partition.	 First a filesystem of 32MB is created on
       the  device.  The filesystem is then prepared to grow to a
       maximum size of 10GB, mounted, and the size  is	verified.
       The  filesystem	is  then extended to fill the device (the
       default action when no size is given), and the new size is
       verified.


	    mke2fs /dev/vg0/lvtest 32768
	    ext2prepare /dev/vg0/lvtest 10G
	    mkdir /mnt/test
	    mount -o debug,check=strict /dev/vg0/lvtest /mnt/test
	    df /mnt/test
	    ext2online -d -v /dev/vg0/lvtest
	    df /mnt/test


       By using the debug and check=strict options to  mount,  as



ext2prepare v1.1.17	    March 2001				2





EXT2PREPARE(8)					   EXT2PREPARE(8)


       well  as the -d and -v options to ext2prepare, we will see
       the user-space status messages, and  the	 kernel	 messages
       will be logged by syslog.


WARNING
       Note that resizing a mounted filesystem is inherently dan-
       gerous and may corrupt  filesystems,  although  no  errors
       resulting  in  data  loss  have	ever been reported to the
       author.	In theory online resizing should work  fine  with
       arbitrarily  large  filesystems,	 but  it has not yet been
       tested by the author on a  filesystem  larger  than  11GB.
       Use with caution.  Backups are always a good idea, because
       your disk may fail at any time, you delete files by  acci-
       dent, or your computer is struck by a meteor.


AUTHOR
       The  ext2prepare	 program  was  written	by Andreas Dilger
       <adilger@turbolinux.com> using  the  ext2  resizing  tools
       developed  by  Lennert  Buytenhek  <buytenh@gnu.org>.  The
       ext2online kernel patches are available as part of the GNU
       ext2resize    package	at   <http://sourceforge.org/pro-
       jects/ext2resize/>.


BUGS
       Because ext2prepare uses a reserved inode to store  blocks
       needed for a future resize (so that they can't be acciden-
       tally used by another  program),	 e2fsck(8)  needs  to  be
       slightly	 modified  to understand this new reserved inode.
       If an unmodified e2fsck(8) is run on a filesystem that has
       been  changed with ext2prepare, it will complain about the
       reserved inode and free all of the blocks associated  with
       this  inode.   If this happens, it will not be possible to
       resize the filesystem past the default limits given previ-
       ously.	However, the filesystem itself is not affected in
       any way by these events.	 The ext2resize programs  do  not
       work on big-endian machines (Alpha, SPARC, PPC, etc).


COPYRIGHT
       ext2prepare  is	(C) Copyright 1999, 2000, 2001 by Andreas
       Dilger and may be distributed under the terms of	 the  GNU
       General Public License.

SEE ALSO
       dumpe2fs(8)  ext2online(8)  ext2resize(8)  e2fsck(8) lvex-
       tend(8)








ext2prepare v1.1.17	    March 2001				3


