Whamcloud - gitweb
libext2fs: remove nls_* namespace contamination
[tools/e2fsprogs.git] / debugfs / debugfs.8.in
index fa7e3fb..393c000 100644 (file)
@@ -1,13 +1,16 @@
 .\" -*- 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 DEBUGFS 8 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@"
 .SH NAME
-debugfs \- ext2 file system debugger
+debugfs \- ext2/ext3/ext4 file system debugger
 .SH SYNOPSIS
 .B debugfs
 [
+.B \-DVwcin
+]
+[
 .B \-b
 blocksize
 ]
@@ -16,7 +19,7 @@ blocksize
 superblock
 ]
 [
-.B \-f 
+.B \-f
 cmd_file
 ]
 [
@@ -24,37 +27,35 @@ cmd_file
 request
 ]
 [
-.B \-V
-]
-[
-[
-.B \-w
-]
-[
-.B \-c
+.B \-d
+data_source_device
 ]
 [
-.B \-i
+.B \-z
+.I undo_file
 ]
 [
 device
 ]
-]
 .SH DESCRIPTION
-The 
-.B debugfs 
+The
+.B debugfs
 program is an interactive file system debugger. It can be used to
-examine and change the state of an ext2 file system.
-.br
+examine and change the state of an ext2, ext3, or ext4 file system.
+.PP
 .I device
-is the special file corresponding to the device containing the ext2
-file system (e.g /dev/hdXX).
+is a block device (e.g., /dev/sdXX) or a file containing the file system.
 .SH OPTIONS
 .TP
 .I \-w
 Specifies that the file system should be opened in read-write mode.
 Without this option, the file system is opened in read-only mode.
 .TP
+.I \-n
+Disables metadata checksum verification.  This should only be used if
+you believe the metadata to be correct despite the complaints of
+e2fsprogs.
+.TP
 .I \-c
 Specifies that the file system should be opened in catastrophic mode, in
 which the inode and group bitmaps are not read initially.  This can be
@@ -62,382 +63,809 @@ useful for filesystems with significant corruption, but because of this,
 catastrophic mode forces the filesystem to be opened read-only.
 .TP
 .I \-i
-Specifies that 
+Specifies that
 .I device
 represents an ext2 image file created by the
 .B e2image
 program.  Since the ext2 image file only contains the superblock, block
-group descriptor, block and inode allocation bitmaps, and 
+group descriptor, block and inode allocation bitmaps, and
 the inode table, many
 .B debugfs
-commands will not function properly.  
+commands will not function properly.
 .B Warning:
-no safety checks are in place, and 
-.B debugfs 
+no safety checks are in place, and
+.B debugfs
 may fail in interesting ways if commands such as
-.IR ls ", " dump ", " 
-etc. are tried.  
-.B debugfs 
+.IR ls ", " dump ", "
+etc. are tried without specifying the
+.I data_source_device
+using the
+.I \-d
+option.
+.B debugfs
 is a debugging tool.  It has rough edges!
 .TP
+.I -d data_source_device
+Used with the
+.I \-i
+option, specifies that
+.I data_source_device
+should be used when reading blocks not found in the ext2 image file.
+This includes data, directory, and indirect blocks.
+.TP
 .I -b blocksize
-Forces the use of the given block size for the file system, rather than
-detecting the correct block size as normal.
+Forces the use of the given block size (in bytes) for the file system,
+rather than detecting the correct block size automatically.  (This
+option is rarely needed; it is used primarily when the file system is
+extremely badly damaged/corrupted.)
 .TP
 .I -s superblock
-Causes the file system superblock to be read from the given block number,
-rather than the default (1).  If you give a
+Causes the file system superblock to be read from the given block
+number, instead of using the primary superblock (located at an offset of
+1024 bytes from the beginning of the filesystem).  If you specify the
 .I -s
-option, you must also give a
+option, you must also provide the blocksize of the filesystem via the
 .I -b
-option.
+option.   (This
+option is rarely needed; it is used primarily when the file system is
+extremely badly damaged/corrupted.)
 .TP
 .I -f cmd_file
-Causes 
+Causes
 .B debugfs
-to read in commands from 
-.IR cmd_file , 
-and execute them.  When 
+to read in commands from
+.IR cmd_file ,
+and execute them.  When
 .B debugfs
 is finished executing those commands, it will exit.
