| .\" 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 FSCK 8 "February 2009" "util-linux" "System Administration" |
| .SH NAME |
| fsck \- check and repair a Linux filesystem |
| .SH SYNOPSIS |
| .B fsck |
| .RB [ \-lsAVRTMNP ] |
| .RB [ \-r |
| .RI [ fd ]] |
| .RB [ \-C |
| .RI [ fd ]] |
| .RB [ \-t |
| .IR fstype ] |
| .RI [ filesystem \&...\&] |
| .RB [ \-\- ] |
| .RI [ fs-specific-options ] |
| .SH DESCRIPTION |
| .B fsck |
| is used to check and optionally repair one or more Linux filesystems. |
| .I filesys |
| can be a device name (e.g. |
| .IR /dev/hdc1 ", " /dev/sdb2 ), |
| a mount point (e.g. |
| .IR / ", " /usr ", " /home ), |
| or an ext2 label or UUID specifier (e.g. |
| UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd or LABEL=root). |
| Normally, the |
| .B fsck |
| program will try to handle filesystems on different physical disk drives |
| in parallel to reduce the total amount of time needed to check all of them. |
| .PP |
| If no filesystems are specified on the command line, and the |
| .B \-A |
| option is not specified, |
| .B fsck |
| will default to checking filesystems in |
| .I /etc/fstab |
| serially. This is equivalent to the |
| .B \-As |
| options. |
| .PP |
| The exit code returned by |
| .B fsck |
| is the sum of the following conditions: |
| .PP |
| .RS |
| .PD 0 |
| .TP |
| .B 0 |
| No errors |
| .TP |
| .B 1 |
| Filesystem errors corrected |
| .TP |
| .B 2 |
| System should be rebooted |
| .TP |
| .B 4 |
| Filesystem errors left uncorrected |
| .TP |
| .B 8 |
| Operational error |
| .TP |
| .B 16 |
| Usage or syntax error |
| .TP |
| .B 32 |
| Checking canceled by user request |
| .TP |
| .B 128 |
| Shared-library error |
| .PD |
| .RE |
| .PP |
| The exit code returned when multiple filesystems are checked |
| is the bit-wise OR of the exit codes for each |
| filesystem that is checked. |
| .PP |
| In actuality, |
| .B fsck |
| is simply a front-end for the various filesystem checkers |
| (\fBfsck\fR.\fIfstype\fR) available under Linux. The |
| filesystem-specific checker is searched for in the |
| PATH environment variable. If the PATH is undefined then |
| fallback to "/sbin". |
| .PP |
| Please see the filesystem-specific checker manual pages for |
| further details. |
| .SH OPTIONS |
| .TP |
| .B \-l |
| Create an exclusive |
| .BR flock (2) |
| lock file (/run/fsck/<diskname>.lock) for whole-disk device. |
| This option can be used with one device only (this means that \fB\-A\fR and |
| \fB\-l\fR are mutually exclusive). This option is recommended when more |
| .BR fsck (8) |
| instances are executed in the same time. The option is ignored when used for |
| multiple devices or for non-rotating disks. \fBfsck\fR does not lock underlying |
| devices when executed to check stacked devices (e.g.\& MD or DM) \(en this feature is |
| not implemented yet. |
| .TP |
| .BR \-r \ [ \fIfd\fR ] |
| Report certain statistics for each fsck when it completes. These statistics |
| include the exit status, the maximum run set size (in kilobytes), the elapsed |
| all-clock time and the user and system CPU time used by the fsck run. For |
| example: |
| |
| /dev/sda1: status 0, rss 92828, real 4.002804, user 2.677592, sys 0.86186 |
| |
| GUI front-ends may specify a file descriptor |
| .IR fd , |
| in which case the progress bar information will be sent to that file descriptor |
| in a machine parsable format. For example: |
| |
| /dev/sda1 0 92828 4.002804 2.677592 0.86186 |
| .TP |
| .B \-s |
| Serialize |
| .B fsck |
| operations. This is a good idea if you are checking multiple |
| filesystems and the checkers are in an interactive mode. (Note: |
| .BR e2fsck (8) |
| runs in an interactive mode by default. To make |
| .BR e2fsck (8) |
| run in a non-interactive mode, you must either specify the |
| .B \-p |
| or |
| .B \-a |
| option, if you wish for errors to be corrected automatically, or the |
| .B \-n |
| option if you do not.) |
| .TP |
| .BI \-t " fslist" |
| Specifies the type(s) of filesystem to be checked. When the |
| .B \-A |
| flag is specified, only filesystems that match |
| .I fslist |
| are checked. The |
| .I fslist |
| parameter is a comma-separated list of filesystems and options |
| specifiers. All of the filesystems in this comma-separated list may be |
| prefixed by a negation operator |
| .RB ' no ' |
| or |
| .RB ' ! ', |
| which requests that only those filesystems not listed in |
| .I fslist |
| will be checked. If none of the filesystems in |
| .I fslist |
| is prefixed by a negation operator, then only those listed filesystems |
| will be checked. |
| .sp |
| Options specifiers may be included in the comma-separated |
| .IR fslist . |
| They must have the format |
| .BI opts= fs-option\fR. |
| If an options specifier is present, then only filesystems which contain |
| .I fs-option |
| in their mount options field of |
| .I /etc/fstab |
| will be checked. If the options specifier is prefixed by a negation |
| operator, then only |
| those filesystems that do not have |
| .I fs-option |
| in their mount options field of |
| .I /etc/fstab |
| will be checked. |
| .sp |
| For example, if |
| .B opts=ro |
| appears in |
| .IR fslist , |
| then only filesystems listed in |
| .I /etc/fstab |
| with the |
| .B ro |
| option will be checked. |
| .sp |
| For compatibility with Mandrake distributions whose boot scripts |
| depend upon an unauthorized UI change to the |
| .B fsck |
| program, if a filesystem type of |
| .B loop |
| is found in |
| .IR fslist , |
| it is treated as if |
| .B opts=loop |
| were specified as an argument to the |
| .B \-t |
| option. |
| .sp |
| Normally, the filesystem type is deduced by searching for |
| .I filesys |
| in the |
| .I /etc/fstab |
| file and using the corresponding entry. |
| If the type cannot be deduced, and there is only a single filesystem |
| given as an argument to the |
| .B \-t |
| option, |
| .B fsck |
| will use the specified filesystem type. If this type is not |
| available, then the default filesystem type (currently ext2) is used. |
| .TP |
| .B \-A |
| Walk through the |
| .I /etc/fstab |
| file and try to check all filesystems in one run. This option is |
| typically used from the |
| .I /etc/rc |
| system initialization file, instead of multiple commands for checking |
| a single filesystem. |
| .sp |
| The root filesystem will be checked first unless the |
| .B \-P |
| option is specified (see below). After that, |
| filesystems will be checked in the order specified by the |
| .I fs_passno |
| (the sixth) field in the |
| .I /etc/fstab |
| file. |
| Filesystems with a |
| .I fs_passno |
| value of 0 are skipped and are not checked at all. Filesystems with a |
| .I fs_passno |
| value of greater than zero will be checked in order, |
| with filesystems with the lowest |
| .I fs_passno |
| number being checked first. |
| If there are multiple filesystems with the same pass number, |
| .B fsck |
| will attempt to check them in parallel, although it will avoid running |
| multiple filesystem checks on the same physical disk. |
| .sp |
| .B fsck |
| does not check stacked devices (RAIDs, dm-crypt, \&...\&) in parallel with any other |
| device. See below for FSCK_FORCE_ALL_PARALLEL setting. The /sys filesystem is |
| used to determine dependencies between devices. |
| .sp |
| Hence, a very common configuration in |
| .I /etc/fstab |
| files is to set the root filesystem to have a |
| .I fs_passno |
| value of 1 |
| and to set all other filesystems to have a |
| .I fs_passno |
| value of 2. This will allow |
| .B fsck |
| to automatically run filesystem checkers in parallel if it is advantageous |
| to do so. System administrators might choose |
| not to use this configuration if they need to avoid multiple filesystem |
| checks running in parallel for some reason \(en for example, if the |
| machine in question is short on memory so that |
| excessive paging is a concern. |
| .sp |
| .B fsck |
| normally does not check whether the device actually exists before |
| calling a filesystem specific checker. Therefore non-existing |
| devices may cause the system to enter filesystem repair mode during |
| boot if the filesystem specific checker returns a fatal error. The |
| .I /etc/fstab |
| mount option |
| .B nofail |
| may be used to have |
| .B fsck |
| skip non-existing devices. |
| .B fsck |
| also skips non-existing devices that have the special filesystem type |
| .BR auto . |
| .TP |
| .BR \-C \ [ \fIfd\fR ] |
| Display completion/progress bars for those filesystem checkers (currently |
| only for ext[234]) which support them. \fBfsck\fR will manage the |
| filesystem checkers so that only one of them will display |
| a progress bar at a time. GUI front-ends may specify a file descriptor |
| .IR fd , |
| in which case the progress bar information will be sent to that file descriptor. |
| .TP |
| .B \-M |
| Do not check mounted filesystems and return an exit code of 0 |
| for mounted filesystems. |
| .TP |
| .B \-N |
| Don't execute, just show what would be done. |
| .TP |
| .B \-P |
| When the |
| .B \-A |
| flag is set, check the root filesystem in parallel with the other filesystems. |
| This is not the safest thing in the world to do, |
| since if the root filesystem is in doubt things like the |
| .BR e2fsck (8) |
| executable might be corrupted! This option is mainly provided |
| for those sysadmins who don't want to repartition the root |
| filesystem to be small and compact (which is really the right solution). |
| .TP |
| .B \-R |
| When checking all filesystems with the |
| .B \-A |
| flag, skip the root filesystem. (This is useful in case the root |
| filesystem has already been mounted read-write.) |
| .TP |
| .B \-T |
| Don't show the title on startup. |
| .TP |
| .B \-V |
| Produce verbose output, including all filesystem-specific commands |
| that are executed. |
| .TP |
| \fB\-?\fR, \fB\-\-help\fR |
| Display help text and exit. |
| .TP |
| \fB\-\-version\fR |
| Display version information and exit. |
| .SH FILESYSTEM SPECIFIC OPTIONS |
| .B Options which are not understood by fsck are passed to the filesystem-specific checker! |
| .PP |
| These options |
| .B must |
| not take arguments, as there is no |
| way for |
| .B fsck |
| to be able to properly guess which options take arguments and which |
| don't. |
| .PP |
| Options and arguments which follow the |
| .B \-\- |
| are treated as filesystem-specific options to be passed to the |
| filesystem-specific checker. |
| .PP |
| Please note that \fBfsck\fR is not |
| designed to pass arbitrarily complicated options to filesystem-specific |
| checkers. If you're doing something complicated, please just |
| execute the filesystem-specific checker directly. If you pass |
| .B fsck |
| some horribly complicated options and arguments, and it doesn't do |
| what you expect, |
| .B don't bother reporting it as a bug. |
| You're almost certainly doing something that you shouldn't be doing |
| with |
| .BR fsck . |
| Options to different filesystem-specific fsck's are not standardized. |
| .SH FILES |
| .I /etc/fstab |
| .SH ENVIRONMENT VARIABLES |
| The |
| .B fsck |
| program's behavior is affected by the following environment variables: |
| .TP |
| .B FSCK_FORCE_ALL_PARALLEL |
| If this environment variable is set, |
| .B fsck |
| will attempt to check all of the specified filesystems in parallel, regardless of |
| whether the filesystems appear to be on the same device. (This is useful for |
| RAID systems or high-end storage systems such as those sold by companies such |
| as IBM or EMC.) Note that the fs_passno value is still used. |
| .TP |
| .B FSCK_MAX_INST |
| This environment variable will limit the maximum number of filesystem |
| checkers that can be running at one time. This allows configurations |
| which have a large number of disks to avoid |
| .B fsck |
| starting too many filesystem checkers at once, which might overload |
| CPU and memory resources available on the system. If this value is |
| zero, then an unlimited number of processes can be spawned. This is |
| currently the default, but future versions of |
| .B fsck |
| may attempt to automatically determine how many filesystem checks can |
| be run based on gathering accounting data from the operating system. |
| .TP |
| .B PATH |
| The |
| .B PATH |
| environment variable is used to find filesystem checkers. |
| .TP |
| .B FSTAB_FILE |
| This environment variable allows the system administrator |
| to override the standard location of the |
| .I /etc/fstab |
| file. It is also useful for developers who are testing |
| .BR fsck . |
| .TP |
| .B LIBBLKID_DEBUG=all |
| enables libblkid debug output. |
| .TP |
| .B LIBMOUNT_DEBUG=all |
| enables libmount debug output. |
| .SH SEE ALSO |
| .na |
| .BR fstab (5), |
| .BR mkfs (8), |
| .BR fsck.ext2 (8) |
| or |
| .BR fsck.ext3 (8) |
| or |
| .BR e2fsck (8), |
| .BR cramfsck (8), |
| .BR fsck.jfs (8), |
| .BR fsck.nfs (8), |
| .BR fsck.minix (8), |
| .BR fsck.msdos (8), |
| .BR fsck.vfat (8), |
| .BR fsck.xfs (8), |
| .BR reiserfsck (8) |
| .ad |
| .SH AUTHORS |
| .nf |
| Theodore Ts'o <tytso@mit.edu> |
| Karel Zak <kzak@redhat.com> |
| .fi |
| .SH AVAILABILITY |
| The fsck command is part of the util-linux package and is available from |
| .UR https://\:www.kernel.org\:/pub\:/linux\:/utils\:/util-linux/ |
| Linux Kernel Archive |
| .UE . |