510 lines
15 KiB
Groff
510 lines
15 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 E2FSCK 8 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@"
|
|
.SH NAME
|
|
e2fsck \- check a Linux ext2/ext3/ext4 file system
|
|
.SH SYNOPSIS
|
|
.B e2fsck
|
|
[
|
|
.B \-pacnyrdfkvtDFV
|
|
]
|
|
[
|
|
.B \-b
|
|
.I superblock
|
|
]
|
|
[
|
|
.B \-B
|
|
.I blocksize
|
|
]
|
|
[
|
|
.BR \-l | \-L
|
|
.I bad_blocks_file
|
|
]
|
|
[
|
|
.B \-C
|
|
.I fd
|
|
]
|
|
@JDEV@[
|
|
@JDEV@.B \-j
|
|
@JDEV@.I external-journal
|
|
@JDEV@]
|
|
[
|
|
.B \-E
|
|
.I extended_options
|
|
]
|
|
[
|
|
.B \-z
|
|
.I undo_file
|
|
]
|
|
.I device
|
|
.SH DESCRIPTION
|
|
.B e2fsck
|
|
is used to check the ext2/ext3/ext4 family of file systems.
|
|
For ext3 and ext4 file systems that use a journal, if the system has been
|
|
shut down uncleanly without any errors, normally, after replaying the
|
|
committed transactions in the journal, the file system should be
|
|
marked as clean. Hence, for file systems that use journaling,
|
|
.B e2fsck
|
|
will normally replay the journal and exit, unless its superblock
|
|
indicates that further checking is required.
|
|
.PP
|
|
.I device
|
|
is a block device (e.g.,
|
|
.IR /dev/sdc1 )
|
|
or file containing the file system.
|
|
.PP
|
|
Note that in general it is not safe to run
|
|
.B e2fsck
|
|
on mounted file systems. The only exception is if the
|
|
.B \-n
|
|
option is specified, and
|
|
.BR \-c ,
|
|
.BR \-l ,
|
|
or
|
|
.B -L
|
|
options are
|
|
.I not
|
|
specified. However, even if it is safe to do so, the results printed by
|
|
.B e2fsck
|
|
are not valid if the file system is mounted. If
|
|
.B e2fsck
|
|
asks whether or not you should check a file system which is mounted,
|
|
the only correct answer is ``no''. Only experts who really know what
|
|
they are doing should consider answering this question in any other way.
|
|
.PP
|
|
If
|
|
.B e2fsck
|
|
is run in interactive mode (meaning that none of
|
|
.BR \-y ,
|
|
.BR \-n ,
|
|
or
|
|
.BR \-p
|
|
are specified), the program will ask the user to fix each problem found in the
|
|
file system. A response of 'y' will fix the error; 'n' will leave the error
|
|
unfixed; and 'a' will fix the problem and all subsequent problems; pressing
|
|
Enter will proceed with the default response, which is printed before the
|
|
question mark. Pressing Control-C terminates e2fsck immediately.
|
|
.SH OPTIONS
|
|
.TP
|
|
.B \-a
|
|
This option does the same thing as the
|
|
.B \-p
|
|
option. It is provided for backwards compatibility only; it is
|
|
suggested that people use
|
|
.B \-p
|
|
option whenever possible.
|
|
.TP
|
|
.BI \-b " superblock"
|
|
Instead of using the normal superblock, use an alternative superblock
|
|
specified by
|
|
.IR superblock .
|
|
This option is normally used when the primary superblock has been
|
|
corrupted. The location of backup superblocks is dependent on the
|
|
file system's blocksize, the number of blocks per group, and features
|
|
such as
|
|
.BR sparse_super .
|
|
.IP
|
|
Additional backup superblocks can be determined by using the
|
|
.B mke2fs
|
|
program using the
|
|
.B \-n
|
|
option to print out where the superblocks exist, supposing
|
|
.B mke2fs
|
|
is supplied with arguments that are consistent with the file system's layout
|
|
(e.g. blocksize, blocks per group,
|
|
.BR sparse_super ,
|
|
etc.).
|
|
.IP
|
|
If an alternative superblock is specified and
|
|
the file system is not opened read-only, e2fsck will make sure that the
|
|
primary superblock is updated appropriately upon completion of the
|
|
file system check.
|
|
.TP
|
|
.BI \-B " blocksize"
|
|
Normally,
|
|
.B e2fsck
|
|
will search for the superblock at various different
|
|
block sizes in an attempt to find the appropriate block size.
|
|
This search can be fooled in some cases. This option forces
|
|
.B e2fsck
|
|
to only try locating the superblock at a particular blocksize.
|
|
If the superblock is not found,
|
|
.B e2fsck
|
|
will terminate with a fatal error.
|
|
.TP
|
|
.B \-c
|
|
This option causes
|
|
.B e2fsck
|
|
to use
|
|
.BR badblocks (8)
|
|
program to do a read-only scan of the device in order to find any bad
|
|
blocks. If any bad blocks are found, they are added to the bad block
|
|
inode to prevent them from being allocated to a file or directory. If
|
|
this option is specified twice, then the bad block scan will be done
|
|
using a non-destructive read-write test.
|
|
.TP
|
|
.BI \-C " fd"
|
|
This option causes
|
|
.B e2fsck
|
|
to write completion information to the specified file descriptor
|
|
so that the progress of the file system
|
|
check can be monitored. This option is typically used by programs
|
|
which are running
|
|
.BR e2fsck .
|
|
If the file descriptor number is negative, then absolute value of
|
|
the file descriptor will be used, and the progress information will be
|
|
suppressed initially. It can later be enabled by sending the
|
|
.B e2fsck
|
|
process a SIGUSR1 signal.
|
|
If the file descriptor specified is 0,
|
|
.B e2fsck
|
|
will print a completion bar as it goes about its business. This requires
|
|
that e2fsck is running on a video console or terminal.
|
|
.TP
|
|
.B \-d
|
|
Print debugging output (useless unless you are debugging
|
|
.BR e2fsck ).
|
|
.TP
|
|
.B \-D
|
|
Optimize directories in file system. This option causes e2fsck to
|
|
try to optimize all directories, either by re-indexing them if the
|
|
file system supports directory indexing, or by sorting and compressing
|
|
directories for smaller directories, or for file systems using
|
|
traditional linear directories.
|
|
.IP
|
|
Even without the
|
|
.B \-D
|
|
option,
|
|
.B e2fsck
|
|
may sometimes optimize a few directories --- for example, if
|
|
directory indexing is enabled and a directory is not indexed and would
|
|
benefit from being indexed, or if the index structures are corrupted
|
|
and need to be rebuilt. The
|
|
.B \-D
|
|
option forces all directories in the file system to be optimized. This can
|
|
sometimes make them a little smaller and slightly faster to search, but
|
|
in practice, you should rarely need to use this option.
|
|
.IP
|
|
The
|
|
.B \-D
|
|
option will detect directory entries with duplicate names in a single
|
|
directory, which e2fsck normally does not enforce for performance reasons.
|
|
.TP
|
|
.BI \-E " extended_options"
|
|
Set e2fsck extended options. Extended options are comma
|
|
separated, and may take an argument using the equals ('=') sign. The
|
|
following options are supported:
|
|
.RS 1.2i
|
|
.TP
|
|
.BI ea_ver= extended_attribute_version
|
|
Set the version of the extended attribute blocks which
|
|
.B e2fsck
|
|
will require while checking the file system. The version number may
|
|
be 1 or 2. The default extended attribute version format is 2.
|
|
.TP
|
|
.BI journal_only
|
|
Only replay the journal if required, but do not perform any further checks
|
|
or repairs.
|
|
.TP
|
|
.BI fragcheck
|
|
During pass 1, print a detailed report of any discontiguous blocks for
|
|
files in the file system.
|
|
.TP
|
|
.BI discard
|
|
Attempt to discard free blocks and unused inode blocks after the full
|
|
file system check (discarding blocks is useful on solid state devices and sparse
|
|
/ thin-provisioned storage). Note that discard is done in pass 5 AFTER the
|
|
file system has been fully checked and only if it does not contain recognizable
|
|
errors. However there might be cases where
|
|
.B e2fsck
|
|
does not fully recognize a problem and hence in this case this
|
|
option may prevent you from further manual data recovery.
|
|
.TP
|
|
.BI nodiscard
|
|
Do not attempt to discard free blocks and unused inode blocks. This option is
|
|
exactly the opposite of discard option. This is set as default.
|
|
.TP
|
|
.BI no_optimize_extents
|
|
Do not offer to optimize the extent tree by eliminating unnecessary
|
|
width or depth. This can also be enabled in the options section of
|
|
.BR /etc/e2fsck.conf .
|
|
.TP
|
|
.BI optimize_extents
|
|
Offer to optimize the extent tree by eliminating unnecessary
|
|
width or depth. This is the default unless otherwise specified in
|
|
.BR /etc/e2fsck.conf .
|
|
.TP
|
|
.BI inode_count_fullmap
|
|
Trade off using memory for speed when checking a file system with a
|
|
large number of hard-linked files. The amount of memory required is
|
|
proportional to the number of inodes in the file system. For large file
|
|
systems, this can be gigabytes of memory. (For example, a 40TB file system
|
|
with 2.8 billion inodes will consume an additional 5.7 GB memory if this
|
|
optimization is enabled.) This optimization can also be enabled in the
|
|
options section of
|
|
.BR /etc/e2fsck.conf .
|
|
.TP
|
|
.BI no_inode_count_fullmap
|
|
Disable the
|
|
.B inode_count_fullmap
|
|
optimization. This is the default unless otherwise specified in
|
|
.BR /etc/e2fsck.conf .
|
|
.TP
|
|
.BI readahead_kb
|
|
Use this many KiB of memory to pre-fetch metadata in the hopes of reducing
|
|
e2fsck runtime. By default, this is set to the size of two block groups' inode
|
|
tables (typically 4MiB on a regular ext4 file system); if this amount is more
|
|
than 1/50th of total physical memory, readahead is disabled. Set this to zero
|
|
to disable readahead entirely.
|
|
.TP
|
|
.BI bmap2extent
|
|
Convert block-mapped files to extent-mapped files.
|
|
.TP
|
|
.BI fixes_only
|
|
Only fix damaged metadata; do not optimize htree directories or compress
|
|
extent trees. This option is incompatible with the -D and -E bmap2extent
|
|
options.
|
|
.TP
|
|
.BI check_encoding
|
|
Force verification of encoded filenames in case-insensitive directories.
|
|
This is the default mode if the file system has the strict flag enabled.
|
|
.TP
|
|
.BI unshare_blocks
|
|
If the file system has shared blocks, with the shared blocks read-only feature
|
|
enabled, then this will unshare all shared blocks and unset the read-only
|
|
feature bit. If there is not enough free space then the operation will fail.
|
|
If the file system does not have the read-only feature bit, but has shared
|
|
blocks anyway, then this option will have no effect. Note when using this
|
|
option, if there is no free space to clone blocks, there is no prompt to
|
|
delete files and instead the operation will fail.
|
|
.IP
|
|
Note that unshare_blocks implies the "-f" option to ensure that all passes
|
|
are run. Additionally, if "-n" is also specified, e2fsck will simulate trying
|
|
to allocate enough space to deduplicate. If this fails, the exit code will
|
|
be non-zero.
|
|
.RE
|
|
.TP
|
|
.B \-f
|
|
Force checking even if the file system seems clean.
|
|
.TP
|
|
.B \-F
|
|
Flush the file system device's buffer caches before beginning. Only
|
|
really useful for doing
|
|
.B e2fsck
|
|
time trials.
|
|
@JDEV@.TP
|
|
@JDEV@.BI \-j " external-journal"
|
|
@JDEV@Set the pathname where the external-journal for this file system can be
|
|
@JDEV@found.
|
|
.TP
|
|
.BI \-k
|
|
When combined with the
|
|
.B \-c
|
|
option, any existing bad blocks in the bad blocks list are preserved,
|
|
and any new bad blocks found by running
|
|
.BR badblocks (8)
|
|
will be added to the existing bad blocks list.
|
|
.TP
|
|
.BI \-l " filename"
|
|
Add the block numbers listed in the file specified by
|
|
.I filename
|
|
to the list of bad blocks. The format of this file is the same as the
|
|
one generated by the
|
|
.BR badblocks (8)
|
|
program. Note that the block numbers are based on the blocksize
|
|
of the file system. Hence,
|
|
.BR badblocks (8)
|
|
must be given the blocksize of the file system in order to obtain correct
|
|
results. As a result, it is much simpler and safer to use the
|
|
.B -c
|
|
option to
|
|
.BR e2fsck ,
|
|
since it will assure that the correct parameters are passed to the
|
|
.B badblocks
|
|
program.
|
|
.TP
|
|
.BI \-L " filename"
|
|
Set the bad blocks list to be the list of blocks specified by
|
|
.IR filename .
|
|
(This option is the same as the
|
|
.B \-l
|
|
option, except the bad blocks list is cleared before the blocks listed
|
|
in the file are added to the bad blocks list.)
|
|
.TP
|
|
.B \-n
|
|
Open the file system read-only, and assume an answer of `no' to all
|
|
questions. Allows
|
|
.B e2fsck
|
|
to be used non-interactively. This option
|
|
may not be specified at the same time as the
|
|
.B \-p
|
|
or
|
|
.B \-y
|
|
options.
|
|
.TP
|
|
.B \-p
|
|
Automatically repair ("preen") the file system. This option will cause
|
|
.B e2fsck
|
|
to automatically
|
|
fix any file system problems that can be safely fixed without human
|
|
intervention. If
|
|
.B e2fsck
|
|
discovers a problem which may require the system administrator
|
|
to take additional corrective action,
|
|
.B e2fsck
|
|
will print a description of the problem and then exit with the value 4
|
|
logically or'ed into the exit code. (See the \fBEXIT CODE\fR section.)
|
|
This option is normally used by the system's boot scripts. It may not
|
|
be specified at the same time as the
|
|
.B \-n
|
|
or
|
|
.B \-y
|
|
options.
|
|
.TP
|
|
.B \-r
|
|
This option does nothing at all; it is provided only for backwards
|
|
compatibility.
|
|
.TP
|
|
.B \-t
|
|
Print timing statistics for
|
|
.BR e2fsck .
|
|
If this option is used twice, additional timing statistics are printed
|
|
on a pass by pass basis.
|
|
.TP
|
|
.B \-v
|
|
Verbose mode.
|
|
.TP
|
|
.B \-V
|
|
Print version information and exit.
|
|
.TP
|
|
.B \-y
|
|
Assume an answer of `yes' to all questions; allows
|
|
.B e2fsck
|
|
to be used non-interactively. This option
|
|
may not be specified at the same time as the
|
|
.B \-n
|
|
or
|
|
.B \-p
|
|
options.
|
|
.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
|
|
e2fsck-\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 EXIT CODE
|
|
The exit code returned by
|
|
.B e2fsck
|
|
is the sum of the following conditions:
|
|
.br
|
|
\ 0\ \-\ No errors
|
|
.br
|
|
\ 1\ \-\ File system errors corrected
|
|
.br
|
|
\ 2\ \-\ File system errors corrected, system should
|
|
.br
|
|
\ \ \ \ be rebooted
|
|
.br
|
|
\ 4\ \-\ File system errors left uncorrected
|
|
.br
|
|
\ 8\ \-\ Operational error
|
|
.br
|
|
\ 16\ \-\ Usage or syntax error
|
|
.br
|
|
\ 32\ \-\ E2fsck canceled by user request
|
|
.br
|
|
\ 128\ \-\ Shared library error
|
|
.br
|
|
.SH SIGNALS
|
|
The following signals have the following effect when sent to
|
|
.BR e2fsck .
|
|
.TP
|
|
.B SIGUSR1
|
|
This signal causes
|
|
.B e2fsck
|
|
to start displaying a completion bar or emitting progress information.
|
|
(See discussion of the
|
|
.B \-C
|
|
option.)
|
|
.TP
|
|
.B SIGUSR2
|
|
This signal causes
|
|
.B e2fsck
|
|
to stop displaying a completion bar or emitting progress information.
|
|
.SH REPORTING BUGS
|
|
Almost any piece of software will have bugs. If you manage to find a
|
|
file system which causes
|
|
.B e2fsck
|
|
to crash, or which
|
|
.B e2fsck
|
|
is unable to repair, please report it to the author.
|
|
.PP
|
|
Please include as much information as possible in your bug report.
|
|
Ideally, include a complete transcript of the
|
|
.B e2fsck
|
|
run, so I can see exactly what error messages are displayed. (Make sure
|
|
the messages printed by
|
|
.B e2fsck
|
|
are in English; if your system has been
|
|
configured so that
|
|
.BR e2fsck 's
|
|
messages have been translated into another language, please set the the
|
|
.B LC_ALL
|
|
environment variable to
|
|
.B C
|
|
so that the transcript of e2fsck's output will be useful to me.)
|
|
If you
|
|
have a writable file system where the transcript can be stored, the
|
|
.BR script (1)
|
|
program is a handy way to save the output of
|
|
.B e2fsck
|
|
to a file.
|
|
.PP
|
|
It is also useful to send the output of
|
|
.BR dumpe2fs (8).
|
|
If a specific inode or inodes seems to be giving
|
|
.B e2fsck
|
|
trouble, try running the
|
|
.BR debugfs (8)
|
|
command and send the output of the
|
|
.BR stat (1u)
|
|
command run on the relevant inode(s). If the inode is a directory, the
|
|
.B debugfs
|
|
.I dump
|
|
command will allow you to extract the contents of the directory inode,
|
|
which can sent to me after being first run through
|
|
.BR uuencode (1).
|
|
The most useful data you can send to help reproduce
|
|
the bug is a compressed raw image dump of the file system, generated using
|
|
.BR e2image (8).
|
|
See the
|
|
.BR e2image (8)
|
|
man page for more details.
|
|
.PP
|
|
Always include the full version string which
|
|
.B e2fsck
|
|
displays when it is run, so I know which version you are running.
|
|
.SH ENVIRONMENT
|
|
.TP
|
|
.BI E2FSCK_CONFIG
|
|
Determines the location of the configuration file (see
|
|
.BR e2fsck.conf (5)).
|
|
.SH AUTHOR
|
|
This version of
|
|
.B e2fsck
|
|
was written by Theodore Ts'o <tytso@mit.edu>.
|
|
.SH SEE ALSO
|
|
.BR e2fsck.conf (5),
|
|
.BR badblocks (8),
|
|
.BR dumpe2fs (8),
|
|
.BR debugfs (8),
|
|
.BR e2image (8),
|
|
.BR mke2fs (8),
|
|
.BR tune2fs (8)
|