-.TP 
+.TP
+.I -D
+Causes
+.B debugfs
+to open the device using Direct I/O, bypassing the buffer cache.  Note
+that some Linux devices, notably device mapper as of this writing, do
+not support Direct I/O.
+.TP
 .I -R request
-Causes 
+Causes
 .B debugfs
-to execute the single command 
+to execute the single command
 .IR request ,
 and then exit.
 .TP
 .I -V
-print the version number of 
+print the version number of
 .B debugfs
 and exit.
+.TP
+.BI \-z " undo_file"
+Before overwriting a file system block, write the old contents of the block to
+an undo file.  This undo file can be used with e2undo(8) to restore the old
+contents of the file system should something go wrong.  If the empty string is
+passed as the undo_file argument, the undo file will be written to a file named
+debugfs-\fIdevice\fR.e2undo in the directory specified via the
+\fIE2FSPROGS_UNDO_DIR\fR environment variable.
+
+WARNING: The undo file cannot be used to recover from a power or system crash.
 .SH SPECIFYING FILES
 Many
 .B debugfs
 commands take a
 .I filespec
-as an argument to specify an inode (as opposed to a pathname) 
-in the filesystem which is currently opened by 
-.BR debugfs . 
+as an argument to specify an inode (as opposed to a pathname)
+in the filesystem which is currently opened by
+.BR debugfs .
 The
 .I filespec
-argument may be specified in two forms.  The first form is an inode 
-number surrounded by angle brackets, e.g., 
+argument may be specified in two forms.  The first form is an inode
+number surrounded by angle brackets, e.g.,
 .IR <2> .
 The second form is a pathname; if the pathname is prefixed by a forward slash
-('/'), then it is interpreted relative to the root of the filesystem 
-which is currently opened by 
+('/'), then it is interpreted relative to the root of the filesystem
+which is currently opened by
+.BR debugfs .
+If not, the pathname is
+interpreted relative to the current working directory as maintained by
 .BR debugfs .
-If not, the pathname is 
-interpreted relative to the current working directory as maintained by 
-.BR debugfs .  
-This may be modified by using the 
+This may be modified by using the
 .B debugfs
 command
 .IR cd .
-.\" 
+.\"
 .\"
 .\"
 .SH COMMANDS
-This is a list of the commands which 
+This is a list of the commands which
 .B debugfs
 supports.
 .TP
-.I bmap filespec logical_block
-Print the physical block number corresponding to the logical block number
+.BI blocks " filespec"
+Print the blocks used by the inode
+.I filespec
+to stdout.
+.TP
+.BI bmap " [ -a ] filespec logical_block [physical_block]"
+Print or set the physical block number corresponding to the logical block number
 .I logical_block
 in the inode
 .IR filespec .
+If the
+.I \-a
+flag is specified, try to allocate a block if necessary.
 .TP
-.I cat filespec
-Dump the contents of the inode 
+.BI block_dump " '[ -x ] [-f filespec] block_num"
+Dump the filesystem block given by
+.I block_num
+in hex and ASCII format to the console.  If the
+.I \-f
+option is specified, the block number is relative to the start of the given
+.BR filespec .
+If the
+.I \-x
+option is specified, the block is interpreted as an extended attribute
+block and printed to show the structure of extended attribute data
+structures.
+.TP
+.BI cat " filespec"
+Dump the contents of the inode
 .I filespec
 to stdout.
 .TP
-.I cd filespec
-Change the current working directory to 
+.BI cd " filespec"
+Change the current working directory to
+.IR filespec .
+.TP
+.BI chroot " filespec"
+Change the root directory to be the directory
 .IR filespec .
 .TP
-.I chroot filespec
-Change the root directory to be the directory 
+.BI close " [-a]"
+Close the currently open file system.  If the
+.I -a
+option is specified, write out any changes to the superblock and block
+group descriptors to all of the backup superblocks, not just to the
+master superblock.
+.TP
+.BI clri " filespec"
+Clear the contents of the inode
 .IR filespec .
 .TP
-.I close
-Close the currently open file system.
+.BI copy_inode " source_inode destination_inode"
+Copy the contents of the inode structure in
+.I source_inode
+and use it to overwrite the inode structure at
+.IR destination_inode .
 .TP
