[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: