.\" -*- 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 or ext3 filesystems.
.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 [problems]
This stanza allows the administrator to reconfigure how e2fsck handles
various filesystem inconsistencies.
.TP
.I [scratch_files]
This stanza controls when e2fsck will attempt to use 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 filesystem 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 buggy_init_scripts
Some buggy distributions (such as Ubuntu) have init scripts and/or
installers which fail to correctly set the system clock before running
e2fsck and/or formatting the filesystem initially.  Normally this
happens because the hardware clock is ticking localtime, instead of the
more proper and less error-prone UTC time.  So while the kernel is
booting, the system time (which in Linux systems always ticks in UTC
time) is set from the hardware clock, but since the hardware clock is
ticking localtime, the system time is incorrect.  Unfortunately, some
buggy distributions do not correct this before running e2fsck.  If this
option is set to a boolean value of true, we attempt to work around this
situation by allowing the superblock last write time, last mount time,
and last check time to be in the future by up to 24 hours.
.TP 
.I defer_check_on_battery
This boolean relation controls whether or not the interval between 
filesystem checks (either based on time or number of mounts) should 
be doubled if the system is running on battery.  It defaults to 
true.
.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 filesystem
inconsistency is detected to be overridden.
.TP
.I preen_ok
This boolean relation overrides the default behavior controlling 
whether this filesystem problem should be automatically fixed when
.B e2fsck
is running in preen mode.
.TP
.I no_ok
This boolean relation overrides the default behavior determining
whether or not the filesystem 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 filesystem 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 filesystem problem should
be suppressed when
.B e2fsck
is run with the
.B -n
option.
.SH THE [scratch_files] STANZA
The following relations are defined in the 
.I [scratch_files]
stanza.
.TP
.I directory
If the directory named by this relation exists and is writeable, then
e2fsck will attempt to use this directory to store scratch files instead
of using in-memory data structures.
.TP
.I numdirs_threshold
If this relation is set, then in-memory data structures be used if the
number of directories in the filesystem are fewer than amount specified.
.TP
.I dirinfo
This relation controls whether or not the scratch file directory is used
instead of an in-memory data structure for directory information.  It
defaults to true.
.TP
.I icount
This relation controls whether or not the scratch file directory is used
instead of an in-memory data structure when tracking inode counts.  It
defaults to true.
.SH EXAMPLES
The following recipe will prevent e2fsck from aborting during the boot
process when a filesystem 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
		}
.SH FILES
.TP
.I /etc/e2fsck.conf
The configuration file for 
.BR e2fsck (8).
.SH SEE ALSO
.BR e2fsck (8)
