badblocks command in Linux with examples
badblock command in Linux is used to search for bad blocks (block of memory which has been corrupted and can no longer be used reliably) in a device. It is by default set to run in non-destructive read-only mode.
badblocks [-b block_size] [-i input_file] [-o output_file] [-svwnf] [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks] [-p num_passes] [-t test_pattern [-t test_pattern [...]]] device [last_block [first_block]]
- badblocks -s : It is used to display current progress of the test by showing the percentage of blocks scanned.
sudo badblocks -s /dev/sdb1
- badblocks -b: It allows to specify the block size(usually a multiple of 512) in bytes (default is 1024 bytes).
sudo badblocks -sb 2048 /dev/sdb1
- badblocks -c : It is used to specify the number of blocks to be tested at a time (default is 64 blocks).
sudo badblocks -sc 5000 /dev/sdb1
- badblocks -f: (not recommended) badblocks does not run its test on a device if it is mounted.The -f option will force it to run test even if the device is mounted which may damage the file system.
sudo badblocks -sf /dev/sdb1
- badblocks -o: It is used to write the list of badblocks to a file rather than on standard output.
sudo badblocks -o out.txt /dev/sdb1
- badblocks -i : It is used to provide an input file which contains a list of known bad blocks in device. This would skip the known bad blocks at the time of test.
sudo badblocks -i ./out.txt /dev/sdb1
- badblocks -n : It is used to perform a non-destructive read-write test on device. It would not erase data on device.
sudo badblocks -sn /dev/sdb1
- badblocks -w : It perform the read write test on device by writing some patterns on every block and comparing them. It would erase data on device and do test processing at a faster rate as compared to -n option.
sudo badblocks -sw /dev/sdb1
Specify blocks to test:
- last block: It can be specified by passing the last block as an option after device name. It would test blocks from the first block to the specified last block.
sudo badblocks -s /dev/sdb1 1000
- first block: It can be specified by passing the starting block number to test as an option after last block.
sudo badblocks -s /dev/sdb1 5000 100
My Personal Notes arrow_drop_up
Please Login to comment...