]>
Commit | Line | Data |
---|---|---|
607c2a72 KZ |
1 | .\" -*- nroff -*- |
2 | .\" Copyright 1993, 1994, 1995 by Theodore Ts'o. All Rights Reserved. | |
3 | .\" This file may be copied under the terms of the GNU Public License. | |
c45b8d6a | 4 | .\" |
232dc924 | 5 | .TH FSCK 8 "February 2009" "util-linux" "System Administration" |
607c2a72 | 6 | .SH NAME |
92623f46 | 7 | fsck \- check and repair a Linux filesystem |
607c2a72 KZ |
8 | .SH SYNOPSIS |
9 | .B fsck | |
5a0da00a | 10 | .RB [ \-lrsAVRTMNP ] |
c45b8d6a PB |
11 | .RB [ \-C |
12 | .RI [ fd ]] | |
13 | .RB [ \-t | |
14 | .IR fstype ] | |
15 | .RI [ filesys ...] | |
16 | .RB [ \-\- ] | |
17 | .RI [ fs-specific-options ] | |
607c2a72 KZ |
18 | .SH DESCRIPTION |
19 | .B fsck | |
92623f46 | 20 | is used to check and optionally repair one or more Linux filesystems. |
607c2a72 KZ |
21 | .I filesys |
22 | can be a device name (e.g. | |
23 | .IR /dev/hdc1 ", " /dev/sdb2 ), | |
24 | a mount point (e.g. | |
25 | .IR / ", " /usr ", " /home ), | |
26 | or an ext2 label or UUID specifier (e.g. | |
c45b8d6a PB |
27 | UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd or LABEL=root). |
28 | Normally, the | |
29 | .B fsck | |
30 | program will try to handle filesystems on different physical disk drives | |
92623f46 | 31 | in parallel to reduce the total amount of time needed to check all of them. |
607c2a72 | 32 | .PP |
c45b8d6a PB |
33 | If no filesystems are specified on the command line, and the |
34 | .B \-A | |
35 | option is not specified, | |
607c2a72 KZ |
36 | .B fsck |
37 | will default to checking filesystems in | |
38 | .B /etc/fstab | |
c45b8d6a | 39 | serially. This is equivalent to the |
607c2a72 KZ |
40 | .B \-As |
41 | options. | |
42 | .PP | |
43 | The exit code returned by | |
44 | .B fsck | |
45 | is the sum of the following conditions: | |
fdbc2509 SK |
46 | .PP |
47 | .RS | |
48 | .PD 0 | |
49 | .TP | |
50 | .B 0 | |
51 | No errors | |
52 | .TP | |
53 | .B 1 | |
54 | Filesystem errors corrected | |
55 | .TP | |
56 | .B 2 | |
57 | System should be rebooted | |
58 | .TP | |
59 | .B 4 | |
60 | Filesystem errors left uncorrected | |
61 | .TP | |
62 | .B 8 | |
63 | Operational error | |
64 | .TP | |
65 | .B 16 | |
66 | Usage or syntax error | |
67 | .TP | |
68 | .B 32 | |
69 | Fsck canceled by user request | |
70 | .TP | |
71 | .B 128 | |
72 | Shared-library error | |
73 | .PD | |
74 | .RE | |
75 | .PP | |
92623f46 | 76 | The exit code returned when multiple filesystems are checked |
607c2a72 | 77 | is the bit-wise OR of the exit codes for each |
92623f46 | 78 | filesystem that is checked. |
607c2a72 KZ |
79 | .PP |
80 | In actuality, | |
81 | .B fsck | |
92623f46 BS |
82 | is simply a front-end for the various filesystem checkers |
83 | (\fBfsck\fR.\fIfstype\fR) available under Linux. The | |
84 | filesystem-specific checker is searched for in | |
607c2a72 KZ |
85 | .I /sbin |
86 | first, then in | |
87 | .I /etc/fs | |
88 | and | |
89 | .IR /etc , | |
90 | and finally in the directories listed in the PATH environment | |
92623f46 | 91 | variable. Please see the filesystem-specific checker manual pages for |
607c2a72 KZ |
92 | further details. |
93 | .SH OPTIONS | |
94 | .TP | |
dd0bd943 | 95 | .B \-l |
92623f46 | 96 | Lock the whole-disk device by an exclusive |
dd0bd943 | 97 | .BR flock (2). |
92623f46 BS |
98 | This option can be used with one device only (this means that \fB-A\fR and |
99 | \fB-l\fR are mutually exclusive). This option is recommended when more | |
dd0bd943 | 100 | .B fsck (8) |
92623f46 BS |
101 | instances are executed in the same time. The option is ignored when used for |
102 | multiple devices or for non-rotating disks. \fBfsck\fR does not lock underlying | |
103 | devices when executed to check stacked devices (e.g. MD or DM) -- this feature is | |
dd0bd943 KZ |
104 | not implemented yet. |
105 | .TP | |
5a0da00a FM |
106 | .B \-r |
107 | Report certain statistics for each fsck when it completes. These statistics | |
108 | include the exit status, the maximum run set size (in kilobytes), the elapsed | |
109 | all-clock time and the user and system CPU time used by the fsck run. For | |
110 | example: | |
111 | ||
112 | /dev/sda1: status 0, maxrss 92828, real 4, user 2.677592, sys 0.861868 | |
113 | .TP | |
607c2a72 | 114 | .B \-s |
c45b8d6a PB |
115 | Serialize |
116 | .B fsck | |
607c2a72 KZ |
117 | operations. This is a good idea if you are checking multiple |
118 | filesystems and the checkers are in an interactive mode. (Note: | |
119 | .BR e2fsck (8) | |
c45b8d6a | 120 | runs in an interactive mode by default. To make |
607c2a72 KZ |
121 | .BR e2fsck (8) |
122 | run in a non-interactive mode, you must either specify the | |
123 | .B \-p | |
124 | or | |
125 | .B \-a | |
c45b8d6a | 126 | option, if you wish for errors to be corrected automatically, or the |
607c2a72 KZ |
127 | .B \-n |
128 | option if you do not.) | |
129 | .TP | |
130 | .BI \-t " fslist" | |
92623f46 | 131 | Specifies the type(s) of filesystem to be checked. When the |
c45b8d6a PB |
132 | .B \-A |
133 | flag is specified, only filesystems that match | |
607c2a72 KZ |
134 | .I fslist |
135 | are checked. The | |
136 | .I fslist | |
137 | parameter is a comma-separated list of filesystems and options | |
138 | specifiers. All of the filesystems in this comma-separated list may be | |
c45b8d6a | 139 | prefixed by a negation operator |
607c2a72 | 140 | .RB ' no ' |
c45b8d6a | 141 | or |
607c2a72 KZ |
142 | .RB ' ! ', |
143 | which requests that only those filesystems not listed in | |
144 | .I fslist | |
92623f46 | 145 | will be checked. If none of the filesystems in |
607c2a72 | 146 | .I fslist |
92623f46 | 147 | is prefixed by a negation operator, then only those listed filesystems |
607c2a72 KZ |
148 | will be checked. |
149 | .sp | |
150 | Options specifiers may be included in the comma-separated | |
151 | .IR fslist . | |
c45b8d6a | 152 | They must have the format |
607c2a72 KZ |
153 | .BI opts= fs-option\fR. |
154 | If an options specifier is present, then only filesystems which contain | |
155 | .I fs-option | |
c45b8d6a | 156 | in their mount options field of |
607c2a72 KZ |
157 | .B /etc/fstab |
158 | will be checked. If the options specifier is prefixed by a negation | |
c45b8d6a | 159 | operator, then only |
607c2a72 KZ |
160 | those filesystems that do not have |
161 | .I fs-option | |
162 | in their mount options field of | |
c45b8d6a | 163 | .B /etc/fstab |
607c2a72 KZ |
164 | will be checked. |
165 | .sp | |
166 | For example, if | |
167 | .B opts=ro | |
168 | appears in | |
169 | .IR fslist , | |
170 | then only filesystems listed in | |
c45b8d6a | 171 | .B /etc/fstab |
607c2a72 KZ |
172 | with the |
173 | .B ro | |
174 | option will be checked. | |
175 | .sp | |
176 | For compatibility with Mandrake distributions whose boot scripts | |
177 | depend upon an unauthorized UI change to the | |
178 | .B fsck | |
179 | program, if a filesystem type of | |
180 | .B loop | |
181 | is found in | |
182 | .IR fslist , | |
183 | it is treated as if | |
184 | .B opts=loop | |
185 | were specified as an argument to the | |
186 | .B \-t | |
187 | option. | |
188 | .sp | |
189 | Normally, the filesystem type is deduced by searching for | |
190 | .I filesys | |
c45b8d6a PB |
191 | in the |
192 | .I /etc/fstab | |
607c2a72 | 193 | file and using the corresponding entry. |
c45b8d6a PB |
194 | If the type can not be deduced, and there is only a single filesystem |
195 | given as an argument to the | |
196 | .B \-t | |
197 | option, | |
607c2a72 KZ |
198 | .B fsck |
199 | will use the specified filesystem type. If this type is not | |
92623f46 | 200 | available, then the default filesystem type (currently ext2) is used. |
607c2a72 KZ |
201 | .TP |
202 | .B \-A | |
203 | Walk through the | |
204 | .I /etc/fstab | |
92623f46 | 205 | file and try to check all filesystems in one run. This option is |
607c2a72 KZ |
206 | typically used from the |
207 | .I /etc/rc | |
208 | system initialization file, instead of multiple commands for checking | |
92623f46 | 209 | a single filesystem. |
607c2a72 KZ |
210 | .sp |
211 | The root filesystem will be checked first unless the | |
212 | .B \-P | |
c45b8d6a PB |
213 | option is specified (see below). After that, |
214 | filesystems will be checked in the order specified by the | |
215 | .I fs_passno | |
216 | (the sixth) field in the | |
607c2a72 | 217 | .I /etc/fstab |
c45b8d6a PB |
218 | file. |
219 | Filesystems with a | |
607c2a72 KZ |
220 | .I fs_passno |
221 | value of 0 are skipped and are not checked at all. Filesystems with a | |
222 | .I fs_passno | |
c45b8d6a | 223 | value of greater than zero will be checked in order, |
607c2a72 | 224 | with filesystems with the lowest |
c45b8d6a | 225 | .I fs_passno |
607c2a72 | 226 | number being checked first. |
c45b8d6a PB |
227 | If there are multiple filesystems with the same pass number, |
228 | fsck will attempt to check them in parallel, although it will avoid running | |
229 | multiple filesystem checks on the same physical disk. | |
607c2a72 | 230 | .sp |
0c0f93fc KZ |
231 | .B fsck |
232 | does not check stacked devices (RAIDs, dm-crypt, ...) in parallel with any other | |
92623f46 | 233 | device. See below for FSCK_FORCE_ALL_PARALLEL setting. The /sys filesystem is |
0c0f93fc KZ |
234 | used to detemine dependencies between devices. |
235 | .sp | |
c45b8d6a | 236 | Hence, a very common configuration in |
607c2a72 | 237 | .I /etc/fstab |
c45b8d6a | 238 | files is to set the root filesystem to have a |
607c2a72 KZ |
239 | .I fs_passno |
240 | value of 1 | |
241 | and to set all other filesystems to have a | |
242 | .I fs_passno | |
243 | value of 2. This will allow | |
244 | .B fsck | |
245 | to automatically run filesystem checkers in parallel if it is advantageous | |
246 | to do so. System administrators might choose | |
247 | not to use this configuration if they need to avoid multiple filesystem | |
248 | checks running in parallel for some reason --- for example, if the | |
249 | machine in question is short on memory so that | |
250 | excessive paging is a concern. | |
0779255c LN |
251 | .sp |
252 | .B fsck | |
253 | normally does not check whether the device actually exists before | |
92623f46 BS |
254 | calling a filesystem specific checker. Therefore non-existing |
255 | devices may cause the system to enter filesystem repair mode during | |
256 | boot if the filesystem specific checker returns a fatal error. The | |
0779255c LN |
257 | .B /etc/fstab |
258 | mount option | |
259 | .B nofail | |
260 | may be used to have | |
261 | .B fsck | |
262 | skip non-existing devices. | |
263 | .B fsck | |
92623f46 | 264 | also skips non-existing devices that have the special filesystem type |
fdbc2509 | 265 | .BR auto . |
607c2a72 KZ |
266 | .TP |
267 | .B \-C\fR [ \fI "fd" \fR ] | |
c45b8d6a | 268 | Display completion/progress bars for those filesystem checkers (currently |
607c2a72 | 269 | only for ext2 and ext3) which support them. Fsck will manage the |
c45b8d6a | 270 | filesystem checkers so that only one of them will display |
607c2a72 KZ |
271 | a progress bar at a time. GUI front-ends may specify a file descriptor |
272 | .IR fd , | |
273 | in which case the progress bar information will be sent to that file descriptor. | |
274 | .TP | |
275 | .B \-M | |
276 | Do not check mounted filesystems and return an exit code of 0 | |
277 | for mounted filesystems. | |
278 | .TP | |
279 | .B \-N | |
280 | Don't execute, just show what would be done. | |
281 | .TP | |
282 | .B \-P | |
c45b8d6a | 283 | When the |
607c2a72 KZ |
284 | .B \-A |
285 | flag is set, check the root filesystem in parallel with the other filesystems. | |
286 | This is not the safest thing in the world to do, | |
c45b8d6a PB |
287 | since if the root filesystem is in doubt things like the |
288 | .BR e2fsck (8) | |
607c2a72 KZ |
289 | executable might be corrupted! This option is mainly provided |
290 | for those sysadmins who don't want to repartition the root | |
291 | filesystem to be small and compact (which is really the right solution). | |
292 | .TP | |
293 | .B \-R | |
92623f46 | 294 | When checking all filesystems with the |
607c2a72 | 295 | .B \-A |
92623f46 BS |
296 | flag, skip the root filesystem. (This is useful in case the root |
297 | filesystem has already been mounted read-write.) | |
607c2a72 KZ |
298 | .TP |
299 | .B \-T | |
300 | Don't show the title on startup. | |
301 | .TP | |
302 | .B \-V | |
92623f46 | 303 | Produce verbose output, including all filesystem-specific commands |
607c2a72 KZ |
304 | that are executed. |
305 | .TP | |
306 | .B fs-specific-options | |
c45b8d6a PB |
307 | Options which are not understood by |
308 | .B fsck | |
607c2a72 KZ |
309 | are passed to the filesystem-specific checker. These arguments |
310 | .B must | |
311 | not take arguments, as there is no | |
c45b8d6a | 312 | way for |
607c2a72 | 313 | .B fsck |
92623f46 | 314 | to be able to properly guess which options take arguments and which |
607c2a72 KZ |
315 | don't. |
316 | .IP | |
317 | Options and arguments which follow the | |
318 | .B \-\- | |
92623f46 BS |
319 | are treated as filesystem-specific options to be passed to the |
320 | filesystem-specific checker. | |
607c2a72 KZ |
321 | .IP |
322 | Please note that fsck is not | |
323 | designed to pass arbitrarily complicated options to filesystem-specific | |
324 | checkers. If you're doing something complicated, please just | |
c45b8d6a | 325 | execute the filesystem-specific checker directly. If you pass |
607c2a72 | 326 | .B fsck |
92623f46 | 327 | some horribly complicated options and arguments, and it doesn't do |
c45b8d6a | 328 | what you expect, |
607c2a72 KZ |
329 | .B don't bother reporting it as a bug. |
330 | You're almost certainly doing something that you shouldn't be doing | |
c45b8d6a | 331 | with |
607c2a72 KZ |
332 | .BR fsck. |
333 | .PP | |
334 | Options to different filesystem-specific fsck's are not standardized. | |
335 | If in doubt, please consult the man pages of the filesystem-specific | |
336 | checker. Although not guaranteed, the following options are supported | |
92623f46 | 337 | by most filesystem checkers: |
607c2a72 KZ |
338 | .TP |
339 | .B \-a | |
92623f46 | 340 | Automatically repair the filesystem without any questions (use |
c45b8d6a | 341 | this option with caution). Note that |
607c2a72 | 342 | .BR e2fsck (8) |
c45b8d6a | 343 | supports |
607c2a72 | 344 | .B \-a |
92623f46 | 345 | for backward compatibility only. This option is mapped to |
607c2a72 KZ |
346 | .BR e2fsck 's |
347 | .B \-p | |
c45b8d6a PB |
348 | option which is safe to use, unlike the |
349 | .B \-a | |
92623f46 | 350 | option that some filesystem checkers support. |
607c2a72 KZ |
351 | .TP |
352 | .B \-n | |
c45b8d6a | 353 | For some filesystem-specific checkers, the |
607c2a72 | 354 | .B \-n |
c45b8d6a | 355 | option will cause the fs-specific fsck to avoid attempting to repair any |
607c2a72 | 356 | problems, but simply report such problems to stdout. This is however |
c45b8d6a | 357 | not true for all filesystem-specific checkers. In particular, |
607c2a72 KZ |
358 | .BR fsck.reiserfs (8) |
359 | will not report any corruption if given this option. | |
360 | .BR fsck.minix (8) | |
c45b8d6a PB |
361 | does not support the |
362 | .B \-n | |
607c2a72 KZ |
363 | option at all. |
364 | .TP | |
365 | .B \-r | |
366 | Interactively repair the filesystem (ask for confirmations). Note: It | |
367 | is generally a bad idea to use this option if multiple fsck's are being | |
c45b8d6a | 368 | run in parallel. Also note that this is |
607c2a72 | 369 | .BR e2fsck 's |
92623f46 | 370 | default behavior; it supports this option for backward compatibility |
607c2a72 KZ |
371 | reasons only. |
372 | .TP | |
373 | .B \-y | |
c45b8d6a PB |
374 | For some filesystem-specific checkers, the |
375 | .B \-y | |
607c2a72 KZ |
376 | option will cause the fs-specific fsck to always attempt to fix any |
377 | detected filesystem corruption automatically. Sometimes an expert may | |
c45b8d6a | 378 | be able to do better driving the fsck manually. Note that |
607c2a72 | 379 | .B not |
c45b8d6a | 380 | all filesystem-specific checkers implement this option. In particular |
607c2a72 KZ |
381 | .BR fsck.minix (8) |
382 | and | |
383 | .BR fsck.cramfs (8) | |
92623f46 | 384 | do not support the |
607c2a72 KZ |
385 | .B -y |
386 | option as of this writing. | |
387 | .SH AUTHOR | |
fdbc2509 SK |
388 | .UR tytso\@mit.edu |
389 | Theodore Ts'o | |
390 | .UE | |
607c2a72 | 391 | .SH AVAILABILITY |
601d12fb | 392 | The fsck command is part of the util-linux package and is available from |
fdbc2509 SK |
393 | .UR ftp://\:ftp.kernel.org\:/pub\:/linux\:/utils\:/util-linux/ |
394 | Linux Kernel Archive | |
395 | .UE . | |
607c2a72 KZ |
396 | .SH FILES |
397 | .IR /etc/fstab . | |
398 | .SH ENVIRONMENT VARIABLES | |
399 | The | |
400 | .B fsck | |
401 | program's behavior is affected by the following environment variables: | |
402 | .TP | |
403 | .B FSCK_FORCE_ALL_PARALLEL | |
c45b8d6a | 404 | If this environment variable is set, |
607c2a72 | 405 | .B fsck |
92623f46 | 406 | will attempt to check all of the specified filesystems in parallel, regardless of |
0c0f93fc KZ |
407 | whether the filesystems appear to be on the same device. (This is useful for |
408 | RAID systems or high-end storage systems such as those sold by companies such | |
92623f46 | 409 | as IBM or EMC.) Note that the fs_passno value is still used. |
607c2a72 KZ |
410 | .TP |
411 | .B FSCK_MAX_INST | |
92623f46 | 412 | This environment variable will limit the maximum number of filesystem |
607c2a72 | 413 | checkers that can be running at one time. This allows configurations |
c45b8d6a | 414 | which have a large number of disks to avoid |
607c2a72 | 415 | .B fsck |
92623f46 | 416 | starting too many filesystem checkers at once, which might overload |
607c2a72 KZ |
417 | CPU and memory resources available on the system. If this value is |
418 | zero, then an unlimited number of processes can be spawned. This is | |
419 | currently the default, but future versions of | |
420 | .B fsck | |
92623f46 | 421 | may attempt to automatically determine how many filesystem checks can |
607c2a72 KZ |
422 | be run based on gathering accounting data from the operating system. |
423 | .TP | |
424 | .B PATH | |
c45b8d6a | 425 | The |
607c2a72 | 426 | .B PATH |
92623f46 | 427 | environment variable is used to find filesystem checkers. A set of |
c45b8d6a | 428 | system directories are searched first: |
607c2a72 KZ |
429 | .BR /sbin , |
430 | .BR /sbin/fs.d , | |
92623f46 | 431 | .BR /sbin/fs , |
607c2a72 | 432 | .BR /etc/fs , |
c45b8d6a | 433 | and |
607c2a72 KZ |
434 | .BR /etc . |
435 | Then the set of directories found in the | |
436 | .B PATH | |
437 | environment are searched. | |
438 | .TP | |
439 | .B FSTAB_FILE | |
c45b8d6a PB |
440 | This environment variable allows the system administrator |
441 | to override the standard location of the | |
607c2a72 KZ |
442 | .B /etc/fstab |
443 | file. It is also useful for developers who are testing | |
444 | .BR fsck . | |
445 | .SH SEE ALSO | |
446 | .BR fstab (5), | |
447 | .BR mkfs (8), | |
448 | .BR fsck.ext2 (8) | |
449 | or | |
450 | .BR fsck.ext3 (8) | |
451 | or | |
452 | .BR e2fsck (8), | |
453 | .BR cramfsck (8), | |
454 | .BR fsck.minix (8), | |
455 | .BR fsck.msdos (8), | |
456 | .BR fsck.jfs (8), | |
457 | .BR fsck.nfs (8), | |
458 | .BR fsck.vfat (8), | |
459 | .BR fsck.xfs (8), | |
460 | .BR fsck.xiafs (8), | |
461 | .BR reiserfsck (8). |