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)