Whamcloud - gitweb
mke2fs: don't fail creating the journal if /etc/mtab is missing
[tools/e2fsprogs.git] / misc / badblocks.8.in
index f513318..f507f63 100644 (file)
@@ -5,62 +5,230 @@ badblocks \- search a device for bad blocks
 .SH SYNOPSIS
 .B badblocks
 [
+.B \-svwnfBX
+]
+[
 .B \-b
-block-size
+.I block-size
+]
+[
+.B \-c
+.I blocks_at_once
+]
+[
+.B \-e
+.I max_bad_blocks
+]
+[
+.B \-d
+.I read_delay_factor
+]
+[
+.B \-i
+.I input_file
 ]
 [
 .B \-o
-output_file
+.I output_file
 ]
 [
-.B \-v
+.B \-p
+.I num_passes
 ]
 [
-.B \-w
+.B \-t
+.I test_pattern
+]
+.I device
+[
+.I last-block
+] [
+.I first-block 
 ]
-device
-blocks-count [ start-block ]
 .SH DESCRIPTION
 .B badblocks
 is used to search for bad blocks on a device (usually a disk partition).
-.br
 .I device
-is the special file corresponding to the device (e.g /dev/hdXX).
-.br
-.I blocks-count
-is the number of blocks on the device.
+is the special file corresponding to the device (e.g
+.IR /dev/hdc1 ).
+.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
-.I -b block-size
-Specify the size of blocks in bytes.
+.BI \-b " block-size"
+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 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
-.I -o output_file
-Write the list of bad blocks to the specified file. Without this option,
+.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
-displays the list on its standard output.
+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
-.I -v
-Verbose mode.
+.BI \-i " input_file"
+Read a list of already existing known bad blocks.
+.B Badblocks
+will skip testing these blocks since they are known to be bad.  If
+.I input_file
+is specified as "-", the list will be read from the standard input.
+Blocks listed in this list will be omitted from the list of
+.I new
+bad blocks produced on the standard output or in the output file.
+The
+.B \-b
+option of
+.BR dumpe2fs (8)
+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
-.I -w
+.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
+displays the list on its standard output.  The format of this file is suitable
+for use by the
+.
+.B \-l
+option in 
+.BR e2fsck (8)
+or
+.BR mke2fs (8).
+.TP
+.BI \-p " num_passes"
+Repeat scanning the disk until there are no new blocks discovered in
+num_passes consecutive scans of the disk.
+Default is 0, meaning
+.B badblocks
+will exit after the first pass.
+.TP
+.B \-s
+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.  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 `-w' option on an device containing an existing file system.
-This option erases data!
+Never use the
+.B \-w
+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 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
-has been written by Remy Card <card@masi.ibp.fr>, the developer and maintainer
-of the ext2 fs.
-.SH BUGS
-I had no chance to make reals tests of this program since I use IDE drives
-which remap bad blocks. I only made some tests on floppies.
+was written by Remy Card <Remy.Card@linux.org>.  Current maintainer is
+Theodore Ts'o <tytso@alum.mit.edu>.  Non-destructive read/write test
+implemented by David Beattie <dbeattie@softhome.net>.
 .SH AVAILABILITY
 .B badblocks
-is available for anonymous ftp from ftp.ibp.fr and 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)