Whamcloud - gitweb
e2fsck: Don't double count an extent after deleting the last extent
[tools/e2fsprogs.git] / e2fsck / e2fsck.8.in
index bfd20f3..53c473e 100644 (file)
@@ -4,11 +4,11 @@
 .\" 
 .TH E2FSCK 8 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@"
 .SH NAME
-e2fsck \- check a Linux second extended file system
+e2fsck \- check a Linux ext2/ext3 file system
 .SH SYNOPSIS
 .B e2fsck
 [
-.B \-pacnyrdfvtFV
+.B \-pacnyrdfkvtDFV
 ]
 [
 .B \-b
@@ -19,108 +19,288 @@ e2fsck \- check a Linux second extended file system
 .I blocksize
 ]
 [
-.B \-l|-L
+.BR \-l | \-L
 .I bad_blocks_file
 ]
+[
+.B \-C
+.I fd
+]
+@JDEV@[
+@JDEV@.B \-j
+@JDEV@.I external-journal
+@JDEV@]
+[
+.B \-E
+.I extended_options
+]
 .I device
 .SH DESCRIPTION
 .B e2fsck
-is used to check a Linux second extended file system.
-.TP
+is used to check a Linux second extended file system (ext2fs).  
+.B E2fsck
+also 
+supports ext2 filesystems containing a journal, which are
+also sometimes known as ext3 filesystems, by first applying the journal 
+to the filesystem before continuing with normal 
+.B e2fsck
+processing.  After the journal has been applied, a filesystem will
+normally be marked as clean.  Hence, for ext3 filesystems, 
+.B e2fsck
+will normally run the journal and exit, unless its superblock
+indicates that further checking is required.
+.PP
 .I device
-is the special file corresponding to the device (e.g /dev/hdXX).
+is the device file where the filesystem is stored (e.g.
+.IR /dev/hdc1 ).
+.PP
+Note that in general it is not safe to run
+.B e2fsck
+on mounted filesystems.  The only exception is if the
+.B \-n
+option is specified, and 
+.BR \-c , 
+.BR \-l ,
+or
+.B -L
+options are 
+.I not
+specified.   However, even if it is safe to do so, the results printed by
+.B e2fsck
+are not valid if the filesystem is mounted.   If 
+.B e2fsck
+asks whether or not you should check a filesystem which is mounted, 
+the only correct answer is ``no''.  Only experts who really know what
+they are doing should consider answering this question in any other way.
 .SH OPTIONS
 .TP
-.-a 
+.B \-a 
 This option does the same thing as the 
-.-p
+.B \-p
 option.  It is provided for backwards compatibility only; it is
 suggested that people use 
-.-p 
-option whever possible.
+.B \-p 
+option whenever possible.
 .TP
-.I -b superblock
-Instead of using the normal superblock, use the alternative superblock
+.BI \-b " superblock"
+Instead of using the normal superblock, use an alternative superblock
 specified by 
 .IR superblock .
+This option is normally used when the primary superblock has been
+corrupted.  The location of the backup superblock is dependent on the
+filesystem's blocksize.  For filesystems with 1k blocksizes, a backup
+superblock can be found at block 8193; for filesystems with 2k
+blocksizes, at block 16384; and for 4k blocksizes, at block 32768.  
+.IP
+Additional backup superblocks can be determined by using the 
+.B mke2fs 
+program using the 
+.B \-n
+option to print out where the superblocks were created.   The 
+.B \-b 
+option to 
+.BR mke2fs ,
+which specifies blocksize of the filesystem must be specified in order
+for the superblock locations that are printed out to be accurate.
+.IP
+If an alternative superblock is specified and  
+the filesystem is not opened read-only, e2fsck will make sure that the
+primary superblock is updated appropriately upon completion of the 
+filesystem check.
 .TP
-.I -B blocksize
-Normally, e2fsck will search for the superblock at various different
-block sizes in an attempt to find the appropriate block size.  This
-search can be fooled in some cases.  This option forces e2fsck to only
-try locating the superblock at a particular blocksize.  If the
-superblock is not found, e2fsck will terminate with a fatal error.
+.BI \-B " blocksize"
+Normally, 
+.B e2fsck
+will search for the superblock at various different
+block sizes in an attempt to find the appropriate block size.
+This search can be fooled in some cases.  This option forces 
+.B e2fsck
+to only try locating the superblock at a particular blocksize.
+If the superblock is not found, 
+.B e2fsck 
+will terminate with a fatal error.
 .TP
-.I -c
-This option causes e2fsck to run the 
+.B \-c
+This option causes 
+.B e2fsck 
+to use 
 .BR badblocks (8)
