Lziprecover is able to recover or decompress files produced by any of the compressors in the lzip family; lzip, plzip, minilzip/lzlib, clzip and pdlzip. This recovery capability contributes to make the lzip format one of the best options for long-term data archiving.
Lziprecover is able to efficiently extract a range of bytes from a multi-member file, because it only decompresses the members containing the desired data.
Lziprecover can print correct total file sizes and ratios even for multi-member files.
When recovering data, lziprecover takes as arguments the names of the damaged files and writes zero or more recovered files depending on the operation selected and whether the recovery succeeded or not. The damaged files themselves are never modified.
When decompressing or testing file integrity, lziprecover behaves like lzip or lunzip.
If the files are too damaged for lziprecover to repair them, data from damaged members can be partially recovered writing it to stdout.
To give you an idea of its possibilities, when merging two copies each of them with one damaged area affecting 1 percent of the copy, the probability of obtaining a correct file is about 98 percent. With three such copies the probability rises to 99.97 percent. For large files with small errors, the probability approaches 100 percent even with only two copies.
If the cause of file corruption is damaged media, the combination GNU ddrescue + lziprecover is the best option for recovering data from multiple damaged copies.
The lziprecover package also includes unzcrash, a program written to test robustness to decompression of corrupted data, inspired by unzcrash.c from bzip2.
Learn more about lzip in the Lzip Home Page.
An online manual for lziprecover can be found here.
An archive of the bug report mailing list is available at http://lists.nongnu.org/mailman/listinfo/lzip-bug.
See also the lzip project page at Savannah.
You are free to copy, modify and distribute all or part of this article without limitation.