Provided by: safecopy_1.6-1build1_amd64 bug

NAME

       SAFECOPY - A data recovery tool

SYNOPSIS

       SAFECOPY [OPTIONS] SOURCE TARGET

DESCRIPTION

       A data recovery tool.

       Safecopy  is  a  data  recovery tool which tries to extract as much data as possible from a seekable, but
       problematic (i.e. damaged sectors) source - like floppy drives,  harddisk  partitions,  CDs,  ...,  where
       other tools like dd would fail doe to I/O errors.

       Safecopy  tries  to  get  as  much  data from the source as possible without device dependent tricks. For
       example to get an ISO image from a copy protected or otherwise damaged CD-ROM, cdrdao and  bin2iso  would
       possibly do a better and faster job.

       Safecopy  comes  with  preset options (named stages) to ease its use.  These presets can be overridden by
       individual options.

OPTIONS

       Usage: safecopy [options] <source> <target>

       -b <size>
              Blocksize, also used for skipping offset when searching for the end of a bad  area.  Set  this  to
              physical sectorsize of your media.
              Default: 1*
              If <size> is an integer, then the unit is in bytes.
              If  <size>  is  followed  by the percentage sign, it express a percentage of the whole file/device
              size.
              If <size> is followed by a star sign, it means a number of times the block size  reported  by  the
              operating system.

       -f <size>
              Size when skipping over badblocks.  Higher values put less strain on dammaged hardware, but on the
              other hand, you might miss good areas in between two bad ones.
              Default value is 16*.
              If <size> is an integer, then the unit is in bytes.
              If  <size>  is  followed  by the percentage sign, it express a percentage of the whole file/device
              size.
              If <size> is followed by a star sign, it means a number of times the block size. See option -b.

       -r <size>
              Resolution when searching for the exact beginning or end of a  bad  area  Bigger  values  increase
              performace at potential cost of valid data close to damaged areas.
              Default: 1*
              If <size> is an integer, then the unit is in bytes.
              If  <size>  is  followed  by the percentage sign, it express a percentage of the whole file/device
              size.
              If <size> is followed by a star sign, it means a number of times the block size. See option -b.

       -R <number>
              Number of read attempts on the first bad block of a damaged area  with  minimum  resolution.  More
              retries can sometimes recover a weak sector, but at the cost of additional strain.
              Default: 3

       -Z <number>
              On  each  error,  force  seek  the  read  head  from start to end of the source device as often as
              specified.  That takes times, create additional strain and might not be supported by  all  devices
              or drivers.
              Default: 1

       -L <mode>
              Use low level device calls as specified by the mode number.
              Where mode number can be:
              0: Do not use low level device calls.
              1: Attempt low level device calls for error recovery only.
              2: Always use low level device calls if available.
              Default: 1

       --sync
              Use  synchronized  read calls (disable driver buffering).  Safecopy will use O_DIRECT if supported
              by the operating system and O_SYNC otherwise.
              Default: Asynchronous read buffering.

       -s <blocks>
              Start position where to start reading. Will correspond to position 0 in the destination file.
              Default: block 0

       -l <blocks>
              Length of data to be read.
              Default: size of input file.

       -I <badblockfile>
              Incremental mode.  Assume  the  target  file  already  exists  and  has  holes  specified  in  the
              badblockfile.
              It  will  attempt to retrieve more data from the listed blocks or from beyond the file size of the
              target file only.
              WARNING: Without this option, the destination file will be emptied prior to writing.
              Use -I /dev/null if you want to continue a previous run of safecopy without a badblock list file.
              Default: None

       -i <bytes>
              Blocksize to interpret the badblockfile given with -I.
              Default: Blocksize as specified by -b.

       -X <badblockfile>
              Exclusion mode. If used together with -I, excluded blocks override included  ones.  Safecopy  will
              not read or write any data from areas covered by excluded blocks.
              Default: None

       -x <bytes>
              Blocksize to interpret the badblockfile given with -X.
              Default: blocksize as specified by -b

       -o <badblockfile>
              Write a badblocks/e2fsck compatible bad block file.
              Default: None

       -S <seekscript>
              Use  an  external  script  foir  seeking  in  input file. This might be useful for tape devices or
              similar.
              Seekscript must be an executable that takes the number of blocks to be skipped as argv1 (1-64) the
              blocksize in bytes as argv2 and the current position as argv3.
              Return values needs to be the number of  blocks  successfully  skipped,  or  0  to  indicate  seek
              failure. The external seekscript will only be used if lseek() fails and we need to skip over data.
              Default: None

       -M <string>
              Mark unrecovered data with this string instead of skipping it. This helps in later on rescued file
              system images.
              The  default  behavior is to zero the unreadable data on creation of the output files, and leaving
              the data as it is on any later run.
              WARNING: when used in combination with incremental mode (-I), this may overwrite data in any block
              specified in the badblockfile.  Blocks not in the badblockfile, or covered by those  specified  in
              the -X file are safe from being overwritten.
              Default: None

       --debug <level>
              Enable debug output. Level is a bit field, add values together for more informations as follow:
              1 program flow
              2 IO control
              4 badblock marking
              8 seeking
              16 incremental mode
              32 exclude mode
              Use 255 for all debug output.
              Default: 0

       -T <timingfile>
              Write sector read timing information into this file for later analysis.
              Default: None

       -h | --help
              Show a maybe more detailed help.

PRESETS OPTIONS

       --stage1
              Preset to rescue most of the data fast, using no retries and avoiding bad areas.
              Presets: -f 10% -r 10% -R 1 -Z 0 -L 2 -M BaDbloCk -o stage1.badblocks

       --stage2
              Preset to rescue more data, using no retries but searching for exact ends of bad areas.
              Presets: -f 128* -r 1* -R 1 -Z 0 -L 2 -I stage1.badblocks -o stage2.badblocks

       --stage3
              Preset to rescue everything that can be rescued using maximum retries, head realignment tricks and
              low level access.
              Presets: -f 1* -r 1* -R 4 -Z 1 -L 2 -I stage2.badblocks -o stage3.badblocks

DESCRIPTION OF OUTPUT

       . :    Between 1 and 1024 blocks successfully read.

       _ :    Read was incomplete. (possibly end of file) blocksize is reduced to read the rest.

       > :    Read failed, reducing blocksize to read partial data.

       [xx](+yy) :
              current block and number of blocks (or bytes) continuously read successfully up to this point.

       X :    Read  failed on block with minimum blocksize and is skipped. Unrecoverable error, destination file
              is padded with zeros. Data is now skipped until end of the unreadable area is reached.

       < :    Successfull read- test after the end of a bad area causes backtracking to  search  for  the  first
              readable data.

       [xx](+yy) :
              Current block and number of blocks (or bytes) of recent continuous unreadable data.

AUTHOR

       safecopy was written by Corvus Corax (corvuscorax@cybertrench.com)

       This  manual page was originally written by Juan Angulo Moreno <juan@apuntale.com> for the Debian project
       (but may be used by others).  It was filled out by Christophe Monniez <christophe.monniez@fccu.be> .

                                                   August 2009                                       SAFECOPY(1)