-.I clri file
-Clear the contents of the inode 
-.IR file .
+.BI dirsearch " filespec filename"
+Search the directory
+.I filespec
+for
+.IR filename .
+.TP
+.BI dirty " [-clean]"
+Mark the filesystem as dirty, so that the superblocks will be written on exit.
+Additionally, clear the superblock's valid flag, or set it if
+.I -clean
+is specified.
 .TP
-.I dump [-p] filspec out_file
-Dump the contents of the inode 
+.BI dump " [-p] filespec out_file"
+Dump the contents of the inode
 .I filespec
-to the output file 
-.IR out_file .  
-If the 
-.I -p 
-option is given set the owner, group and permissions information on 
-.I out_file 
-to match 
+to the output file
+.IR out_file .
+If the
+.I -p
+option is given set the owner, group and permissions information on
+.I out_file
+to match
 .IR filespec .
 .TP
-.I expand_dir filespec
+.BI dump_mmp " [mmp_block]"
+Display the multiple-mount protection (mmp) field values.  If
+.I mmp_block
+is specified then verify and dump the MMP values from the given block
+number, otherwise use the
+.B s_mmp_block
+field in the superblock to locate and use the existing MMP block.
+.TP
+.BI dx_hash " [-h hash_alg] [-s hash_seed] filename"
+Calculate the directory hash of
+.IR filename .
+The hash algorithm specified with
+.I -h
+may be
+.BR legacy , " half_md4" ", or " tea .
+The hash seed specified with
+.I -s
+must be in UUID format.
+.TP
+.BI dump_extents " [-n] [-l] filespec"
+Dump the the extent tree of the inode
+.IR filespec .
+The
+.I -n
+flag will cause
+.B dump_extents
+to only display the interior nodes in the extent tree.   The
+.I -l
+flag will cause
+.B dump_extents
+to only display the leaf nodes in the extent tree.
+.IP
+(Please note that the length and range of blocks for the last extent in
+an interior node is an estimate by the extents library functions, and is
+not stored in filesystem data structures.   Hence, the values displayed
+may not necessarily by accurate and does not indicate a problem or
+corruption in the file system.)
+.TP
+.B dump_unused
+Dump unused blocks which contain non-null bytes.
+.TP
+.BI ea_get " [-f outfile]|[-xVC] [-r] filespec attr_name"
+Retrieve the value of the extended attribute
+.I attr_name
+in the file
+.I filespec
+and write it either to stdout or to \fIoutfile\fR.
+.TP
+.BI ea_list " filespec
+List the extended attributes associated with the file
+.I filespec
+to standard output.
+.TP
+.BI ea_set " [-f infile] [-r] filespec attr_name attr_value
+Set the value of the extended attribute
+.I attr_name
+in the file
+.I filespec
+to the string value
+.I attr_value
+or read it from \fIinfile\fR.
+.TP
+.BI ea_rm " filespec attr_names...
+Remove the extended attribute
+.I attr_name
+from the file \fIfilespec\fR.
+.TP
+.BI expand_dir " filespec"
 Expand the directory
 .IR filespec .
 .TP
-.I feature [fs_feature] [-fs_feature] ...
+.BI fallocate " filespec start_block [end_block]
+Allocate and map uninitialized blocks into \fIfilespec\fR between
+logical block \fIstart_block\fR and \fIend_block\fR, inclusive.  If
+\fIend_block\fR is not supplied, this function maps until it runs out
+of free disk blocks or the maximum file size is reached.  Existing
+mappings are left alone.
+.TP
+.BI feature " [fs_feature] [-fs_feature] ..."
 Set or clear various filesystem features in the superblock.  After setting
 or clearing any filesystem features that were requested, print the current
 state of the filesystem feature set.
 .TP
-.I find_free_block [count [goal]]
-Find the first 
+.BI filefrag " [-dvr] filespec"
+Print the number of contiguous extents in
+.IR filespec .
+If
+.I filespec
+is a directory and the
+.I -d
+option is not specified,
+.I filefrag
+will print the number of contiguous extents for each file in
+the directory.  The
+.I -v
+option will cause
+.I filefrag
+print a tabular listing of the contiguous extents in the
+file.  The
+.I -r
+option will cause
+.I filefrag
+to do a recursive listing of the directory.
+.TP
+.BI find_free_block " [count [goal]]"
+Find the first
 .I count
 free blocks, starting from
 .I goal
-and allocate it.
+and allocate it.  Also available as
+.BR ffb .
 .TP
