.\" -*- 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 \-svwnf
]
[
.B \-b
.I block-size
]
[
.B \-c
.I blocks_at_once
]
[
.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 start-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 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.  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
.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
.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
.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 \-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.
.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 \-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.  
.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)
