README
1Description
2
3Lziprecover is a data recovery tool and decompressor for files in the lzip
4compressed data format (.lz). Lziprecover is able to repair slightly damaged
5files, produce a correct file by merging the good parts of two or more
6damaged copies, reproduce a missing (zeroed) sector using a reference file,
7extract data from damaged files, decompress files, and test integrity of
8files.
9
10Lziprecover can remove the damaged members from multimember files, for
11example multimember tar.lz archives.
12
13Lziprecover provides random access to the data in multimember files; it only
14decompresses the members containing the desired data.
15
16Lziprecover facilitates the management of metadata stored as trailing data
17in lzip files.
18
19Lziprecover is not a replacement for regular backups, but a last line of
20defense for the case where the backups are also damaged.
21
22The lzip file format is designed for data sharing and long-term archiving,
23taking into account both data integrity and decoder availability:
24
25 * The lzip format provides very safe integrity checking and some data
26 recovery means. The program lziprecover can repair bit flip errors
27 (one of the most common forms of data corruption) in lzip files, and
28 provides data recovery capabilities, including error-checked merging
29 of damaged copies of a file.
30
31 * The lzip format is as simple as possible (but not simpler). The lzip
32 manual provides the source code of a simple decompressor along with a
33 detailed explanation of how it works, so that with the only help of the
34 lzip manual it would be possible for a digital archaeologist to extract
35 the data from a lzip file long after quantum computers eventually
36 render LZMA obsolete.
37
38 * Additionally the lzip reference implementation is copylefted, which
39 guarantees that it will remain free forever.
40
41A nice feature of the lzip format is that a corrupt byte is easier to repair
42the nearer it is from the beginning of the file. Therefore, with the help of
43lziprecover, losing an entire archive just because of a corrupt byte near
44the beginning is a thing of the past.
45
46Compression may be good for long-term archiving. For compressible data,
47multiple compressed copies may provide redundancy in a more useful form and
48may have a better chance of surviving intact than one uncompressed copy
49using the same amount of storage space. This is specially true if the format
50provides recovery capabilities like those of lziprecover, which is able to
51find and combine the good parts of several damaged copies.
52
53Lziprecover is able to recover or decompress files produced by any of the
54compressors in the lzip family; lzip, plzip, minilzip/lzlib, clzip, and
55pdlzip.
56
57If the cause of file corruption is a damaged medium, the combination
58GNU ddrescue + lziprecover is the recommended option for recovering data
59from damaged lzip files.
60
61If a file is too damaged for lziprecover to repair it, all the recoverable
62data in all members of the file can be extracted in one step with the
63command 'lziprecover -cd -i file.lz > file'.
64
65When recovering data, lziprecover takes as arguments the names of the
66damaged files and writes zero or more recovered files depending on the
67operation selected and whether the recovery succeeded or not. The damaged
68files themselves are kept unchanged.
69
70When decompressing or testing file integrity, lziprecover behaves like lzip
71or lunzip.
72
73To give you an idea of its possibilities, when merging two copies, each of
74them with one damaged area affecting 1 percent of the copy, the probability
75of obtaining a correct file is about 98 percent. With three such copies the
76probability rises to 99.97 percent. For large files (a few MB) with small
77errors (one sector damaged per copy), the probability approaches 100 percent
78even with only two copies. (Supposing that the errors are randomly located
79inside each copy).
80
81The lziprecover package also includes unzcrash, a program written to test
82robustness to decompression of corrupted data, inspired by unzcrash.c from
83Julian Seward's bzip2. Type 'make unzcrash' in the lziprecover source
84directory to build it. Then try 'unzcrash --help'.
85
86
87Copyright (C) 2009-2021 Antonio Diaz Diaz.
88
89This file is free documentation: you have unlimited permission to copy,
90distribute, and modify it.
91
92The file Makefile.in is a data file used by configure to produce the
93Makefile. It has the same copyright owner and permissions that configure
94itself.
95