Lziprecover

lzip logo

Introduction

Lziprecover is a data recovery tool and decompressor for files in the lzip compressed data format (.lz). Lziprecover is able to repair slightly damaged files (up to one single-byte error per member), produce a correct file by merging the good parts of two or more damaged copies, reproduce a missing (zeroed) sector using a reference file, extract data from damaged files, decompress files, and test integrity of files.

Lziprecover can remove the damaged members from multimember files, for example multimember tar.lz archives.

Lziprecover provides random access to the data in multimember files; it only decompresses the members containing the desired data.

Lziprecover facilitates the management of metadata stored as trailing data in lzip files.

Lziprecover is not a replacement for regular backups, but a last line of defense for the case where the backups are also damaged.

The lzip file format is designed for data sharing and long-term archiving, taking into account both data integrity and decoder availability:

A nice feature of the lzip format is that a corrupt byte is easier to repair the nearer it is from the beginning of the file. Therefore, with the help of lziprecover, losing an entire archive just because of a corrupt byte near the beginning is a thing of the past.

Compression may be good for long-term archiving. For compressible data, multiple compressed copies may provide redundancy in a more useful form and may have a better chance of surviving intact than one uncompressed copy using the same amount of storage space. This is specially true if the format provides recovery capabilities like those of lziprecover, which is able to find and combine the good parts of several damaged copies.

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.

If the cause of file corruption is a damaged medium, the combination GNU ddrescue + lziprecover is the recommended option for recovering data from damaged lzip files.

If a file is too damaged for lziprecover to repair it, all the recoverable data in all members of the file can be extracted in one step with the command 'lziprecover -cd -i file.lz > file'.

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 kept unchanged.

When decompressing or testing file integrity, lziprecover behaves like lzip or lunzip.

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 (a few MB) with small errors (one sector damaged per copy), the probability approaches 100 percent even with only two copies. (Supposing that the errors are randomly located inside each copy).

The lziprecover package also includes unzcrash, a program written to test robustness to decompression of corrupted data, inspired by unzcrash.c from Julian Seward's bzip2.

Documentation

The manual is available in the info system of the GNU Operating System. Use info to access the top level info page. Use info lziprecover to access the lziprecover section directly.

An online manual for lziprecover can be found at manual/lziprecover_manual.html.

Download

The latest released version of lziprecover can be found at http://download.savannah.gnu.org/releases/lzip/lziprecover/. You may also subscribe to lzip-bug and receive an email every time a new version is released.

You may compile and optionally install lziprecover by running the following commands:

tar -xf lziprecover[version].tar.gz
cd lziprecover[version] && ./configure && make check

then (as root) type:

make install

Once lziprecover is installed, the files from archive "foo.tar.lz" can be extracted using the command "lziprecover -cd foo.tar.lz | tar -xf -".

How to get help

For general discussion of bugs in lziprecover the mailing list lzip-bug@nongnu.org is the most appropriate forum. Please send messages as plain text. Please do not send messages encoded as HTML nor encoded as base64 MIME nor included as multiple formats. Please include a descriptive subject line. If all of the subject are "bug in lziprecover" it is impossible to differentiate them.

An archive of the bug report mailing list is available at http://lists.gnu.org/mailman/listinfo/lzip-bug.

How to help

To contact the author, either to report a bug or to contribute fixes or improvements, send mail to lzip-bug@nongnu.org. Please send messages as plain text. If posting patches they should be in unified diff format against the latest version. They should include a text description.

See also the lzip project page at Savannah.

Licensing

Lziprecover is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.

Valid HTML 4.01 Strict


Copyright © 2023 Antonio Diaz Diaz
Lzip logo Copyright © 2013 Sonia Diaz Pacheco

You are free to copy, modify, and distribute all or part of this article without limitation.

Updated: 2023-12-21

This page does not use javascript.