-.I find_free_inode [dir [mode]]
-Find a free inode and allocate it.  If present, 
+.BI find_free_inode " [dir [mode]]"
+Find a free inode and allocate it.  If present,
 .I dir
-specifies the inode number of the directory 
-which the inode is to be located.  The second 
+specifies the inode number of the directory
+which the inode is to be located.  The second
 optional argument
 .I mode
 specifies the permissions of the new inode.  (If the directory bit is set
-on the mode, the allocation routine will function differently.)
+on the mode, the allocation routine will function differently.)  Also
+available as
+.BR ffi .
 .TP
-.I freeb block [count]
+.BI freeb " block [count]"
 Mark the block number
 .I block
 as not allocated.
-If the optional argument 
-.I count 
-is present, then 
+If the optional argument
+.I count
+is present, then
 .I count
 blocks starting at block number
 .I block
 will be marked as not allocated.
 .TP
-.I freei filespec
-Free the inode specified by 
+.BI freefrag " [-c chunk_kb]"
+Report free space fragmentation on the currently open file system.
+If the
+.I \-c
+option is specified then the filefrag command will print how many free
+chunks of size
+.I chunk_kb
+can be found in the file system.  The chunk size must be a power of two
+and be larger than the file system block size.
+.TP
+.BI freei " filespec [num]"
+Free the inode specified by
 .IR filespec .
+If
+.I num
+is specified, also clear num-1 inodes after the specified inode.
 .TP
-.I help
-Print a list of commands understood by 
-.BR debugfs (8).
+.BI get_quota " quota_type id"
+Display quota information for given quota type (user, group, or project) and ID.
+.TP
+.B help
+Print a list of commands understood by
+.BR debugfs .
 .TP
-.I icheck block ...
+.BI htree_dump " filespec"
+Dump the hash-indexed directory
+.IR filespec ,
+showing its tree structure.
+.TP
+.BI icheck " block ..."
 Print a listing of the inodes which use the one or more blocks specified
 on the command line.
 .TP
-.I imap filespec
-Print the location of the inode data structure (in the inode table) 
+.BI inode_dump " [-b]|[-e]|[-x] filespec"
+Print the contents of the inode data structure in hex and ASCII format.
+The
+.I \-b
+option causes the command to only dump the contents of the
+.B i_blocks
+array.  The
+.I \-e
+option causes the command to only dump the contents of the extra inode
+space, which is used to store in-line extended attributes. The
+.I \-x
+option causes the command to dump the extra inode space interpreted and
+extended attributes.  This is useful to debug corrupted inodes
+containing extended attributes.
+.TP
+.BI imap " filespec"
+Print the location of the inode data structure (in the inode table)
 of the inode
 .IR filespec .
 .TP
-.I initialize device blocksize
+.BI init_filesys " device blocksize"
 Create an ext2 file system on
 .I device
 with device size
 .IR blocksize .
-Note that this does not fully initialize all of the data structures; 
-to do this, use the 
+Note that this does not fully initialize all of the data structures;
+to do this, use the
 .BR mke2fs (8)
 program.  This is just a call to the low-level library, which sets up
 the superblock and block descriptors.
 .TP
-.I kill_file filespec
-Deallocate the inode 
+.BI journal_close
+Close the open journal.
+.TP
+.BI journal_open " [-c] [-v ver] [-f ext_jnl]
+Opens the journal for reading and writing.  Journal checksumming can
+be enabled by supplying \fI-c\fR; checksum formats 2 and 3 can be
+selected with the \fI-v\fR option.  An external journal can be loaded
+from \fIext_jnl\fR.
+.TP
+.BI journal_run
+Replay all transactions in the open journal.
+.TP
+.BI journal_write " [-b blocks] [-r revoke] [-c] file
+Write a transaction to the open journal.  The list of blocks to write
+should be supplied as a comma-separated list in \fIblocks\fR; the
+blocks themselves should be readable from \fIfile\fR.  A list of
+blocks to revoke can be supplied as a comma-separated list in
+\fIrevoke\fR.  By default, a commit record is written at the end; the
+\fI-c\fR switch writes an uncommitted transaction.
+.TP
+.BI kill_file " filespec"
+Deallocate the inode
 .I filespec
 and its blocks.  Note that this does not remove any directory
