| .\" -*- 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) |