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