-entries (if any) to this inode.  See the 
+entries (if any) to this inode.  See the
 .BR rm (1)
 command if you wish to unlink a file.
 .TP
-.I lcd directory
+.BI lcd " directory"
 Change the current working directory of the
 .B debugfs
 process to
 .I directory
 on the native filesystem.
 .TP
-.I ln filespec dest_file
-Create a link named 
+.BI list_quota " quota_type"
+Display quota information for given quota type (user, group, or project).
+.TP
+.BI ln " filespec dest_file"
+Create a link named
 .I dest_file
-which is a link to 
+which is a hard link to
 .IR filespec .
 Note this does not adjust the inode reference counts.
 .TP
-.I logdump [-acs] [-b<block>] [-i<filespec>] [-f<journal_file>] [output_file]
-Dump the contents of the ext3 journal.  By default, the journal inode as
-specified in the superblock.  However, this can be overridden with the 
+.BI logdump " [-acsOS] [-b block] [-i filespec] [-f journal_file] [output_file]"
+Dump the contents of the ext3 journal.  By default, dump the journal inode as
+specified in the superblock.  However, this can be overridden with the
 .I \-i
-option, which uses an inode specifier to specify the journal to be
-used.  A file containing journal data can be specified using the
+option, which dumps the journal from the internal inode given by
+.IR filespec .
+A regular file containing journal data can be specified using the
 .I \-f
-option.   Finally, the 
+option.  Finally, the
 .I \-s
 option utilizes the backup information in the superblock to locate the
 journal.
 .IP
-The 
+The
+.I \-S
+option causes
+.B logdump
+to print the contents of the journal superblock.
+.IP
+The
 .I \-a
-option causes the 
-.I logdump
+option causes the
+.B logdump
 program to print the contents of all of the descriptor blocks.
-The 
+The
 .I \-b
-option causes 
-.I logdump
-to print all journal records that are refer to the specified block. 
-The 
+option causes
+.B logdump
+to print all journal records that refer to the specified block.
+The
 .I \-c
 option will print out the contents of all of the data blocks selected by
-the 
+the
 .I \-a
-and 
+and
 .I \-b
 options.
+.IP
+The
+.I \-O
+option causes logdump to display old (checkpointed) journal entries.
+This can be used to try to track down journal problems even after the
+journal has been replayed.
 .TP
-.I ls [-l] [-d] filespec
+.BI ls " [-l] [-c] [-d] [-p] [-r] filespec"
 Print a listing of the files in the directory
 .IR filespec .
-The 
-.I \-l
-flag will list files using a more verbose format.
+The
+.I \-c
+flag causes directory block checksums (if present) to be displayed.
 The
 .I \-d
 flag will list deleted entries in the directory.
+The
+.I \-l
+flag will list files using a more verbose format.
+The
+.I \-p
+flag will list the files in a format which is more easily parsable by
+scripts, as well as making it more clear when there are spaces or other
+non-printing characters at the end of filenames.
+The
+.I \-r
+flag will force the printing of the filename, even if it is encrypted.
+.TP
+.BI list_deleted_inodes " [limit]"
+List deleted inodes, optionally limited to those deleted within
+.I limit
+seconds ago.  Also available as
+.BR lsdel .
+.IP
+This command was useful for recovering from accidental file deletions
+for ext2 file systems.  Unfortunately, it is not useful for this purpose
+if the files were deleted using ext3 or ext4, since the inode's
+data blocks are no longer available after the inode is released.
 .TP
-.I modify_inode filespec
+.BI modify_inode " filespec"
 Modify the contents of the inode structure in the inode
 .IR filespec .
+Also available as
+.BR mi .
 .TP
-.I mkdir filespec
+.BI mkdir " filespec"
 Make a directory.
 .TP
-.I mknod filespec [p|[[c|b] major minor]]
+.BI mknod " filespec [p|[[c|b] major minor]]"
 Create a special device file (a named pipe, character or block device).
-If a character or block device is to be made, the 
+If a character or block device is to be made, the
 .I major
 and
 .I minor
 device numbers must be specified.
 .TP
-.I ncheck inode_num ...
+.BI ncheck " [-c] inode_num ..."
 Take the requested list of inode numbers, and print a listing of pathnames
