.\" -*- nroff -*-
.\" Copyright 2006 by Theodore Ts'o.  All Rights Reserved.
.\" This file may be copied under the terms of the GNU Public License.
.\"
.TH e2fsck.conf 5 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@"
.SH NAME
e2fsck.conf \- Configuration file for e2fsck
.SH DESCRIPTION
.I e2fsck.conf
is the configuration file for
.BR e2fsck (8).
It controls the default behavior of
.BR e2fsck (8)
while it is checking ext2, ext3, or ext4 file systems.
.PP
The
.I e2fsck.conf
file uses an INI-style format.  Stanzas, or top-level sections, are
delimited by square braces: [ ].  Within each section, each line
defines a relation, which assigns tags to values, or to a subsection,
which contains further relations or subsections.
.\" Tags can be assigned multiple values
An example of the INI-style format used by this configuration file
follows below:
.P
	[section1]
.br
		tag1 = value_a
.br
		tag1 = value_b
.br
		tag2 = value_c
.P
	[section 2]
.br
		tag3 = {
.br
			subtag1 = subtag_value_a
.br
			subtag1 = subtag_value_b
.br
			subtag2 = subtag_value_c
.br
		}
.br
		tag1 = value_d
.br
		tag2 = value_e
.br
	}
.P
Comments are delimited by a semicolon (';') or a hash ('#') character
at the beginning of the comment, and are terminated by the end of
line character.
.P
Tags and values must be quoted using double quotes if they contain
spaces.  Within a quoted string, the standard backslash interpretations
apply: "\en" (for the newline character),
"\et" (for the tab character), "\eb" (for the backspace character),
and "\e\e" (for the backslash character).
.P
The following stanzas are used in the
.I e2fsck.conf
file.  They will be described in more detail in future sections of this
document.
.TP
.I [options]
This stanza contains general configuration parameters for
.BR e2fsck 's
behavior.
.TP
.I [defaults]
Contains relations which define the default parameters used by
.BR e2fsck (8).
In general, these defaults may be overridden by command-line options
provided by the user.
.TP
.I [problems]
This stanza allows the administrator to reconfigure how e2fsck handles
various file system inconsistencies.
@TDB_MAN_COMMENT@.TP
@TDB_MAN_COMMENT@.I [scratch_files]
@TDB_MAN_COMMENT@This stanza controls when e2fsck will attempt to use
@TDB_MAN_COMMENT@scratch files to reduce the need for memory.
.SH THE [options] STANZA
The following relations are defined in the
.I [options]
stanza.
.TP
.I allow_cancellation
If this relation is set to a boolean value of true, then if the user
interrupts e2fsck using ^C, and the file system is not explicitly flagged
as containing errors, e2fsck will exit with an exit status of 0 instead
of 32.  This setting defaults to false.
.TP
.I accept_time_fudge
Unfortunately, due to Windows' unfortunate design decision
to configure the hardware clock to tick localtime, instead
of the more proper and less error-prone UTC time, many
users end up in the situation where the system clock is
incorrectly set at the time when e2fsck is run.
.IP
Historically this was usually due to some distributions
having buggy init scripts and/or installers that didn't
correctly detect this case and take appropriate
countermeasures.  Unfortunately, this is occasionally
true even today, usually due to a
buggy or misconfigured virtualization manager or the
installer not having access to a network time server
during the installation process.  So by default, we allow
the superblock times to be fudged by up to 24 hours.
This can be disabled by setting
.I accept_time_fudge
to the
boolean value of false.  This setting defaults to true.
.TP
.I broken_system_clock
The
.BR e2fsck (8)
program has some heuristics that assume that the system clock is
correct.  In addition, many system programs make similar assumptions.
For example, the UUID library depends on time not going backwards in
order for it to be able to make its guarantees about issuing universally
unique ID's.  Systems with broken system clocks, are well, broken.
However, broken system clocks, particularly in embedded systems, do
exist.  E2fsck will attempt to use heuristics to determine if the time
can not be trusted; and to skip time-based checks if this is true.  If
this boolean is set to true, then e2fsck will always assume that the
system clock can not be trusted.
.TP
.I buggy_init_scripts
This boolean relation is an alias for
.I accept_time_fudge
for backwards compatibility; it used to
be that the behavior defined by
.I accept_time_fudge
above defaulted to false, and
.I buggy_init_scripts
would enable superblock time field to be wrong by up to 24 hours.  When
we changed the default, we also renamed this boolean relation to
.IR accept_time_fudge.
.TP
.I clear_test_fs_flag
This boolean relation controls whether or not
.BR e2fsck (8)
will offer to clear
the test_fs flag if the ext4 file system is available on the system.  It
defaults to true.
.TP
.I defer_check_on_battery
This boolean relation controls whether or not the interval between
file system checks (either based on time or number of mounts) should
be doubled if the system is running on battery.  This setting defaults to
true.
.TP
.I indexed_dir_slack_percentage
When
.BR e2fsck (8)
repacks a indexed directory, reserve the specified percentage of
empty space in each leaf nodes so that a few new entries can
be added to the directory without splitting leaf nodes, so that
the average fill ratio of directories can be maintained at a
higher, more efficient level.  This relation defaults to 20
percent.
.TP
.I inode_count_fullmap
If this boolean relation is true, 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 setting
defaults to false.
.TP
.I log_dir
If the
.I log_filename
or
.I problem_log_filename
relations contains a relative pathname, then the log file will be placed
in the directory named by the
.I log_dir
relation.
.TP
.I log_dir_fallback
This relation contains an alternate directory that will be used if the
directory specified by
.I log_dir
is not available or is not writable.
.TP
.I log_dir_wait
If this boolean relation is true, them if the directories specified by
.I log_dir
or
.I log_dir_fallback
are not available or are not yet writable, e2fsck will save the output
in a memory buffer, and a child process will periodically test to see if
the log directory has become available after the boot sequence has
mounted the requested file system for reading/writing.  This implements the
functionality provided by
.BR logsave (8)
for e2fsck log files.
.TP
.I log_filename
This relation specifies the file name where a copy of e2fsck's output
will be written.   If certain problem reports are suppressed using the
.I max_count_problems
relation, (or on a per-problem basis using the
.I max_count
relation), the full set of problem reports will be written to the log
file.  The filename may contain various percent-expressions (%D, %T, %N,
etc.) which will be expanded so that the file name for the log file can
include things like date, time, device name, and other run-time
parameters.  See the
.B LOGGING
section for more details.
.TP
.I max_count_problems
This relation specifies the maximum number of problem reports of a
particular type will be printed to stdout before further problem reports
of that type are squelched.  This can be useful if the console is slow
(i.e., connected to a serial port) and so a large amount of output could
end up delaying the boot process for a long time (potentially hours).
.TP
.I no_optimize_extents
If this boolean relation is true, do not offer to optimize the extent
tree by reducing the tree's width or depth.  This setting defaults to false.
.TP
.I problem_log_filename
This relation specifies the file name where a log of problem codes
found by e2fsck be written.  The filename may contain various
percent-expressions (%D, %T, %N,
etc.) which will be expanded so that the file name for the log file can
include things like date, time, device name, and other run-time
parameters.  See the
.B LOGGING
section for more details.
.TP
.I readahead_mem_pct
Use this percentage of memory to try to read in metadata blocks ahead of the
main e2fsck thread.  This should reduce run times, depending on the speed of
the underlying storage and the amount of free memory.  There is no default, but
see
.B readahead_kb
for more details.
.TP
.I readahead_kb
Use this amount of memory to read in metadata blocks ahead of the main checking
thread.  Setting this value to zero disables readahead entirely.  By default,
this is set 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.
.TP
.I report_features
If this boolean relation is true, e2fsck will print the file system
features as part of its verbose reporting (i.e., if the
.B -v
option is specified)
.TP
.I report_time
If this boolean relation is true, e2fsck will run as if the options
.B -tt
are always specified.  This will cause e2fsck to print timing statistics
on a pass by pass basis for full file system checks.
.TP
.I report_verbose
If this boolean relation is true, e2fsck will run as if the option
.B -v
is always specified.  This will cause e2fsck to print some additional
information at the end of each full file system check.
.SH THE [defaults] STANZA
The following relations are defined in the
.I [defaults]
stanza.
.TP
.I undo_dir
This relation specifies the directory where the undo file should be
stored.  It can be overridden via the
.B E2FSPROGS_UNDO_DIR
environment variable.  If the directory location is set to the value
.IR none ,
.B e2fsck
will not create an undo file.
.SH THE [problems] STANZA
Each tag in the
.I [problems]
stanza names a problem code specified with a leading "0x" followed by
six hex digits.
The value of the tag is a subsection where the relations in that
subsection override the default treatment of that particular problem
code.
.P
Note that inappropriate settings in this stanza may cause
.B e2fsck
to behave incorrectly, or even crash.  Most system administrators should
not be making changes to this section without referring to source code.
.P
Within each problem code's subsection, the following tags may be used:
.TP
.I description
This relation allows the message which is printed when this file system
inconsistency is detected to be overridden.
.TP
.I preen_ok
This boolean relation overrides the default behavior controlling
whether this file system problem should be automatically fixed when
.B e2fsck
is running in preen mode.
.TP
.I max_count
This integer relation overrides the
.I max_count_problems
parameter (set in the options section) for this particular problem.
.TP
.I no_ok
This boolean relation overrides the default behavior determining
whether or not the file system will be marked as inconsistent if the user
declines to fix the reported problem.
.TP
.I no_default
This boolean relation overrides whether the default answer for this
problem (or question) should be "no".
.TP
.I preen_nomessage
This boolean relation overrides the default behavior controlling
whether or not the description for this file system problem should
be suppressed when
.B e2fsck
is running in preen mode.
.TP
.I no_nomsg
This boolean relation overrides the default behavior controlling
whether or not the description for this file system problem should
be suppressed when a problem forced not to be fixed, either because
.B e2fsck
is run with the
.B -n
option or because the
.I force_no
flag has been set for the problem.
.TP
.I force_no
This boolean option, if set to true, forces a problem to never be fixed.
That is, it will be as if the user problem responds 'no' to the question
of 'should this problem be fixed?'.  The
.I force_no
option even overrides the
.B -y
option given on the command-line (just for the specific problem, of course).
.TP
.I not_a_fix
This boolean option, it set to true, marks the problem as
one where if the user gives permission to make the requested change,
it does not mean that the file system had a problem which has since
been fixed.  This is used for requests to optimize the file system's
data structure, such as pruning an extent tree.
@TDB_MAN_COMMENT@.SH THE [scratch_files] STANZA
@TDB_MAN_COMMENT@The following relations are defined in the
@TDB_MAN_COMMENT@.I [scratch_files]
@TDB_MAN_COMMENT@stanza.
@TDB_MAN_COMMENT@.TP
@TDB_MAN_COMMENT@.I directory
@TDB_MAN_COMMENT@If the directory named by this relation exists and is
@TDB_MAN_COMMENT@writeable, then e2fsck will attempt to use this
@TDB_MAN_COMMENT@directory to store scratch files instead of using
@TDB_MAN_COMMENT@in-memory data structures.
@TDB_MAN_COMMENT@.TP
@TDB_MAN_COMMENT@.I numdirs_threshold
@TDB_MAN_COMMENT@If this relation is set, then in-memory data structures
@TDB_MAN_COMMENT@will be used if the number of directories in the file system
@TDB_MAN_COMMENT@are fewer than amount specified.
@TDB_MAN_COMMENT@.TP
@TDB_MAN_COMMENT@.I dirinfo
@TDB_MAN_COMMENT@This relation controls whether or not the scratch file
@TDB_MAN_COMMENT@directory is used instead of an in-memory data
@TDB_MAN_COMMENT@structure for directory information.  It defaults to
@TDB_MAN_COMMENT@true.
@TDB_MAN_COMMENT@.TP
@TDB_MAN_COMMENT@.I icount
@TDB_MAN_COMMENT@This relation controls whether or not the scratch file
@TDB_MAN_COMMENT@directory is used instead of an in-memory data
@TDB_MAN_COMMENT@structure when tracking inode counts.  It defaults to
@TDB_MAN_COMMENT@true.
.SH LOGGING
E2fsck has the facility to save the information from an e2fsck run in a
directory so that a system administrator can review its output at their
leisure.  This allows information captured during the automatic e2fsck
preen run, as well as a manually started e2fsck run, to be saved for
posterity.  This facility is controlled by the
.IR log_filename ,
.IR log_dir ,
.IR log_dir_fallback ,
and
.I log_dir_wait
relations in the
.I [options]
stanza.
.PP
The filename in
.I log_filename
may contain the following percent-expressions that will be expanded as
follows.
.TP
.B %d
The current day of the month
.TP
.B %D
The current date; this is a equivalent of
.B %Y%m%d
.TP
.B %h
The hostname of the system.
.TP
.B %H
The current hour in 24-hour format (00..23)
.TP
.B %m
The current month as a two-digit number (01..12)
.TP
.B %M
The current minute (00..59)
.TP
.B %N
The name of the block device containing the file system, with any
directory pathname stripped off.
.TP
.B %p
The pid of the e2fsck process
.TP
.B %s
The current time expressed as the number of seconds since 1970-01-01
00:00:00 UTC
.TP
.B %S
The current second (00..59)
.TP
.B %T
The current time; this is equivalent of
.B %H%M%S
.TP
.B %u
The name of the user running e2fsck.
.TP
.B %U
This percent expression does not expand to anything, but it signals that
any following date or time expressions should be expressed in UTC time
instead of the local timezone.
.TP
.B %y
The last two digits of the current year (00..99)
.TP
.B %Y
The current year (i.e., 2012).
.SH EXAMPLES
The following recipe will prevent e2fsck from aborting during the boot
process when a file system contains orphaned files.  (Of course, this is
not always a good idea, since critical files that are needed for the
security of the system could potentially end up in lost+found, and
starting the system without first having a system administrator check
things out may be dangerous.)
.P
.br
	[problems]
.br
		0x040002 = {
.br
			preen_ok = true
.br
			description = "@u @i %i.  "
.br
		}
.P
The following recipe will cause an e2fsck logfile to be written to the
directory /var/log/e2fsck, with a filename that contains the device
name, the hostname of the system, the date, and time: e.g.,
"e2fsck-sda3.server.INFO.20120314-112142".  If the directory containing
/var/log is located on the root file system
which is initially mounted read-only, then the output will be saved in
memory and written out once the root file system has been remounted
read/write.   To avoid too much detail from being written to the serial
console (which could potentially slow down the boot sequence), only print
no more than 16 instances of each type of file system corruption.
.P
.br
	[options]
.br
		max_count_problems = 16
.br
		log_dir = /var/log/e2fsck
.br
		log_filename = e2fsck-%N.%h.INFO.%D-%T
.br
		log_dir_wait = true
.P
.SH FILES
.TP
.I /etc/e2fsck.conf
The configuration file for
.BR e2fsck (8).
.SH SEE ALSO
.BR e2fsck (8)
