Whamcloud - gitweb
e2fsprogs: add supported file attributes to ext4.5 manpage
[tools/e2fsprogs.git] / misc / badblocks.8.in
index bbc4a08..f507f63 100644 (file)
@@ -5,7 +5,7 @@ badblocks \- search a device for bad blocks
 .SH SYNOPSIS
 .B badblocks
 [
-.B \-svwn
+.B \-svwnfBX
 ]
 [
 .B \-b
@@ -16,6 +16,14 @@ badblocks \- search a device for bad blocks
 .I blocks_at_once
 ]
 [
+.B \-e
+.I max_bad_blocks
+]
+[
+.B \-d
+.I read_delay_factor
+]
+[
 .B \-i
 .I input_file
 ]
@@ -27,11 +35,15 @@ badblocks \- search a device for bad blocks
 .B \-p
 .I num_passes
 ]
+[
+.B \-t
+.I test_pattern
+]
 .I device
 [
-.I blocks-count
+.I last-block
 ] [
-.I start-block 
+.I first-block 
 ]
 .SH DESCRIPTION
 .B badblocks
@@ -39,31 +51,69 @@ is used to search for bad blocks on a device (usually a disk partition).
 .I device
 is the special file corresponding to the device (e.g
 .IR /dev/hdc1 ).
-.I blocks-count
-is the number of blocks on the device; if it is not specified, the size
-of the device is used as a default.
-.I start-block is an optional parameter specifying the starting block number
-for the test, which allows the testing to start in the middle of the disk.
+.I last-block
+is the last block to be checked; if it is not specified, the last block
+on the device is used as a default.
+.I first-block
+is an optional parameter specifying the starting block number
+for the test, which allows the testing to start in the middle of the
+disk.  If it is not specified the first block on the disk is used as a default.
+.PP
+.B Important note:
+If the output of 
+.B badblocks
+is going to be fed to the
+.B e2fsck
+or 
+.B mke2fs
+programs, it is important that the block size is properly specified,
+since the block numbers which are generated are very dependent on the 
+block size in use by the filesystem.   
+For this reason, it is strongly recommended that
+users 
+.B not
+run 
+.B badblocks 
+directly, but rather use the 
+.B \-c
+option of the
+.B e2fsck
+and 
+.B mke2fs
+programs.
 .SH OPTIONS
 .TP
 .BI \-b " block-size"
-Specify the size of blocks in bytes.
+Specify the size of blocks in bytes.  The default is 1024.
 .TP
 .BI \-c " number of blocks"
-is the number of blocks which are tested at a time.  The default is 16.
-Increasing this number will increase the efficiency of
-.B badblocks
-but also will increase its memory usage.
-.B Badblocks
-needs memory proportional to the number of blocks tested at once, in
-read-only mode, proportional to twice that number in read-write mode,
-and proportional to three times that number in non-destructive read-write
-mode.  If you set the number-of-blocks parameter to too high a value,
+is the number of blocks which are tested at a time.  The default is 64.
+.TP
+.BI \-e " max bad block count"
+Specify a maximum number of bad blocks before aborting the test.  The
+default is 0, meaning the test will continue until the end of the test
+range is reached.
+.TP
+.BI \-d " read delay factor"
+This parameter, if passed and non-zero, will cause bad blocks to sleep
+between reads if there were no errors encountered in the read
+operation; the delay will be calculated as a percentage of the time it
+took for the read operation to be performed. In other words, a value of 
+100 will cause each read to be delayed by the amount the previous read
+took, and a value of 200 by twice the amount.
+.TP
+.B \-f
+Normally, badblocks will refuse to do a read/write or a non-destructive
+test on a device which is mounted, since either can cause the system to
+potentially crash and/or damage the filesystem even if it is mounted
+read-only.  This can be overridden using the
+.B \-f
+flag, but should almost never be used --- if you think you're smarter
+than the 
 .B badblocks