-to those inodes.
-.TP
-.I open [-w] [-f] [-i] [-c] [-b blocksize] [-s superblock] device
-Open a filesystem for editing.  The 
-.I -w 
-flag causes the filesystem to be opened for writing.  The 
-.I -f 
-flag forces the filesystem to be opened even if there are some unknown 
-or incompatible filesystem features which would normally 
+to those inodes.  The
+.I -c
+flag will enable checking the file type information in the directory
+entry to make sure it matches the inode's type.
+.TP
+.BI open " [-weficD] [-b blocksize] [-d image_filename] [-s superblock] [-z undo_file] device"
+Open a filesystem for editing.  The
+.I -f
+flag forces the filesystem to be opened even if there are some unknown
+or incompatible filesystem features which would normally
 prevent the filesystem from being opened.  The
-.IR -c ", " -b ", " -i ", " and " -s
-options behave the same as those to
-.B debugfs
-itself.
+.I -e
+flag causes the filesystem to be opened in exclusive mode.  The
+.IR -b ", " -c ", " -d ", " -i ", " -s ", " -w ", and " -D
+options behave the same as the command-line options to
+.BR debugfs .
 .TP
-.I pwd
+.BI punch " filespec start_blk [end_blk]"
+Delete the blocks in the inode ranging from
+.I start_blk
+to
+.IR end_blk .
+If
+.I end_blk
+is omitted then this command will function as a truncate command; that
+is, all of the blocks starting at
+.I start_blk
+through to the end of the file will be deallocated.
+.TP
+.BI symlink " filespec target"
+Make a symbolic link.
+.TP
+.B pwd
 Print the current working directory.
 .TP
-.I quit
+.B quit
 Quit
 .B debugfs
 .TP
-.I rdump directory destination
+.BI rdump " directory[...] destination"
 Recursively dump
-.I directory
+.IR directory ,
+or multiple
+.IR directories ,
 and all its contents (including regular files, symbolic links, and other
 directories) into the named
-.I destination
+.IR destination ,
 which should be an existing directory on the native filesystem.
 .TP
-.I rm pathname
-Unlink 
+.BI rm " pathname"
+Unlink
 .IR pathname .
-If this causes the inode pointed to by 
+If this causes the inode pointed to by
 .I pathname
 to have no other references, deallocate the file.  This command functions
 as the unlink() system call.
-.I 
+.I
 .TP
-.I rmdir filespec
+.BI rmdir " filespec"
 Remove the directory
 .IR filespec .
 .TP
-.I setb block [count]
+.BI setb " block [count]"
 Mark the block number
 .I block
 as allocated.
-If the optional argument 
-.I count 
-is present, then 
+If the optional argument
+.I count
+is present, then
 .I count
 blocks starting at block number
 .I block
 will be marked as allocated.
 .TP
-.I seti filespec
-Mark inode 
+.BI set_block_group " bgnum field value"
+Modify the block group descriptor specified by
+.I bgnum
+so that the block group descriptor field
+.I field
+has value
+.IR value .
+Also available as
+.BR set_bg .
+.TP
+.BI set_current_time " time"
+Set current time in seconds since Unix epoch to use when setting filesystem
+fields.
+.TP
+.BI seti " filespec [num]"
+Mark inode
+.I filespec
+as in use in the inode bitmap.  If
+.I num
+is specified, also set num-1 inodes after the specified inode.
+.TP
+.BI set_inode_field " filespec field value"
+Modify the inode specified by
 .I filespec
-as in use in the inode bitmap.
+so that the inode field
+.I field
+has value
+.I value.
+The list of valid inode fields which can be set via this command
+can be displayed by using the command:
+.B set_inode_field -l
+Also available as
+.BR sif .
 .TP
-.I set_super_value field value
+.BI set_mmp_value " field value"
+Modify the multiple-mount protection (MMP) data so that the MMP field
+.I field
+has value
+.I value.
+The list of valid MMP fields which can be set via this command
+can be displayed by using the command:
+.B set_mmp_value -l
+Also available as
+.BR smmp .
+.TP
+.BI set_super_value " field value"
 Set the superblock field
 .I field
-to 
+to
 .I value.
-The list of valid superblock fields which can be set via this command 
+The list of valid superblock fields which can be set via this command
 can be displayed by using the command:
 .B set_super_value -l
+Also available as
+.BR ssv .
 .TP
-.I show_super_stats [-h]
+.B show_debugfs_params
+Display
+.B debugfs
+parameters such as information about currently opened filesystem.
+.TP
+.BI show_super_stats " [-h]"
 List the contents of the super block and the block group descriptors.  If the
 .I -h
