e2fsck.8 (15443B)
- .\" -*- 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 "Aug 2021" "E2fsprogs version 1.46.4"
- .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
- ]
- [
- .B \-j
- .I external-journal
- ]
- [
- .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.
- .TP
- .BI \-j " external-journal"
- Set the pathname where the external-journal for this file system can be
- 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)