.\" -*- nroff -*-
.\" Copyright 1993, 1994, 1995 by Theodore Ts'o.  All Rights Reserved.
.\" This file may be copied under the terms of the GNU Public License.
.\" 
.TH DUMPE2FS 8 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@"
.SH NAME
dumpe2fs \- dump ext2/ext3/ext4 file system information
.SH SYNOPSIS
.B dumpe2fs
[
.B \-bfghixV
]
[
.B \-o superblock=\fIsuperblock
]
[
.B \-o blocksize=\fIblocksize
]
.I device
.SH DESCRIPTION
.B dumpe2fs
prints the super block and blocks group information for the file system
present on
.I device.
.PP
The
.I device
specifier can either be a filename (i.e., /dev/sda1), or a LABEL or UUID
specifier: "\fBLABEL=\fIvolume-label\fR" or "\fBUUID=\fIuuid\fR".  (i.e.,
LABEL=home or UUID=e40486c6-84d5-4f2f-b99c-032281799c9d).
.PP
.B Note:
When used with a mounted file system, the printed
information may be old or inconsistent.
.SH OPTIONS
.TP
.B \-b
print the blocks which are reserved as bad in the file system.
.TP
.B \-o superblock=\fIsuperblock
use the block
.I superblock
when examining the file system.
This option is not usually needed except by a file system wizard who
is examining the remains of a very badly corrupted file system.
.TP
.B \-o blocksize=\fIblocksize
use blocks of
.I blocksize
bytes when examining the file system.
This option is not usually needed except by a file system wizard who
is examining the remains of a very badly corrupted file system.
.TP
.B \-f
force dumpe2fs to display a file system even though it may have some
file system feature flags which dumpe2fs may not understand (and which
can cause some of dumpe2fs's display to be suspect).
.TP
.B \-g
display the group descriptor information in a machine readable colon-separated
value format.  The fields displayed are the group number; the number of the
first block in the group; the superblock location (or -1 if not present); the
range of blocks used by the group descriptors (or -1 if not present); the block
bitmap location; the inode bitmap location; and the range of blocks used by the
inode table.
.TP
.B \-h
only display the superblock information and not any of the block
group descriptor detail information.
.TP
.B \-i
display the file system data from an image file created by
.BR e2image ,
using
.I device
as the pathname to the image file.
.TP
.B \-m
If the
.B mmp
feature is enabled on the file system, check if
.I device
is in use by another node, see
.BR e2mmpstatus (8)
for full details.  If used together with the
.B \-i
option, only the MMP block information is printed.
.TP
.B \-x
print the detailed group information block numbers in hexadecimal format
.TP
.B \-V
print the version number of
.B dumpe2fs
and exit.
.SH EXIT CODE
.B dumpe2fs
exits with a return code of 0 if the operation completed without errors.
It will exit with a non-zero return code if there are any errors, such
as problems reading a valid superblock, bad checksums, or if the device
is in use by another node and
.B -m
is specified.
.SH BUGS
You may need to know the physical file system structure to understand the
output.
.SH AUTHOR
.B dumpe2fs
was written by Remy Card <Remy.Card@linux.org>.  It is currently being
maintained by Theodore Ts'o <tytso@alum.mit.edu>.
.SH AVAILABILITY
.B dumpe2fs
is part of the e2fsprogs package and is available from
http://e2fsprogs.sourceforge.net.
.SH SEE ALSO
.BR e2fsck (8),
.BR e2mmpstatus (8),
.BR mke2fs (8),
.BR tune2fs (8).
.BR ext4 (5)

