| .\" -*- 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 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 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 filesystem 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 |
| filesystem 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 log_dir |
| If the |
| .I log_filename |
| relation 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 writeable. |
| .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 writeable, 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 requiste filesytem 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 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 [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 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 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 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). |
| .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 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 timzeone. |
| .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 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 |
| } |
| .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) |