.SH SYNOPSIS
.B badblocks
[
-.B \-svwnf
+.B \-svwnfBX
]
[
.B \-b
.I max_bad_blocks
]
[
+.B \-d
+.I read_delay_factor
+]
+[
.B \-i
.I input_file
]
[
.I last-block
] [
-.I start-block
+.I first-block
]
.SH DESCRIPTION
.B badblocks
.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 start-block
+.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.
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
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
.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
are specified then all blocks will be tested with one pattern
before proceeding to the next pattern.
.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
-.B \-s
-Show the progress of the scan by writing out the block numbers as they
-are checked.
-.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 \-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)