-program to find any blocks 
-which are bad on the filesystem, and then marks them as bad by adding them 
-to the bad block inode.
+program to do a read-only scan of the device in order to find any bad
+blocks.  If any bad blocks are found, they are added to the bad block
+inode to prevent them from being allocated to a file or directory.  If
+this option is specified twice, then the bad block scan will be done
+using a non-destructive read-write test.
 .TP
-.I -d
+.BI \-C " fd"
+This option causes
+.B e2fsck
+to write completion information to the specified file descriptor 
+so that the progress of the filesystem 
+check can be monitored.  This option is typically used by programs 
+which are running
+.BR e2fsck .
+If the file descriptor number is negative, then absolute value of
+the file descriptor will be used, and the progress information will be
+suppressed initially.  It can later be enabled by sending the
+.B e2fsck
+process a SIGUSR1 signal.
+If the file descriptor specified is 0, 
+.B e2fsck
+will print a completion bar as it goes about its business.  This requires
+that e2fsck is running on a video console or terminal.
+.TP
+.B \-d
 Print debugging output (useless unless you are debugging
+.BR e2fsck ).
+.TP
+.B \-D
+Optimize directories in filesystem.  This option causes e2fsck to
+try to optimize all directories, either by reindexing them if the
+filesystem supports directory indexing,  or by sorting and compressing
+directories for smaller directories, or for filesystems using
+traditional linear directories.
+.IP
+Even without the
+.B \-D
+option,
 .B e2fsck
-).
+may sometimes optimize a few directories --- for example, if
+directory indexing is enabled and a directory is not indexed and would
+benefit from being indexed, or if the index structures are corrupted
+and need to be rebuilt.  The
+.B \-D
+option forces all directories in the filesystem to be optimized.  This can
+sometimes make them a little smaller and slightly faster to search, but
+in practice, you should rarely need to use this option.
+.IP
+The
+.B \-D
+option will detect directory entries with duplicate names in a single
+directory, which e2fsck normally does not enforce for performance reasons.
 .TP
-.I -f
+.BI \-E " extended_options"
+Set e2fsck extended options.  Extended options are comma
+separated, and may take an argument using the equals ('=') sign.  The 
+following options are supported:
+.RS 1.2i
+.TP
+.BI ea_ver= extended_attribute_version
+Assume the format of the extended attribute blocks in the filesystem is
+the specified version number.  The version number may be 1 or 2.  The
+default extended attribute version format is 2.
+.RE
+.TP
+.B \-f
 Force checking even if the file system seems clean.
 .TP
-.-F
+.B \-F
 Flush the filesystem device's buffer caches before beginning.  Only
-really useful for doing e2fsck time trials.
+really useful for doing 
+.B e2fsck 
+time trials.
+@JDEV@.TP
+@JDEV@.BI \-j " external-journal"
+@JDEV@Set the pathname where the external-journal for this filesystem can be
+@JDEV@found.
 .TP
-.I -l filename
-Add the blocks listed in the file specified by 
+.BI \-k
+When combined with the 
+.B \-c
+option, any existing bad blocks in the bad blocks list are preserved,
+and any new bad blocks found by running
+.BR badblocks (8) 
+will be added to the existing bad blocks list.
+.TP
+.BI \-l " filename"
+Add the block numbers listed in the file specified by 
 .I filename
-to the list of bad blocks.
+to the list of bad blocks.  The format of this file is the same as the
+one generated by the 
+.BR badblocks (8)
+program.  Note that the block numbers are based on the blocksize
+of the filesystem.  Hence, 
+.BR badblocks (8)
+must be given the blocksize of the filesystem in order to obtain correct
+results.  As a result, it is much simpler and safer to use the 
+.B -c
+option to 
+.BR e2fsck ,
+since it will assure that the correct parameters are passed to the
+.B badblocks
+program.
 .TP
-.I -L filename
+.BI \-L " filename"
 Set the bad blocks list to be the list of blocks specified by 
 .IR filename .
 (This option is the same as the 
-.-l
+.B \-l
 option, except the bad blocks list is cleared before the blocks listed
 in the file are added to the bad blocks list.)
 .TP
