blob: 75002d77e7bd89a0c237de09cb0a4be69b090031 [file] [log] [blame]
Theodore Ts'o348e43d2001-05-03 14:43:43 +00001.\" -*- nroff -*-
2.\" Copyright 2001 by Theodore Ts'o. All Rights Reserved.
3.\" This file may be copied under the terms of the GNU Public License.
4.\"
5.TH E2IMAGE 8 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@"
6.SH NAME
Theodore Ts'o4f858542009-05-30 12:34:28 -04007e2image \- Save critical ext2/ext3/ext4 filesystem metadata to a file
Theodore Ts'o348e43d2001-05-03 14:43:43 +00008.SH SYNOPSIS
9.B e2image
Theodore Ts'o6304baf2001-08-09 05:41:29 -040010[
JP Abgralle0ed7402014-03-19 19:08:39 -070011.B \-r|Q
12]
13[
14.B \-fr
Theodore Ts'oc003f482013-12-27 01:08:25 -050015]
16.I device
17.I image-file
JP Abgralle0ed7402014-03-19 19:08:39 -070018.br
19.B e2image
20.B \-I
21.I device
22.I image-file
23.br
24.B e2image
25.B \-ra
26[
27.B \-cfnp
28]
29[
30.B \-o
31.I src_offset
32]
33[
34.B \-O
35.I dest_offset
36]
37.I src_fs
38[
39.I dest_fs
40]
Theodore Ts'o348e43d2001-05-03 14:43:43 +000041.SH DESCRIPTION
Theodore Ts'o0edb4d82001-05-03 16:30:48 +000042The
Theodore Ts'o348e43d2001-05-03 14:43:43 +000043.B e2image
JP Abgralle0ed7402014-03-19 19:08:39 -070044program will save critical ext2, ext3, or ext4 filesystem metadata located on
45.I device
46to a file specified by
Theodore Ts'o0edb4d82001-05-03 16:30:48 +000047.IR image-file .
JP Abgralle0ed7402014-03-19 19:08:39 -070048The image file may be examined by
Theodore Ts'o0edb4d82001-05-03 16:30:48 +000049.B dumpe2fs
50and
51.BR debugfs ,
52by using the
53.B \-i
Theodore Ts'ob7c1d202005-06-20 08:26:50 -040054option to those programs. This can assist an expert in
55recovering catastrophically corrupted filesystems. In the future,
Theodore Ts'o0edb4d82001-05-03 16:30:48 +000056e2fsck will be enhanced to be able to use the image file to help
57recover a badly damaged filesystem.
58.PP
JP Abgralle0ed7402014-03-19 19:08:39 -070059When saving an e2image for debugging purposes, using either the
60.B \-r
61or
62.B \-Q
63options, the filesystem must be unmounted or be mounted read/only, in order
64for the image file to be in a consistent state. This requirement can be
65overriden using the
66.B \-f
67option, but the resulting image file is very likely not going to be useful.
68.PP
69If
Theodore Ts'o1c1e0042001-08-09 06:04:32 -040070.I image-file
JP Abgralle0ed7402014-03-19 19:08:39 -070071is \-, then the output of
Theodore Ts'o1c1e0042001-08-09 06:04:32 -040072.B e2image
Theodore Ts'o8ac59292004-03-08 14:18:56 -050073will be sent to standard output, so that the output can be piped to
JP Abgralle0ed7402014-03-19 19:08:39 -070074another program, such as
75.BR gzip (1).
Theodore Ts'ob7c1d202005-06-20 08:26:50 -040076(Note that this is currently only supported when
JP Abgralle0ed7402014-03-19 19:08:39 -070077creating a raw image file using the
Theodore Ts'o8ac59292004-03-08 14:18:56 -050078.B \-r
JP Abgralle0ed7402014-03-19 19:08:39 -070079option, since the process of creating a normal image file, or QCOW2
80image currently
Theodore Ts'ob7c1d202005-06-20 08:26:50 -040081requires random access to the file, which cannot be done using a
Theodore Ts'o8ac59292004-03-08 14:18:56 -050082pipe. This restriction will hopefully be lifted in a future version of
83.BR e2image .)
Theodore Ts'o1c1e0042001-08-09 06:04:32 -040084.PP
Theodore Ts'ob7c1d202005-06-20 08:26:50 -040085It is a very good idea to create image files for all of
86filesystems on a system and save the partition
JP Abgralle0ed7402014-03-19 19:08:39 -070087layout (which can be generated using the
Theodore Ts'o11d1e612004-12-01 12:42:33 -050088.B fdisk \-l
Theodore Ts'ob7c1d202005-06-20 08:26:50 -040089command) at regular intervals --- at boot time, and/or every week or so.
Theodore Ts'od9781ce2005-06-26 22:16:21 -040090The image file should be stored on some filesystem other than
91the filesystem whose data it contains, to ensure that this data is
Theodore Ts'o0edb4d82001-05-03 16:30:48 +000092accessible in the case where the filesystem has been badly damaged.
93.PP
JP Abgralle0ed7402014-03-19 19:08:39 -070094To save disk space,
Theodore Ts'o0edb4d82001-05-03 16:30:48 +000095.B e2image
JP Abgralle0ed7402014-03-19 19:08:39 -070096creates the image file as a sparse file, or in QCOW2 format.
97Hence, if the sparse image file
Theodore Ts'o0edb4d82001-05-03 16:30:48 +000098needs to be copied to another location, it should
JP Abgralle0ed7402014-03-19 19:08:39 -070099either be compressed first or copied using the
Theodore Ts'o11d1e612004-12-01 12:42:33 -0500100.B \-\-sparse=always
JP Abgralle0ed7402014-03-19 19:08:39 -0700101option to the GNU version of
102.BR cp .
103This does not apply to the QCOW2 image, which is not sparse.
Theodore Ts'o0edb4d82001-05-03 16:30:48 +0000104.PP
105The size of an ext2 image file depends primarily on the size of the
106filesystems and how many inodes are in use. For a typical 10 gigabyte
107filesystem, with 200,000 inodes in use out of 1.2 million inodes, the
Theodore Ts'ob7c1d202005-06-20 08:26:50 -0400108image file will be approximately 35 megabytes; a 4 gigabyte filesystem with
Theodore Ts'o0edb4d82001-05-03 16:30:48 +000010915,000 inodes in use out of 550,000 inodes will result in a 3 megabyte
110image file. Image files tend to be quite
Theodore Ts'o6304baf2001-08-09 05:41:29 -0400111compressible; an image file taking up 32 megabytes of space on
Theodore Ts'o0edb4d82001-05-03 16:30:48 +0000112disk will generally compress down to 3 or 4 megabytes.
Theodore Ts'o348e43d2001-05-03 14:43:43 +0000113.PP
Theodore Ts'od851ed32005-01-19 00:26:43 -0500114.SH RESTORING FILESYSTEM METADATA USING AN IMAGE FILE
115.PP
JP Abgralle0ed7402014-03-19 19:08:39 -0700116The
117.B \-I
Theodore Ts'od851ed32005-01-19 00:26:43 -0500118option will cause e2image to install the metadata stored in the image
JP Abgralle0ed7402014-03-19 19:08:39 -0700119file back to the device. It can be used to restore the filesystem metadata
Theodore Ts'od851ed32005-01-19 00:26:43 -0500120back to the device in emergency situations.
121.PP
122.B WARNING!!!!
123The
JP Abgralle0ed7402014-03-19 19:08:39 -0700124.B \-I
Theodore Ts'ob7c1d202005-06-20 08:26:50 -0400125option should only be used as a desperation measure when other
Theodore Ts'od851ed32005-01-19 00:26:43 -0500126alternatives have failed. If the filesystem has changed since the image
127file was created, data
128.B will
129be lost. In general, you should make a full image
130backup of the filesystem first, in case you wish to try other recovery
131strategies afterwards.
132.PP
133.SH RAW IMAGE FILES
JP Abgralle0ed7402014-03-19 19:08:39 -0700134The
Theodore Ts'od851ed32005-01-19 00:26:43 -0500135.B \-r
JP Abgralle0ed7402014-03-19 19:08:39 -0700136option will create a raw image file instead of a normal image file.
Theodore Ts'od851ed32005-01-19 00:26:43 -0500137A raw image file differs
138from a normal image file in two ways. First, the filesystem metadata is
139placed in the proper position so that e2fsck, dumpe2fs, debugfs,
JP Abgralle0ed7402014-03-19 19:08:39 -0700140etc.\& can be run directly on the raw image file. In order to minimize
Theodore Ts'od851ed32005-01-19 00:26:43 -0500141the amount of disk space consumed by a raw image file, the file is
142created as a sparse file. (Beware of copying or
143compressing/decompressing this file with utilities that don't understand
144how to create sparse files; the file will become as large as the
145filesystem itself!) Secondly, the raw image file also includes indirect
146blocks and directory blocks, which the standard image file does not have,
147although this may change in the future.
148.PP
Theodore Ts'ob7c1d202005-06-20 08:26:50 -0400149Raw image files are sometimes used when sending filesystems to the maintainer
150as part of bug reports to e2fsprogs. When used in this capacity, the
151recommended command is as follows (replace hda1 with the appropriate device):
Theodore Ts'od851ed32005-01-19 00:26:43 -0500152.PP
153.br
JP Abgralle0ed7402014-03-19 19:08:39 -0700154 \fBe2image \-r /dev/hda1 \- | bzip2 > hda1.e2i.bz2\fR
Theodore Ts'od851ed32005-01-19 00:26:43 -0500155.PP
JP Abgralle0ed7402014-03-19 19:08:39 -0700156This will only send the metadata information, without any data blocks.
Theodore Ts'od851ed32005-01-19 00:26:43 -0500157However, the filenames in the directory blocks can still reveal
158information about the contents of the filesystem that the bug reporter
159may wish to keep confidential. To address this concern, the
160.B \-s
161option can be specified. This will cause
JP Abgralle0ed7402014-03-19 19:08:39 -0700162.B e2image
Theodore Ts'od851ed32005-01-19 00:26:43 -0500163to scramble directory entries and zero out any unused portions
Theodore Ts'ob7c1d202005-06-20 08:26:50 -0400164of the directory blocks before writing the image file. However,
JP Abgralle0ed7402014-03-19 19:08:39 -0700165the
Theodore Ts'ob7c1d202005-06-20 08:26:50 -0400166.B \-s
167option will prevent analysis of problems related to hash-tree indexed
168directories.
Theodore Ts'od851ed32005-01-19 00:26:43 -0500169.PP
JP Abgralle0ed7402014-03-19 19:08:39 -0700170Note that this will work even if you substitute "/dev/hda1" for another raw
171disk image, or QCOW2 image previously created by
172.BR e2image .
173.PP
174.SH QCOW2 IMAGE FILES
175The
176.B \-Q
177option will create a QCOW2 image file instead of a normal, or raw image file.
178A QCOW2 image contains all the information the raw image does, however unlike
179the raw image it is not sparse. The QCOW2 image minimize the amount of disk
180space by storing data in special format with pack data closely together, hence
181avoiding holes while still minimizing size.
182.PP
183In order to send filesystem to the maintainer as a part of bug report to
184e2fsprogs, use following commands (replace hda1 with the appropriate device):
185.PP
186.br
187\ \fBe2image \-Q /dev/hda1 hda1.qcow2\fR
188.br
189\ \fBbzip2 -z hda1.qcow2\fR
190.PP
191This will only send the metadata information, without any data blocks.
192However, the filenames in the directory blocks can still reveal
193information about the contents of the filesystem that the bug reporter
194may wish to keep confidential. To address this concern, the
195.B \-s
196option can be specified. This will cause
197.B e2image
198to scramble directory entries and zero out any unused portions
199of the directory blocks before writing the image file. However, the
200.B \-s
201option will prevent analysis of problems related to hash-tree indexed
202directories.
203.PP
204Note that QCOW2 image created by
205.B e2image
206is regular QCOW2 image and can be processed by tools aware of QCOW2 format
207such as for example
208.BR qemu-img .
209.PP
210You can convert a qcow2 image into a raw image with:
211.PP
212.br
213\ \fBe2image \-r hda1.qcow2 hda1.raw\fR
214.br
215.PP
216This can be useful to write a qcow2 image containing all data to a
217sparse image file where it can be loop mounted, or to a disk partition.
218Note that this may not work with qcow2 images not generated by e2image.
219.PP
220.SH INCLUDING DATA
221Normally
222.B e2image
223only includes fs metadata, not regular file data. The
224.B \-a
225option can be specified to include all data. This will
226give an image that is suitable to use to clone the entire FS or
227for backup purposes. Note that this option only works with the
228raw or QCOW2 formats. The
229.B \-p
230switch may be given to show progress. If the file system is being
231cloned to a flash-based storage device (where reads are very fast and
232where it is desirable to avoid unnecessary writes to reduce write wear
233on the device), the
234.B \-c
235option which cause e2image to try reading a block from the destination
236to see if it is identical to the block which
237.B e2image
238is about to copy. If the block is already the same, the write can be
239skipped. The
240.B \-n
241option will cause all of the writes to be no-ops, and print the blocks
242that would have been written.
243.PP
244.SH OFFSETS
245Normally a filesystem starts at the beginning of a partition, and
246.B e2image
247is run on the partition. When working with image files, you don't
248have the option of using the partition device, so you can specify
249the offset where the filesystem starts directly with the
250.B \-o
251option. Similarly the
252.B \-O
253option specifies the offset that should be seeked to in the destination
254before writing the filesystem.
255.PP
256For example, if you have a
257.B dd
258image of a whole hard drive that contains an ext2 fs in a partition
259starting at 1 MiB, you can clone that fs with:
260.PP
261.br
262\ \fBe2image \-aro 1048576 img /dev/sda1\fR
263.br
264.PP
265Or you can clone a fs into an image file, leaving room in the first
266MiB for a partition table with:
267.PP
268.br
269\ \fBe2image -arO 1048576 /dev/sda1 img\fR
270.br
271.PP
272If you specify at least one offset, and only one file, an in-place
273move will be performed, allowing you to safely move the filesystem
274from one offset to another.
Theodore Ts'o348e43d2001-05-03 14:43:43 +0000275.SH AUTHOR
JP Abgralle0ed7402014-03-19 19:08:39 -0700276.B e2image
Theodore Ts'o348e43d2001-05-03 14:43:43 +0000277was written by Theodore Ts'o (tytso@mit.edu).
278.SH AVAILABILITY
279.B e2image
JP Abgralle0ed7402014-03-19 19:08:39 -0700280is part of the e2fsprogs package and is available from
Theodore Ts'o348e43d2001-05-03 14:43:43 +0000281http://e2fsprogs.sourceforge.net.
282.SH SEE ALSO
283.BR dumpe2fs (8),
284.BR debugfs (8)
285