.\" -*- nroff -*-
.TH BADBLOCKS 8 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@"
.SH NAME
badblocks \- search a device for bad blocks
.SH SYNOPSIS
.B badblocks
[
.B \-svwnfBX
]
[
.B \-b
.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
.I output_file
]
[
.B \-p
.I num_passes
]
[
.B \-t
.I test_pattern
]
.I device
[
.I last-block
] [
.I first-block 
]
.SH DESCRIPTION
.B badblocks
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 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.  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
.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
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.
.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
.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.  
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 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
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 part of the e2fsprogs package and is available from 
http://e2fsprogs.sourceforge.net.
.SH SEE ALSO
.BR e2fsck (8),
.BR mke2fs (8)