-flag is given, only print out the superblock contents.
+flag is given, only print out the superblock contents. Also available as
+.BR stats .
 .TP
-.I stat filespec
+.BI stat " filespec"
 Display the contents of the inode structure of the inode
 .IR filespec .
 .TP
-.I testb block [count]
+.B supported_features
+Display filesystem features supported by this version of
+.BR debugfs .
+.TP
+.BI testb " block [count]"
 Test if the block number
 .I block
 is marked as allocated in the block bitmap.
-If the optional argument 
-.I count 
-is present, then 
+If the optional argument
+.I count
+is present, then
 .I count
 blocks starting at block number
 .I block
 will be tested.
 .TP
-.I testi filespec
-Test if the inode 
+.BI testi " filespec"
+Test if the inode
 .I filespec
 is marked as allocated in the inode bitmap.
 .TP
-.I unlink pathname
-Remove the link specified by 
-.I pathname 
+.BI undel " <inode_number> [pathname]"
+Undelete the specified inode number (which must be surrounded by angle
+brackets) so that it and its blocks are marked in use, and optionally
+link the recovered inode to the specified pathname.  The
+.B e2fsck
+command should always be run after using the
+.B undel
+command to recover deleted files.
+.IP
+Note that if you are recovering a large number of deleted files, linking
+the inode to a directory may require the directory to be expanded, which
+could allocate a block that had been used by one of the
+yet-to-be-undeleted files.  So it is safer to undelete all of the
+inodes without specifying a destination pathname, and then in a separate
+pass, use the debugfs
+.B link
+command to link the inode to the destination pathname, or use
+.B e2fsck
+to check the filesystem and link all of the recovered inodes to the
+lost+found directory.
+.TP
+.BI unlink " pathname"
+Remove the link specified by
+.I pathname
 to an inode.  Note this does not adjust the inode reference counts.
 .TP
-.I write source_file out_file
-Create a file in the filesystem named
-.IR out_file ,
-and copy the contents of
+.BI write " source_file out_file"
+Copy the contents of
 .I source_file
-into the destination file.
+into a newly-created file in the filesystem named
+.IR out_file .
+.TP
+.BI zap_block " [-f filespec] [-o offset] [-l length] [-p pattern] block_num"
+Overwrite the block specified by
+.I block_num
+with zero (NUL) bytes, or if
+.I -p
+is given use the byte specified by
+.IR pattern .
+If
+.I -f
+is given then
+.I block_num
+is relative to the start of the file given by
+.IR filespec .
+The
+.I -o
+and
+.I -l
+options limit the range of bytes to zap to the specified
+.I offset
+and
+.I length
+relative to the start of the block.
+.TP
+.BI zap_block " [-f filespec] [-b bit] block_num"
+Bit-flip portions of the physical
+.IR block_num .
+If
+.I -f
+is given, then
+.I block_num
+is a logical block relative to the start of
+.IR filespec .
+.SH ENVIRONMENT VARIABLES
+.TP
+.B DEBUGFS_PAGER, PAGER
+The
+.B debugfs
+program always pipes the output of the some commands through a
+pager program.  These commands include:
+.IR show_super_stats " (" stats ),
+.IR list_directory " (" ls ),
+.IR show_inode_info " (" stat ),
+.IR list_deleted_inodes " (" lsdel ),
+and
+.IR htree_dump .
+The specific pager can explicitly specified by the
+.B DEBUGFS_PAGER
+environment variable, and if it is not set, by the
+.B PAGER
+environment variable.
+.IP
+Note that since a pager is always used, the
+.BR less (1)
+pager is not particularly appropriate, since it clears the screen before
+displaying the output of the command and clears the output the screen
+when the pager is exited.  Many users prefer to use the
+.BR less (1)
+pager for most purposes, which is why the
+.B DEBUGFS_PAGER
+environment variable is available to override the more general
+.B PAGER
+environment variable.
 .SH AUTHOR
 .B debugfs
 was written by Theodore Ts'o <tytso@mit.edu>.
 .SH SEE ALSO
 .BR dumpe2fs (8),
+.BR tune2fs (8),
 .BR e2fsck (8),
-.BR mke2fs (8)
+.BR mke2fs (8),
+.BR ext4 (5)