-will exit almost immediately with an out-of-memory error "while allocating
-buffers".  If you set it too low, however, for a non-destructive-write-mode
-test, then it's possble for questionable blocks on an unreliable
-hard drive to be hidden by the effects of the hard disk track buffer.
+program, you almost certainly aren't.  The only time when this option 
+might be safe to use is if the /etc/mtab file is incorrect, and the device
+really isn't mounted.
 .TP
 .BI \-i " input_file"
 Read a list of already existing known bad blocks.
@@ -81,6 +131,12 @@ option of
 can be used to retrieve the list of blocks currently marked bad on
 an existing filesystem, in a format suitable for use with this option.
 .TP
+.B \-n
+Use non-destructive read-write mode.  By default only a non-destructive 
+read-only test is done.  This option must not be combined with the 
+.B \-w
+option, as they are mutually exclusive.
+.TP
 .BI \-o " output_file"
 Write the list of bad blocks to the specified file.  Without this option,
 .B badblocks
@@ -100,29 +156,70 @@ Default is 0, meaning
 .B badblocks
 will exit after the first pass.
 .TP
-.B \-n
-Use non-destructive read-write mode.
-.TP
 .B \-s
-Show the progress of the scan by writing out the block numbers as they
-are checked.
+Show the progress of the scan by writing out rough percentage completion
+of the current badblocks pass over the disk.  Note that badblocks may do
+multiple test passes over the disk, in particular if the
+.B \-p
+or
+.B \-w
+option is requested by the user.
+.TP
+.BI \-t " test_pattern"
+Specify a test pattern to be read (and written) to disk blocks.   The
+.I test_pattern
+may either be a numeric value between 0 and ULONG_MAX-1 inclusive, or the word 
+"random", which specifies that the block should be filled with a random
+bit pattern.
+For read/write (\fB-w\fR) and non-destructive (\fB-n\fR) modes,
+one or more test patterns may be specified by specifying the
+.B -t
+option for each test pattern desired.  For
+read-only mode only a single pattern may be specified and it may not be
+"random".  Read-only testing with a pattern assumes that the
+specified pattern has previously been written to the disk - if not, large
+numbers of blocks will fail verification.  
+If multiple patterns
+are specified then all blocks will be tested with one pattern 
+before proceeding to the next pattern.
 .TP
 .B \-v
-Verbose mode.
+Verbose mode.  Will write the number of read errors, write errors and data-
+corruptions to stderr.
 .TP
 .B \-w
 Use write-mode test. With this option,
 .B badblocks
 scans for bad blocks by writing some patterns (0xaa, 0x55, 0xff, 0x00) on
-every block of the device, reading every block and comparing the contents.
+every block of the device, reading every block and comparing the contents.  
+This option may not be combined with the 
+.B \-n 
+option, as they are mutually exclusive.
+.TP
+.B \-B
+Use buffered I/O and do not use Direct I/O, even if it is available.
+.TP
+.B \-X
+Internal flag only to be used by
+.BR e2fsck (8)
+and
+.BR mke2fs (8).
+It bypasses the exclusive mode in-use device safety check.
 .SH WARNING
 Never use the
 .B \-w
-option on an device containing an existing file system.
+option on a device containing an existing file system.
 This option erases data!  If you want to do write-mode testing on
 an existing file system, use the
 .B \-n
-option.  It is slower, but it will preserve your data.
+option instead.  It is slower, but it will preserve your data.  
+.PP
+The
+.B \-e
+option will cause badblocks to output a possibly incomplete list of
+bad blocks. Therefore it is recommended to use it only when one wants
+to know if there are any bad blocks at all on the device, and not when
+the list of bad blocks is wanted.
 .SH AUTHOR
 .B badblocks
 was written by Remy Card <Remy.Card@linux.org>.  Current maintainer is
@@ -130,8 +227,8 @@ Theodore Ts'o <tytso@alum.mit.edu>.  Non-destructive read/write test
 implemented by David Beattie <dbeattie@softhome.net>.
 .SH AVAILABILITY
 .B badblocks
-is part of the e2fsprogs package and is available for anonymous 
-ftp from tsx-11.mit.edu in /pub/linux/packages/ext2fs.
+is part of the e2fsprogs package and is available from 
+http://e2fsprogs.sourceforge.net.
 .SH SEE ALSO
 .BR e2fsck (8),
 .BR mke2fs (8)