Man Linux: Main Page and Category List


       myrescue - Harddisc Rescue


       myrescue  [-b  block-size]  [-B bitmap-file] [-A] [-S] [-r retry-count]
       [-f skip-failed] [-s start-block] [-e end-block] [-R]  [-G  good-range]
       [-F failed-range] [-J jump-after-blocks] input-file output-file


       myrescue  is a program to rescue the still-readable data from a damaged
       harddisk. It is similiar in purpose  to  dd_rescue,  but  it  tries  to
       quickly  get  out  of damaged areas to first handle the not yet damaged
       part of the disk and return later.

       The program tries to copy the device blockwise to a file  and  keeps  a
       table  ("block  bitmap")  noting  whether a block has been successfully
       copied, not yet handled or has had errors. This  block  bitmap  can  be
       used in successive runs to concentrate on the not yet rescued blocks.

       The  program  has  a  special  skip mode to handle read errors. Usually
       harddisk surface defects cover more than just one block and  continuous
       reading  in  defect  areas  can  damage  the surface, the heads and (by
       permanent recalibration) the drive  mechanics.  If  this  happens,  the
       chances  of rescuing the remaining undamaged data drop dramatically. So
       in skip mode, myrescue tries to get out of  damaged  areas  quickly  by
       exponentially increasing the stepsize. The skipped blocks are marked as
       unhandled in the block bitmap and can be retried later.

       Finally, the program has an option to multiply  try  to  read  a  block
       before considering it damaged.


       This  tools is no replacement for a professional data recovery service!
       If you do have the latter option, don’t even think of  using  myrescue,
       as  it may further damage your disk. This tool is provided only for the
       case that you are absolutely desperate and definitely cannot  afford  a
       professional  data  recovery.  Or  in case you know what you are doing,
       e.g. if you know that it is the aging of the magnetisation  layer  that
       is causing your problem.

       In  any  case do not expect too much. While complete restores have been
       witnessed, you should not take them for granted. A better  attitude  is
       to  consider your data lost and be glad for any survivors that turn up.

       The usual  GPL  disclaimer  applies.  Especially  the  NON-WARRANTY  OF
       FITNESS  FOR  A PARTICULAR PURPOSE. Don’t blame (or sue) me if it fails
       to recover or further damages your data.

       And a final word you probably don’t want to hear in this situation: For
       the future consider a routinely backup to avoid a "next time".


       -b block-size
              The  size  of  the blocks (in bytes). Set this to your harddiscs
              error detection/correction unit  size.  Usually  this  is  4096,
              which happens to be the default.

       -B bitmap-file
              The  file  containing  the  status table of all blocks. Nice (or
              frightening...) to view with hexdump. 01 means OK; 00 means  not
              yet  done;  negative  values  mean  the  number  of  failed read
              attempts. If not given, defaults to output-file.bitmap

       -A     Abort when encountering errors.

       -S     Activate  skip  mode:  When  encountering  errors  increase  the
              stepsize exponentially until a readable block is found.

       -f skip-failed
              Skip  blocks  that have already had skip-failed failures. Useful
              to avoid scratching the same block over and over again.

       -r retry-count
              The number of times to read a block before it  is  declared  bad
              for this run. (You can still retry it on the next run.) Default:

       -s start-block
              The number of the block to start with. Default: 0

       -e end-block
              The number of the block, where reading  stops  (not  included!).
              Default: size of input-file divided by block-size.

       -R     Reverse  reading  direction,  i.e.  from end-block (excluded) to

       -G good-range
              Only try to read blocks within good-range blocks from an already
              successfully read block.

       -F failed-range
              Extends  -f to also skip any block within failed-range blocks of
              a block to be skipped as specified by -f.

       -J jump-after-blocks
              Randomly jump across the disc  after  reading  jump-after-blocks
              blocks.  This  might  be  useful  to  scan  discs with scattered
              defects.  In jump mode -S causes myrescue to jump to a new block
              upon  the  first  failed  sector  or upon hitting a sector to be
              skipped as specified by -f, -G or -F.

       -h, -? Display usage information.


       ·      Make sure you have sufficient  disk  space  to  copy  the  whole
              partition (not just the used ammount of data) to plus some space
              for the block bitmap (1 byte per block).

       ·      Determine  the  hardware  block  size  (CRC/ECC  unit)  of  your
              harddisk.  This  may  be  found out from hdparm, some entries in
              /proc/ide/hd? or on the web. I have not yet checked whether this
              is possible with an ioctl. If you have, please let me know.

       ·      Start a skip mode run with one retry per block to first copy the
              undamaged area.

       ·      Start a normal  run  with  one  retry  per  block  to  copy  the
              remaining  skipped  blocks.  You may try to use -f 1 to skip the
              damaged blocks from the first run.

       ·      Repeat until the number of errors seems to have converged.   Try
              waiting a couple of hours between the retries.

       ·      Repeat this with higher retry counts and wait for convergence.

       ·      Make a copy of the rescued data and run fsck on it.

       ·      Mount  the  filesystem  (if  copied to a file: via loopback) and
              check your data. If directory information  has  been  destroyed,
              fsck  moves  unidentifiable file fragments to lost+found, so you
              should also check this location.

       It may help to try reading non-defect areas in  between  to  allow  the
       drive to recalibrate.

       The  developers  are  glad  to hear about your experiences. Please post
       them to the Experiences forum on the Sourceforge  Project  page.  Thank


       The  handling  of  the  bitmap-file  currently relies on the filesystem
       semantics, that when lseek(2) ing beyond  the  end  of  file  and  then
       writing, the space in between is filled with zero-bytes.

       The block bitmap overflows after 128 failed read attempts.


       Kristof   Koehler   <>,   Peter  Schlaile


       dd(1), dd_rescue(no manpage?)