]>
Commit | Line | Data |
---|---|---|
1 | .\" -*- 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 | |
7 | e2image \- Save critical ext2/ext3/ext4 filesystem metadata to a file | |
8 | .SH SYNOPSIS | |
9 | .B e2image | |
10 | [ | |
11 | .B \-r|Q | |
12 | ] | |
13 | [ | |
14 | .B \-f | |
15 | ] | |
16 | .I device | |
17 | .I image-file | |
18 | .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 | ] | |
41 | .SH DESCRIPTION | |
42 | The | |
43 | .B e2image | |
44 | program will save critical ext2, ext3, or ext4 filesystem metadata located on | |
45 | .I device | |
46 | to a file specified by | |
47 | .IR image-file . | |
48 | The image file may be examined by | |
49 | .B dumpe2fs | |
50 | and | |
51 | .BR debugfs , | |
52 | by using the | |
53 | .B \-i | |
54 | option to those programs. This can assist an expert in | |
55 | recovering catastrophically corrupted filesystems. In the future, | |
56 | e2fsck will be enhanced to be able to use the image file to help | |
57 | recover a badly damaged filesystem. | |
58 | .PP | |
59 | When saving an e2image for debugging purposes, using either the | |
60 | .B \-r | |
61 | or | |
62 | .B \-Q | |
63 | options, the filesystem must be unmounted or be mounted read/only, in order | |
64 | for the image file to be in a consistent state. This requirement can be | |
65 | overridden using the | |
66 | .B \-f | |
67 | option, but the resulting image file is very likely not going to be useful. | |
68 | .PP | |
69 | If | |
70 | .I image-file | |
71 | is \-, then the output of | |
72 | .B e2image | |
73 | will be sent to standard output, so that the output can be piped to | |
74 | another program, such as | |
75 | .BR gzip (1). | |
76 | (Note that this is currently only supported when | |
77 | creating a raw image file using the | |
78 | .B \-r | |
79 | option, since the process of creating a normal image file, or QCOW2 | |
80 | image currently | |
81 | requires random access to the file, which cannot be done using a | |
82 | pipe. This restriction will hopefully be lifted in a future version of | |
83 | .BR e2image .) | |
84 | .PP | |
85 | It is a very good idea to create image files for all of | |
86 | filesystems on a system and save the partition | |
87 | layout (which can be generated using the | |
88 | .B fdisk \-l | |
89 | command) at regular intervals --- at boot time, and/or every week or so. | |
90 | The image file should be stored on some filesystem other than | |
91 | the filesystem whose data it contains, to ensure that this data is | |
92 | accessible in the case where the filesystem has been badly damaged. | |
93 | .PP | |
94 | To save disk space, | |
95 | .B e2image | |
96 | creates the image file as a sparse file, or in QCOW2 format. | |
97 | Hence, if the sparse image file | |
98 | needs to be copied to another location, it should | |
99 | either be compressed first or copied using the | |
100 | .B \-\-sparse=always | |
101 | option to the GNU version of | |
102 | .BR cp . | |
103 | This does not apply to the QCOW2 image, which is not sparse. | |
104 | .PP | |
105 | The size of an ext2 image file depends primarily on the size of the | |
106 | filesystems and how many inodes are in use. For a typical 10 gigabyte | |
107 | filesystem, with 200,000 inodes in use out of 1.2 million inodes, the | |
108 | image file will be approximately 35 megabytes; a 4 gigabyte filesystem with | |
109 | 15,000 inodes in use out of 550,000 inodes will result in a 3 megabyte | |
110 | image file. Image files tend to be quite | |
111 | compressible; an image file taking up 32 megabytes of space on | |
112 | disk will generally compress down to 3 or 4 megabytes. | |
113 | .PP | |
114 | .SH RESTORING FILESYSTEM METADATA USING AN IMAGE FILE | |
115 | .PP | |
116 | The | |
117 | .B \-I | |
118 | option will cause e2image to install the metadata stored in the image | |
119 | file back to the device. It can be used to restore the filesystem metadata | |
120 | back to the device in emergency situations. | |
121 | .PP | |
122 | .B WARNING!!!! | |
123 | The | |
124 | .B \-I | |
125 | option should only be used as a desperation measure when other | |
126 | alternatives have failed. If the filesystem has changed since the image | |
127 | file was created, data | |
128 | .B will | |
129 | be lost. In general, you should make a full image | |
130 | backup of the filesystem first, in case you wish to try other recovery | |
131 | strategies afterwards. | |
132 | .PP | |
133 | .SH RAW IMAGE FILES | |
134 | The | |
135 | .B \-r | |
136 | option will create a raw image file instead of a normal image file. | |
137 | A raw image file differs | |
138 | from a normal image file in two ways. First, the filesystem metadata is | |
139 | placed in the proper position so that e2fsck, dumpe2fs, debugfs, | |
140 | etc.\& can be run directly on the raw image file. In order to minimize | |
141 | the amount of disk space consumed by a raw image file, the file is | |
142 | created as a sparse file. (Beware of copying or | |
143 | compressing/decompressing this file with utilities that don't understand | |
144 | how to create sparse files; the file will become as large as the | |
145 | filesystem itself!) Secondly, the raw image file also includes indirect | |
146 | blocks and directory blocks, which the standard image file does not have, | |
147 | although this may change in the future. | |
148 | .PP | |
149 | Raw image files are sometimes used when sending filesystems to the maintainer | |
150 | as part of bug reports to e2fsprogs. When used in this capacity, the | |
151 | recommended command is as follows (replace hda1 with the appropriate device): | |
152 | .PP | |
153 | .br | |
154 | \fBe2image \-r /dev/hda1 \- | bzip2 > hda1.e2i.bz2\fR | |
155 | .PP | |
156 | This will only send the metadata information, without any data blocks. | |
157 | However, the filenames in the directory blocks can still reveal | |
158 | information about the contents of the filesystem that the bug reporter | |
159 | may wish to keep confidential. To address this concern, the | |
160 | .B \-s | |
161 | option can be specified. This will cause | |
162 | .B e2image | |
163 | to scramble directory entries and zero out any unused portions | |
164 | of the directory blocks before writing the image file. However, | |
165 | the | |
166 | .B \-s | |
167 | option will prevent analysis of problems related to hash-tree indexed | |
168 | directories. | |
169 | .PP | |
170 | Note that this will work even if you substitute "/dev/hda1" for another raw | |
171 | disk image, or QCOW2 image previously created by | |
172 | .BR e2image . | |
173 | .PP | |
174 | .SH QCOW2 IMAGE FILES | |
175 | The | |
176 | .B \-Q | |
177 | option will create a QCOW2 image file instead of a normal, or raw image file. | |
178 | A QCOW2 image contains all the information the raw image does, however unlike | |
179 | the raw image it is not sparse. The QCOW2 image minimize the amount of disk | |
180 | space by storing data in special format with pack data closely together, hence | |
181 | avoiding holes while still minimizing size. | |
182 | .PP | |
183 | In order to send filesystem to the maintainer as a part of bug report to | |
184 | e2fsprogs, 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 | |
191 | This will only send the metadata information, without any data blocks. | |
192 | However, the filenames in the directory blocks can still reveal | |
193 | information about the contents of the filesystem that the bug reporter | |
194 | may wish to keep confidential. To address this concern, the | |
195 | .B \-s | |
196 | option can be specified. This will cause | |
197 | .B e2image | |
198 | to scramble directory entries and zero out any unused portions | |
199 | of the directory blocks before writing the image file. However, the | |
200 | .B \-s | |
201 | option will prevent analysis of problems related to hash-tree indexed | |
202 | directories. | |
203 | .PP | |
204 | Note that QCOW2 image created by | |
205 | .B e2image | |
206 | is regular QCOW2 image and can be processed by tools aware of QCOW2 format | |
207 | such as for example | |
208 | .BR qemu-img . | |
209 | .PP | |
210 | You 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 | |
216 | This can be useful to write a qcow2 image containing all data to a | |
217 | sparse image file where it can be loop mounted, or to a disk partition. | |
218 | Note that this may not work with qcow2 images not generated by e2image. | |
219 | .PP | |
220 | .SH INCLUDING DATA | |
221 | Normally | |
222 | .B e2image | |
223 | only includes fs metadata, not regular file data. The | |
224 | .B \-a | |
225 | option can be specified to include all data. This will | |
226 | give an image that is suitable to use to clone the entire FS or | |
227 | for backup purposes. Note that this option only works with the | |
228 | raw or QCOW2 formats. The | |
229 | .B \-p | |
230 | switch may be given to show progress. If the file system is being | |
231 | cloned to a flash-based storage device (where reads are very fast and | |
232 | where it is desirable to avoid unnecessary writes to reduce write wear | |
233 | on the device), the | |
234 | .B \-c | |
235 | option which cause e2image to try reading a block from the destination | |
236 | to see if it is identical to the block which | |
237 | .B e2image | |
238 | is about to copy. If the block is already the same, the write can be | |
239 | skipped. The | |
240 | .B \-n | |
241 | option will cause all of the writes to be no-ops, and print the blocks | |
242 | that would have been written. | |
243 | .PP | |
244 | .SH OFFSETS | |
245 | Normally a filesystem starts at the beginning of a partition, and | |
246 | .B e2image | |
247 | is run on the partition. When working with image files, you don't | |
248 | have the option of using the partition device, so you can specify | |
249 | the offset where the filesystem starts directly with the | |
250 | .B \-o | |
251 | option. Similarly the | |
252 | .B \-O | |
253 | option specifies the offset that should be seeked to in the destination | |
254 | before writing the filesystem. | |
255 | .PP | |
256 | For example, if you have a | |
257 | .B dd | |
258 | image of a whole hard drive that contains an ext2 fs in a partition | |
259 | starting 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 | |
265 | Or you can clone a fs into an image file, leaving room in the first | |
266 | MiB for a partition table with: | |
267 | .PP | |
268 | .br | |
269 | \ \fBe2image -arO 1048576 /dev/sda1 img\fR | |
270 | .br | |
271 | .PP | |
272 | If you specify at least one offset, and only one file, an in-place | |
273 | move will be performed, allowing you to safely move the filesystem | |
274 | from one offset to another. | |
275 | .SH AUTHOR | |
276 | .B e2image | |
277 | was written by Theodore Ts'o (tytso@mit.edu). | |
278 | .SH AVAILABILITY | |
279 | .B e2image | |
280 | is part of the e2fsprogs package and is available from | |
281 | http://e2fsprogs.sourceforge.net. | |
282 | .SH SEE ALSO | |
283 | .BR dumpe2fs (8), | |
284 | .BR debugfs (8) | |
285 |