.\" -*- 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 \-d
.I read_delay_factor
]
[
.B \-e
.I max_bad_blocks
]
[
.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 \-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
.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
.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)
