.\" -*- nroff -*-
.\" Copyright 2001 by Theodore Ts'o.  All Rights Reserved.
.\" This file may be copied under the terms of the GNU Public License.
.\" 
.TH E2IMAGE 8 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@"
.SH NAME
e2image \- Save critical ext2/ext3 filesystem data to a file
.SH SYNOPSIS
.B e2image
[
.B \-rsI
]
.I device
.I image-file
.SH DESCRIPTION
The
.B e2image
program will save critical filesystem data on the ext2 filesystem located on 
.I device  
to a file specified by 
.IR image-file .
The image file may be examined by 
.B dumpe2fs
and
.BR  debugfs ,
by using the
.B \-i
option to those programs.  This can be used by an expert in assisting
the recovery of catastrophically corrupted filesystems.  In the future,
e2fsck will be enhanced to be able to use the image file to help
recover a badly damaged filesystem.
.PP
If  
.I image-file
is \-, then the output of 
.B e2image
will be sent to standard output, so that the output can be piped to
another program, such as 
.BR gzip (1).  
(Note that is currently only supported when
creating a raw image file using the 
.B \-r
option, since the process of creating a normal image file currently
requires random-access access to the file, which can not be done using a
pipe.  This restriction will hopefully be lifted in a future version of
.BR e2image .)
.PP
It is a very good idea to periodically (at boot time and 
every week or so) to create image files for all of
filesystems on a system, as well as saving the partition
layout (which can be generated using the using
.B fdisk \-l
command).  Ideally the image file should be stored on some filesystem
other that
the filesystem whose data it contains, to ensure that its data is
accessible in the case where the filesystem has been badly damaged.
.PP
To save disk space, 
.B e2image
creates the image file as a sparse file.  
Hence, if the image file
needs to be copied to another location, it should
either be compressed first or copied using the 
.B \-\-sparse=always
option to GNU version of 
.BR cp .  
.PP
The size of an ext2 image file depends primarily on the size of the
filesystems and how many inodes are in use.  For a typical 10 gigabyte
filesystem, with 200,000 inodes in use out of 1.2 million inodes, the
image file be approximately 35 megabytes; a 4 gigabyte filesystem with
15,000 inodes in use out of 550,000 inodes will result in a 3 megabyte
image file.  Image files tend to be quite
compressible; an image file taking up 32 megabytes of space on
disk will generally compress down to 3 or 4 megabytes.
.PP
.SH RESTORING FILESYSTEM METADATA USING AN IMAGE FILE
.PP
The 
.B \-I 
option will cause e2image to install the metadata stored in the image
file back to the device.    It can be used to restore the filesystem metadata
back to the device in emergency situations.
.PP
.B WARNING!!!!
The
.B \-I 
option should only be used as desperation measure when other
alternatives have failed.  If the filesystem has changed since the image
file was created, data
.B will
be lost.  In general, you should make a full image
backup of the filesystem first, in case you wish to try other recovery
strategies afterwards.
.PP
.SH RAW IMAGE FILES
The 
.B \-r
option will create a raw image file instead of a normal image file.  
A raw image file differs
from a normal image file in two ways.  First, the filesystem metadata is
placed in the proper position so that e2fsck, dumpe2fs, debugfs,
etc. can be run directly on the raw image file.  In order to minimize
the amount of disk space consumed by a raw image file, the file is
created as a sparse file.  (Beware of copying or
compressing/decompressing this file with utilities that don't understand
how to create sparse files; the file will become as large as the
filesystem itself!)  Secondly, the raw image file also includes indirect
blocks and directory blocks, which the standard image file does not have,
although this may change in the future.
.PP
Raw image files are sometimes used when sending filesystems to as part
of bug reports to e2fsprogs.  When used in this capacity, the
recommended command is (replace hda1 with appropriate device):
.PP
.br
\	\fBe2image -r /dev/hda1 - | bzip2 > hda1.e2i.bz2\fR
.PP
This will only send the metadata information, without any data blocks.  
However, the filenames in the directory blocks can still reveal
information about the contents of the filesystem that the bug reporter
may wish to keep confidential.  To address this concern, the
.B \-s
option can be specified.  This will cause
.B e2image 
to scramble directory entries and zero out any unused portions
of the directory blocks before writing them to the image file.
.PP
.SH AUTHOR
.B e2image 
was written by Theodore Ts'o (tytso@mit.edu).
.SH AVAILABILITY
.B e2image
is part of the e2fsprogs package and is available from 
http://e2fsprogs.sourceforge.net.
.SH SEE ALSO
.BR dumpe2fs (8),
.BR debugfs (8)

