badblocks - search a device for bad blocks


   badblocks  [  -svwnfBX  ]  [ -b block_size ] [ -c blocks_at_once ] [ -d
   read_delay_factor ] [ -e max_bad_blocks  ]  [  -i  input_file  ]  [  -o
   output_file ] [ -p num_passes ] [ -t test_pattern ] device [ last_block
   ] [ first_block ]


   badblocks is used to search for bad blocks on a device (usually a  disk
   partition).   device  is  the  special file corresponding to the device
   (e.g /dev/hdc1).  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.
   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.

   Important  note:  If  the output of badblocks is going to be fed to the
   e2fsck or 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  not  run badblocks
   directly, but rather use  the  -c  option  of  the  e2fsck  and  mke2fs


   -b block_size
          Specify the size of blocks in bytes.  The default is 1024.

   -c number of blocks
          is the number of blocks which are tested at a time.  The default
          is 64.

   -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.

   -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.

   -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 -f flag, but should almost  never  be  used
          ---  if you think you're smarter than the 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.

   -i input_file
          Read a list of already existing  known  bad  blocks.   Badblocks
          will  skip  testing these blocks since they are known to be bad.
          If 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 new bad blocks produced on the standard  output
          or in the output file.  The -b option of 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

   -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 -w option, as they are mutually exclusive.

   -o output_file
          Write the list of bad blocks to  the  specified  file.   Without
          this option, badblocks displays the list on its standard output.
          The format of this file is suitable for use by the -l option  in
          e2fsck(8) or mke2fs(8).

   -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 badblocks will exit after the first pass.

   -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 -p or -w option is requested by the user.

   -t test_pattern
          Specify a test pattern to be read (and written) to disk  blocks.
          The  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 (-w) and non-destructive (-n) modes, one or more test
          patterns  may  be specified by specifying the -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.

   -v     Verbose mode.  Will write  the  number  of  read  errors,  write
          errors and data- corruptions to stderr.

   -w     Use  write-mode  test. With this option, 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  -n  option,
          as they are mutually exclusive.

   -B     Use  buffered  I/O  and  do  not  use  Direct I/O, even if it is

   -X     Internal flag only to be used by e2fsck(8)  and  mke2fs(8).   It
          bypasses the exclusive mode in-use device safety check.


   Never use the -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 -n option instead.  It is slower, but it
   will preserve your data.

   The -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.


   badblocks  was  written  by  Remy  Card <>.  Current
   maintainer  is  Theodore  Ts'o  <>.   Non-destructive
   read/write test implemented by David Beattie <>.


   badblocks  is  part  of  the  e2fsprogs  package  and is available from


   e2fsck(8), mke2fs(8)


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.

Free Software

Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.

Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.

Free Books

The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.

Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.

Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.