Man Linux: Main Page and Category List

NAME

       bup-fsck - verify or repair a bup repository

SYNOPSIS

       bup  fsck  [-r] [-g] [-v] [—quick] [-j jobs] [—par2-ok] [—disable-par2]
       [filenames...]

DESCRIPTION

       bup fsck is a tool for validating bup repositories in the same way that
       git fsck validates git repositories.

       It  can  also  generate  and/or use “recovery blocks” using the par2(1)
       tool (if you have it installed).   This  allows  you  to  recover  from
       damaged blocks covering up to 5% of your .pack files.

       In  a  normal backup system, damaged blocks are less important, because
       there tends to be enough data duplicated between  backup  sets  that  a
       single  damaged  backup set is non-critical.  In a deduplicating backup
       system like bup, however, no block is ever stored more than once,  even
       if  it  is  used  in  every  single  backup.   If that block were to be
       unrecoverable, all your backup sets would be damaged  at  once.   Thus,
       it’s  important  to be able to verify the integrity of your backups and
       recover from disk errors if they occur.

       WARNING: bup fsck’s recovery features are not available unless you have
       the free par2(1) package installed on your bup server.

       WARNING:  bup  fsck  obviously  cannot  recover  from  a  complete disk
       failure.  If your backups are important, you need to carefully consider
       redundancy  (such  as  using  RAID for multi-disk redundancy, or making
       off-site backups for site redundancy).

OPTIONS

       -r,repair
              attempt to repair any  damaged  packs  using  existing  recovery
              blocks.  (Requires par2(1).)

       -g,generate
              generate  recovery  blocks for any packs that don’t already have
              them.  (Requires par2(1).)

       -v,verbose
              increase verbosity (can be used more than once).

       —quick don’t run a full git verify-pack on each pack file; instead just
              check  the final checksum.  This can cause a significant speedup
              with no obvious decrease in reliability.  However, you may  want
              to avoid this option if you’re paranoid.  Has no effect on packs
              that already have recovery information.

       -j,jobs=numjobs
              maximum number of pack verifications to  run  at  a  time.   The
              optimal  value  for  this  option  depends how fast your CPU can
              verify packs vs. your disk throughput.  If you run too many jobs
              at  once, your disk will get saturated by seeking back and forth
              between files and performance will actually  decrease,  even  if
              numjobs  is  less  than  the number of CPU cores on your system.
              You can experiment with this option to find the optimal value.

       —par2-ok
              immediately return 0 if par2(1) is installed and working,  or  1
              otherwise.  Do not actually check anything.

       —disable-par2
              pretend  that  par2(1) is not installed, and ignore all recovery
              blocks.

EXAMPLE

             # generate recovery blocks for all packs that don't
             # have them
             bup fsck -g

             # generate recovery blocks for a particular pack
             bup fsck -g ~/.bup/objects/pack/153a1420cb1c8*.pack

             # check all packs for correctness (can be very slow!)
             bup fsck

             # check all packs for correctness and recover any
             # damaged ones
             bup fsck -r

             # check a particular pack for correctness and recover
             # it if damaged
             bup fsck -r ~/.bup/objects/pack/153a1420cb1c8*.pack

             # check if recovery blocks are available on this system
             if bup fsck --par2-ok; then
                 echo "par2 is ok"
             fi

SEE ALSO

       bup-damage(1), fsck(1), git-fsck(1)

BUP

       Part of the bup(1) suite.

AUTHORS

       Avery Pennarun <apenwarr@gmail.com>.