bup 0.07 is released

2 views
Skip to first unread message

Avery Pennarun

unread,
Jan 30, 2010, 8:44:14 PM1/30/10
to bup-list
Hi all,

It's that time of week again!

This version of bup has two major new features: 'bup fuse' (which lets
you mount your backups as a filesystem) and 'bup fsck' (which lets you
detect and recover from file corruption).

...yes, you heard right! You can *recover* from file corruption!

To use the recovery feature, you'll need the 'par2' program installed.
Debian/Ubuntu users can get this by doing "apt-get install par2".
Then, you should generate recovery information:

bup fsck -g --quick

For added fun, add a "-j2" on a dual-processor system or "-j4" on a
quad-processor system to generate data for multiple packs at a time.
On my system (2.5GHz Intel Core2 Quad), it takes about 4 minutes per
pack to generate the recovery information when you use --quick, and an
extra minute or two without it. -j4 makes it go roughly 3-4 times as
fast on average. Because this is a non-critical operation and can
take a while to run the first time, you might want to run it under
ionice and nice:

ionice -c3 nice bup fsck -g --quick

The magic of par2 will then let us recover from up to 200 separate bad
blocks (about 5%) in each pack file, which ought to be enough to
survive even the crappiest low-quality disk. Obviously it won't help
you if an entire disk dies, of course. In case you experience bad
sectors or corruption, just repair your packs like this:

bup fsck -r

Of course, I couldn't simulate actual bad sectors on my system. But
if you want to simulate file damage, try using the new "bup damage"
command to damage the .pack or .idx files in ~/.bup/objects/pack.
Naturally you might want to make a copy of those files first, as it's
rather easy to make a mess using "bup damage" :)

Avery Pennarun (7):
cmd-ls and cmd-fuse: toys for browsing your available backups.
client: fix a race condition when the server suggests an index.
rewire a try/finally with a yield inside to be compatible with python 2.4
Use mkstemp() when creating temporary packfiles.
cmd-damage: a program for randomly corrupting file contents.
Basic cmd-fsck for checking integrity of packfiles.
fsck: add a -j# (run multiple threads) option.

Have fun,

Avery

Reply all
Reply to author
Forward
0 new messages