dwww Home | Manual pages | Find package

bup-damage(1)                                                     bup-damage(1)

NAME
       bup-damage - randomly destroy blocks of a file

SYNOPSIS
       bup  damage  [-n count] [-s maxsize] [--percent pct] [-S seed] [--equal]
       <filenames...>

DESCRIPTION
       Use bup damage to deliberately destroy blocks in a .pack  or  .idx  file
       (from .bup/objects/pack) to test the recovery features of bup-fsck(1) or
       other programs.

       THIS PROGRAM IS EXTREMELY DANGEROUS AND WILL DESTROY YOUR DATA

       bup damage is primarily useful for automated or manual tests of data re-
       covery tools, to reassure yourself that the tools actually work.

       Note  that  the details of the current behavior may change (particularly
       the details not documented here).  For example the moment, the damage is
       strictly probabilistic, and so may or may not actually alter  any  given
       block.   With a block size of 1, there should be a 1/256 chance that the
       block won’t actually change.  This behavior may change.

OPTIONS
       -n, --num=numblocks
              the number of separate blocks to damage  in  each  file  (default
              10).   Note  that it’s possible for more than one damaged segment
              to fall in the same bup-fsck(1) recovery block, so you might  not
              damage as many recovery blocks as you expect.  If this is a prob-
              lem, use --equal.

       -s, --size=maxblocksize
              the  maximum size, in bytes, of each damaged block (default 1 un-
              less --percent is specified).   Note  that  because  of  the  way
              bup-fsck(1)  works, a multi-byte block could fall on the boundary
              between two recovery blocks, and thus damaging two  separate  re-
              covery  blocks.  In small files, it’s also possible for a damaged
              block to be larger than a recovery block.  If these issues  might
              be a problem, you should use the default damage size of one byte.

       --percent=maxblockpercent
              the  maximum  size, in percent of the original file, of each dam-
              aged block.  If both --size and --percent are given, the  maximum
              block  size  is the minimum of the two restrictions.  You can use
              this to ensure that a given block will never damage more than one
              or two git-fsck(1) recovery blocks.

       -S, --seed=randomseed
              seed the random number generator with the given  value.   If  you
              use this option, your tests will be repeatable, since the damaged
              block  offsets,  sizes, and contents will be the same every time.
              By default, the random numbers are different every time  (so  you
              can run tests in a loop and repeatedly test with different damage
              each time).

       --equal
              instead  of choosing random offsets for each damaged block, space
              the blocks equally throughout the file, starting at offset 0.  If
              you also choose a correct maximum block size, this can  guarantee
              that   any  given  damage  block  never  damages  more  than  one
              git-fsck(1) recovery block.  (This is also guaranteed if you  use
              -s 1.)

EXAMPLES
              # make a backup in case things go horribly wrong
              cp -pPR ~/.bup/objects/pack ~/bup-packs.bak

              # generate recovery blocks for all packs
              bup fsck -g

              # deliberately damage the packs
              bup damage -n 10 -s 1 -S 0 ~/.bup/objects/pack/*.{pack,idx}

              # recover from the damage
              bup fsck -r

SEE ALSO
       bup-fsck(1), par2(1)

BUP
       Part of the bup(1) suite.

AUTHORS
       Avery Pennarun ]8;;mailto:apenwarr@gmail.com\apenwarr@gmail.com]8;;\

Bup 0.33.7                         2025-01-11                     bup-damage(1)

Generated by dwww version 1.16 on Sat Oct 3 05:36:34 CEST 2026.