-.-n
-Open the filesystem read-only, and assume an answer of ``no'' to all
+.B \-n
+Open the filesystem read-only, and assume an answer of `no' to all
 questions.  Allows
 .B e2fsck
 to be used non-interactively.  (Note: if the 
-.IR -c ,
-.IR -l ,
+.BR \-c ,
+.BR \-l ,
 or
-.-L
+.B \-L
 options are specified in addition to the 
-.-n
+.B \-n
 option, then the filesystem will be opened read-write, to permit the
 bad-blocks list to be updated.  However, no other changes will be made
-to the filesystem.)
+to the filesystem.)  This option
+may not be specified at the same time as the 
+.B \-p
+or
+.B \-y
+options.
 .TP
-.I -p
-Automatically repair ("preen") the file system without any questions.
+.B \-p
+Automatically repair ("preen") the file system.  This option will case
+.B e2fsck
+to automatically
+fix any filesystem problems that can be safely fixed without human
+intervention.  If 
+.B e2fsck
+discovers a problem which may require the system administrator
+to take additional corrective action, 
+.B e2fsck
+will print a description of the problem and then exit with the value 4
+logically or'ed into the exit code.  (See the \fBEXIT CODE\fR section.)
+This option is normally used by the system's boot scripts.  It may not 
+be specified at the same time as the
+.B \-n
+or
+.B \-y
+options.
 .TP
-.-r
+.B \-r
 This option does nothing at all; it is provided only for backwards
 compatibility.
 .TP
-.-t
+.B \-t
 Print timing statistics for
 .BR e2fsck .
 If this option is used twice, additional timing statistics are printed
 on a pass by pass basis.
 .TP
-.-v
+.B \-v
 Verbose mode.
 .TP
-.-V
+.B \-V
 Print version information and exit.
 .TP
-.-y
-Assume an answer of ``yes'' to all questions; allows 
+.B \-y
+Assume an answer of `yes' to all questions; allows 
 .B e2fsck
-to be used non-interactively.
+to be used non-interactively.  This option
+may not be specified at the same time as the 
+.B \-n
+or
+.B \-p
+options.
 .SH EXIT CODE
 The exit code returned by
 .B e2fsck
@@ -132,7 +312,7 @@ is the sum of the following conditions:
 .br
 \      2\      \-\ File system errors corrected, system should
 .br
-\      \       \ \ be rebooted if file system was mounted
+\      \       \ \ be rebooted
 .br
 \      4\      \-\ File system errors left uncorrected
 .br
@@ -140,9 +320,27 @@ is the sum of the following conditions:
 .br
 \      16\     \-\ Usage or syntax error
 .br
+\      32\     \-\ E2fsck canceled by user request
+.br
 \      128\    \-\ Shared library error
 .br
-.SH BUGS
+.SH SIGNALS
+The following signals have the following effect when sent to 
+.BR e2fsck .
+.TP
+.B SIGUSR1
+This signal causes
+.B e2fsck
+to start displaying a completion bar or emitting progress information.  
+(See discussion of the 
+.B \-C
+option.)
+.TP
+.B SIGUSR2
+This signal causes
+.B e2fsck 
+to stop displaying a completion bar or emitting progress information.
+.SH REPORTING BUGS
 Almost any piece of software will have bugs.  If you manage to find a
 filesystem which causes 
 .B e2fsck
@@ -153,11 +351,22 @@ is unable to repair, please report it to the author.
 Please include as much information as possible in your bug report.
 Ideally, include a complete transcript of the
 .B e2fsck
-run, so I can see exactly what error messages are displayed.  If you
-have a writeable filesystem where the transcript can be stored, the 
+run, so I can see exactly what error messages are displayed.  (Make sure
+the messages printed by 
+.B e2fsck 
+are in English; if your system has been
+configured so that 
+.BR e2fsck 's
+messages have been translated into another language, please set the the
+.B LC_ALL
+environment variable to
+.B C
+so that the transcript of e2fsck's output will be useful to me.)
+If you
+have a writable filesystem where the transcript can be stored, the 
 .BR script (1)
 program is a handy way to save the output of
-.e2fsck
+.e2fsck
 to a file.
 .PP
 It is also useful to send the output of 
@@ -167,13 +376,19 @@ If a specific inode or inodes seems to be giving
 trouble, try running the
 .BR debugfs (8)
 command and send the output of the 
-.I stat
-command run on the relevant inode(s).  If the inode is a directory, 
-the debugfs
+.BR stat (1u)
+command run on the relevant inode(s).  If the inode is a directory, the 
+.B debugfs
 .I dump
 command will allow you to extract the contents of the directory inode,
 which can sent to me after being first run through
-.BR uuencode (1).
+.BR uuencode (1).  
+The most useful data you can send to help reproduce
+the bug is a compressed raw image dump of the filesystem, generated using
+.BR e2image (8).
+See the 
+.BR e2image (8)
+man page for more details.
 .PP
 Always include the full version string which 
 .B e2fsck
@@ -181,9 +396,11 @@ displays when it is run, so I know which version you are running.
 .SH AUTHOR
 This version of 
 .B e2fsck
-is written by Theodore Ts'o <tytso@mit.edu>.
+was written by Theodore Ts'o <tytso@mit.edu>.
 .SH SEE ALSO
-.BR mke2fs (8),
-.BR tune2fs (8),
+.BR badblocks (8),
 .BR dumpe2fs (8),
-.BR debugfs (8)
+.BR debugfs (8),
+.BR e2image (8),
+.BR mke2fs (8),
+.BR tune2fs (8)