Re: Tape backup software?
On 25 Jul 2000, Riku Saikkonen wrote:
> Has anyone tried recovering damaged .tar.bz2 files? Any success /
> failure?
Hi, guys. Here's what I did:
# cd /tmp
# tail -c 1048576 /dev/hda > t.bulk.o
# cat t.bulk.o | bzip2 -1 > t.bulk.bz2
# echo "Damage string to insert before actual bz2 image" > tmp.1
# cat tmp.1 t.bulk.bz2 > t.bulk.dmg.bz2
# bunzip2 -k t.bulk.dmg.bz2
bunzip2: t.bulk.dmg.bz2 is not a bzip2 file.
# bzip2 -vvt t.bulk.dmg.bz2
t.bulk.dmg.bz2: bad magic number (file not created by bzip2)
You can use the `bzip2recover' program to attempt to recover
data from undamaged sections of corrupted files.
# bzip2recover t.bulk.dmg.bz2
bzip2recover: searching for block boundaries ...
block 1 runs from 464 to 305416
block 2 runs from 305465 to 698960
block 3 runs from 699009 to 1083281
block 4 runs from 1083330 to 1398097
block 5 runs from 1398146 to 1846240
block 6 runs from 1846289 to 2325383
block 7 runs from 2325432 to 2584085
block 8 runs from 2584134 to 2763608
block 9 runs from 2763657 to 3217006
block 10 runs from 3217055 to 3483161
bzip2recover: splitting into blocks
writing block 1 to `rec0001t.bulk.dmg.bz2' ...
writing block 2 to `rec0002t.bulk.dmg.bz2' ...
writing block 3 to `rec0003t.bulk.dmg.bz2' ...
writing block 4 to `rec0004t.bulk.dmg.bz2' ...
writing block 5 to `rec0005t.bulk.dmg.bz2' ...
writing block 6 to `rec0006t.bulk.dmg.bz2' ...
writing block 7 to `rec0007t.bulk.dmg.bz2' ...
writing block 8 to `rec0008t.bulk.dmg.bz2' ...
writing block 9 to `rec0009t.bulk.dmg.bz2' ...
writing block 10 to `rec0010t.bulk.dmg.bz2' ...
bzip2recover: finished
# bzip2 -vvt rec[0-9]*t.bulk.dmg.bz2
rec0001t.bulk.dmg.bz2:
[1: huff+mtf rt+rld]
ok
rec0002t.bulk.dmg.bz2:
[1: huff+mtf rt+rld]
ok
rec0003t.bulk.dmg.bz2:
[1: huff+mtf rt+rld]
ok
rec0004t.bulk.dmg.bz2:
[1: huff+mtf rt+rld]
ok
rec0005t.bulk.dmg.bz2:
[1: huff+mtf rt+rld]
ok
rec0006t.bulk.dmg.bz2:
[1: huff+mtf rt+rld]
ok
rec0007t.bulk.dmg.bz2:
[1: huff+mtf rt+rld]
ok
rec0008t.bulk.dmg.bz2:
[1: huff+mtf rt+rld]
ok
rec0009t.bulk.dmg.bz2:
[1: huff+mtf rt+rld]
ok
rec0010t.bulk.dmg.bz2:
[1: huff+mtf rt+rld]
ok
# bunzip2 -c rec[0-9]*t.bulk.dmg.bz2 > t.bulk.dmg
# diff -u t.bulk.o t.bulk.dmg
I also tried "joe"-ing the bz2 file and recovering. It worked as described
in the manual page. (The block I "edited" was lost)
Hope you are happy now,
Pavel
Reply to: