mirror of
https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
synced 2024-11-24 02:25:03 +08:00
c890dbb2a6
Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
824 lines
21 KiB
Groff
824 lines
21 KiB
Groff
.\" -*- 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/ext3/ext4 file system debugger
|
|
.SH SYNOPSIS
|
|
.B debugfs
|
|
[
|
|
.B \-DVwcin
|
|
]
|
|
[
|
|
.B \-b
|
|
blocksize
|
|
]
|
|
[
|
|
.B \-s
|
|
superblock
|
|
]
|
|
[
|
|
.B \-f
|
|
cmd_file
|
|
]
|
|
[
|
|
.B \-R
|
|
request
|
|
]
|
|
[
|
|
.B \-d
|
|
data_source_device
|
|
]
|
|
[
|
|
.B \-z
|
|
.I undo_file
|
|
]
|
|
[
|
|
device
|
|
]
|
|
.SH DESCRIPTION
|
|
The
|
|
.B debugfs
|
|
program is an interactive file system debugger. It can be used to
|
|
examine and change the state of an ext2, ext3, or ext4 file system.
|
|
.PP
|
|
.I device
|
|
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
|
|
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
|
|
.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
|
|
the inode table, many
|
|
.B debugfs
|
|
commands will not function properly.
|
|
.B Warning:
|
|
no safety checks are in place, and
|
|
.B debugfs
|
|
may fail in interesting ways if commands such as
|
|
.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 (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, 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 provide the blocksize of the filesystem via the
|
|
.I -b
|
|
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
|
|
.B debugfs
|
|
to read in commands from
|
|
.IR cmd_file ,
|
|
and execute them. When
|
|
.B debugfs
|
|
is finished executing those commands, it will exit.
|
|
.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
|
|
.B debugfs
|
|
to execute the single command
|
|
.IR request ,
|
|
and then exit.
|
|
.TP
|
|
.I -V
|
|
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
|
|
resize2fs-\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 .
|
|
The
|
|
.I filespec
|
|
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
|
|
.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
|
|
.B debugfs
|
|
command
|
|
.IR cd .
|
|
.\"
|
|
.\"
|
|
.\"
|
|
.SH COMMANDS
|
|
This is a list of the commands which
|
|
.B debugfs
|
|
supports.
|
|
.TP
|
|
.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
|
|
.BI block_dump " [-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 .
|
|
.TP
|
|
.BI cat " filespec"
|
|
Dump the contents of the inode
|
|
.I filespec
|
|
to stdout.
|
|
.TP
|
|
.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
|
|
.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
|
|
.BI copy_inode " source_inode destination_inode"
|
|
Copy the conents of the inode structure in
|
|
.I source_inode
|
|
and use it to overwrite the inode structure at
|
|
.IR destination_inode .
|
|
.TP
|
|
.BI dirsearch " filespec filename"
|
|
Search the directory
|
|
.I filespec
|
|
for
|
|
.IR filename .
|
|
.TP
|
|
.B dirty
|
|
Mark the filesystem as dirty, so that the superblocks will be written on exit.
|
|
.TP
|
|
.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
|
|
.IR filespec .
|
|
.TP
|
|
.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
|
|
.BI ea_get " [-f outfile] 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] 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
|
|
.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
|
|
.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. Also available as
|
|
.BR ffb .
|
|
.TP
|
|
.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
|
|
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.) Also
|
|
available as
|
|
.BR ffi .
|
|
.TP
|
|
.BI freeb " block [count]"
|
|
Mark the block number
|
|
.I block
|
|
as not allocated.
|
|
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
|
|
.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
|
|
.B help
|
|
Print a list of commands understood by
|
|
.BR debugfs .
|
|
.TP
|
|
.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
|
|
.BI inode_dump " filespec"
|
|
Print the contents of the inode data structure in hex and ASCII format.
|
|
.TP
|
|
.BI imap " filespec"
|
|
Print the location of the inode data structure (in the inode table)
|
|
of the inode
|
|
.IR filespec .
|
|
.TP
|
|
.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
|
|
.BR mke2fs (8)
|
|
program. This is just a call to the low-level library, which sets up
|
|
the superblock and block descriptors.
|
|
.TP
|
|
.BI journal_close
|
|
Close the open journal.
|
|
.TP
|
|
.BI journal_open " [-c] [-v ver] [-j 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
|
|
.BR rm (1)
|
|
command if you wish to unlink a file.
|
|
.TP
|
|
.BI lcd " directory"
|
|
Change the current working directory of the
|
|
.B debugfs
|
|
process to
|
|
.I directory
|
|
on the native filesystem.
|
|
.TP
|
|
.BI ln " filespec dest_file"
|
|
Create a link named
|
|
.I dest_file
|
|
which is a hard link to
|
|
.IR filespec .
|
|
Note this does not adjust the inode reference counts.
|
|
.TP
|
|
.BI logdump " [-acsO] [-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 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
|
|
.I \-s
|
|
option utilizes the backup information in the superblock to locate the
|
|
journal.
|
|
.IP
|
|
The
|
|
.I \-a
|
|
option causes the
|
|
.B logdump
|
|
program to print the contents of all of the descriptor blocks.
|
|
The
|
|
.I \-b
|
|
option causes
|
|
.B logdump
|
|
to print all journal records that are refer to the specified block.
|
|
The
|
|
.I \-c
|
|
option will print out the contents of all of the data blocks selected by
|
|
the
|
|
.I \-a
|
|
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
|
|
.BI ls " [-l] [-c] [-d] [-p] [-r] filespec"
|
|
Print a listing of the files in the directory
|
|
.IR filespec .
|
|
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
|
|
.BI modify_inode " filespec"
|
|
Modify the contents of the inode structure in the inode
|
|
.IR filespec .
|
|
Also available as
|
|
.BR mi .
|
|
.TP
|
|
.BI mkdir " filespec"
|
|
Make a directory.
|
|
.TP
|
|
.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
|
|
.I major
|
|
and
|
|
.I minor
|
|
device numbers must be specified.
|
|
.TP
|
|
.BI ncheck " [-c] inode_num ..."
|
|
Take the requested list of inode numbers, and print a listing of pathnames
|
|
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] [-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
|
|
.I -e
|
|
flag causes the filesystem to be opened in exclusive mode. The
|
|
.IR -b ", " -c ", " -i ", " -s ", " -w ", and " -D
|
|
options behave the same as the command-line options to
|
|
.BR debugfs .
|
|
.TP
|
|
.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
|
|
.B quit
|
|
Quit
|
|
.B debugfs
|
|
.TP
|
|
.BI rdump " directory[...] destination"
|
|
Recursively dump
|
|
.IR directory ,
|
|
or multiple
|
|
.IR directories ,
|
|
and all its contents (including regular files, symbolic links, and other
|
|
directories) into the named
|
|
.IR destination ,
|
|
which should be an existing directory on the native filesystem.
|
|
.TP
|
|
.BI rm " pathname"
|
|
Unlink
|
|
.IR pathname .
|
|
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
|
|
.TP
|
|
.BI rmdir " filespec"
|
|
Remove the directory
|
|
.IR filespec .
|
|
.TP
|
|
.BI setb " block [count]"
|
|
Mark the block number
|
|
.I block
|
|
as allocated.
|
|
If the optional argument
|
|
.I count
|
|
is present, then
|
|
.I count
|
|
blocks starting at block number
|
|
.I block
|
|
will be marked as allocated.
|
|
.TP
|
|
.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 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
|
|
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
|
|
.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
|
|
.I value.
|
|
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
|
|
.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. Also available as
|
|
.BR stats .
|
|
.TP
|
|
.BI stat " filespec"
|
|
Display the contents of the inode structure of the inode
|
|
.IR filespec .
|
|
.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
|
|
.I count
|
|
blocks starting at block number
|
|
.I block
|
|
will be tested.
|
|
.TP
|
|
.BI testi " filespec"
|
|
Test if the inode
|
|
.I filespec
|
|
is marked as allocated in the inode bitmap.
|
|
.TP
|
|
.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
|
|
.BI write " source_file out_file"
|
|
Copy the contents of
|
|
.I source_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 ext4 (5)
|