1
0
Fork 0

Merging upstream version 1.15~pre1.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-21 11:16:43 +01:00
parent 1627091c30
commit e6c763bfbc
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
36 changed files with 793 additions and 495 deletions

View file

@ -12,16 +12,18 @@ File: lziprecover.info, Node: Top, Next: Introduction, Up: (dir)
Lziprecover Manual
******************
This manual is for Lziprecover (version 1.14, 31 May 2013).
This manual is for Lziprecover (version 1.15-pre1, 17 June 2013).
* Menu:
* Introduction:: Purpose and features of lziprecover
* Invoking Lziprecover:: Command line interface
* File Format:: Detailed format of the compressed file
* Examples:: A small tutorial with examples
* Problems:: Reporting bugs
* Concept Index:: Index of concepts
* Introduction:: Purpose and features of lziprecover
* Invoking Lziprecover:: Command line interface
* Repairing Files:: Fixing bit-flip and similar errors
* Merging Files:: Fixing several damaged copies
* File Format:: Detailed format of the compressed file
* Examples:: A small tutorial with examples
* Problems:: Reporting bugs
* Concept Index:: Index of concepts
Copyright (C) 2009, 2010, 2011, 2012, 2013 Antonio Diaz Diaz.
@ -37,14 +39,15 @@ File: lziprecover.info, Node: Introduction, Next: Invoking Lziprecover, Prev:
Lziprecover is a data recovery tool and decompressor for files in the
lzip compressed data format (.lz) able to repair slightly damaged files,
recover badly damaged files from two or more copies, extract undamaged
members from multi-member files, decompress files and test integrity of
files.
recover badly damaged files from two or more copies, extract data from
damaged files, decompress files and test integrity of files.
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.
and pdlzip. It makes lzip files resistant to bit-flip, one of the most
common forms of data corruption, and its recovery capabilities
contribute to make of 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
@ -61,19 +64,22 @@ 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 as
shown in the following example (the resulting file may contain some
garbage data at the end):
If a file is too damaged for lziprecover to repair it, all the
recoverable data in all members of the file can be extracted with the
following command (the resulting file may contain errors and some
garbage data may be produced at the end of each member):
lziprecover -cd rec01file.lz > rec01file
lziprecover -D0 -i -o file -q file.lz
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. *Note ddrescue-example::, for an example.
Lziprecover is not a replacement for regular backups, but a last
line of defense for the case where the backups are also damaged.

File: lziprecover.info, Node: Invoking Lziprecover, Next: File Format, Prev: Introduction, Up: Top
File: lziprecover.info, Node: Invoking Lziprecover, Next: Repairing Files, Prev: Introduction, Up: Top
2 Invoking Lziprecover
**********************
@ -141,18 +147,10 @@ The format for running lziprecover is:
`-m'
`--merge'
Try to produce a correct file merging the good parts of two or more
damaged copies. The copies must be single-member files. The merge
will fail if the copies have too many damaged areas or if the same
byte is damaged in all copies. If successful, a repaired copy is
written to the file `FILE_fixed.lz'. The exit status is 0 if the
file could be repaired, 2 otherwise.
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.
damaged copies. If successful, a repaired copy is written to the
file `FILE_fixed.lz'. The exit status is 0 if a correct file could
be produced, 2 otherwise. See the chapter Merging Files (*note
Merging Files::) for a complete description of the merge mode.
`-o FILE'
`--output=FILE'
@ -168,10 +166,12 @@ The format for running lziprecover is:
`-R'
`--repair'
Try to repair a small error, affecting only one byte, in a
single-member FILE. If successful, a repaired copy is written to
the file `FILE_fixed.lz'. `FILE' is not modified at all. The exit
status is 0 if the file could be repaired, 2 otherwise.
Try to repair a file with small errors (up to one byte error per
member). If successful, a repaired copy is written to the file
`FILE_fixed.lz'. `FILE' is not modified at all. The exit status
is 0 if the file could be repaired, 2 otherwise. See the chapter
Repairing Files (*note Repairing Files::) for a complete
description of the repair mode.
`-s'
`--split'
@ -227,9 +227,52 @@ invalid input file, 3 for an internal consistency error (eg, bug) which
caused lziprecover to panic.

File: lziprecover.info, Node: File Format, Next: Examples, Prev: Invoking Lziprecover, Up: Top
File: lziprecover.info, Node: Repairing Files, Next: Merging Files, Prev: Invoking Lziprecover, Up: Top
3 File Format
3 Repairing Files
*****************
Lziprecover is able to repair files with small errors (up to one byte
error per member). The error may be located anywhere in the file except
in the header (first 6 bytes of each member) or in the `Member size'
field of the trailer (last 8 bytes of each member). This makes lzip
files resistant to bit-flip, one of the most common forms of data
corruption.
Bit-flip happens when one bit in the file is changed from 0 to 1 or
vice versa. It may be caused by bad RAM or even by natural radiation. I
have seen a case of bit-flip in a file stored in an USB flash drive.

File: lziprecover.info, Node: Merging Files, Next: File Format, Prev: Repairing Files, Up: Top
4 Merging Files
***************
If you have several copies of a file but all of them are too damaged to
repair them (*note Repairing Files::), lziprecover can try to produce a
correct file merging the good parts of the damaged copies.
The merge may succeed even if some copies of the file have all the
headers and trailers damaged, as long as there is at least one copy of
every header and trailer intact, even if they are in different copies of
the file.
The merge will fail if the damaged areas overlap (at least one byte
is damaged in all copies), or are adjacent and the boundary can't be
determined, or if the copies have too many damaged areas.
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.

File: lziprecover.info, Node: File Format, Next: Examples, Prev: Merging Files, Up: Top
5 File Format
*************
Perfection is reached, not when there is no longer anything to add, but
@ -302,7 +345,7 @@ additional information before, between, or after them.

File: lziprecover.info, Node: Examples, Next: Problems, Prev: File Format, Up: Top
4 A small tutorial with examples
6 A small tutorial with examples
********************************
Example 1: Restore a regular file from its compressed version
@ -329,9 +372,8 @@ to decompressed byte 15000 (5000 bytes are produced).
lziprecover -D 10000-15000 file.lz
Example 5: Repair a one-byte corruption in the single-member file
`file.lz'. (Indented lines are abridged error messages from
lziprecover).
Example 5: Repair small errors in the file `file.lz'. (Indented lines
are abridged diagnostic messages from lziprecover).
lziprecover -v -R file.lz
Copy of input file repaired successfully.
@ -365,31 +407,16 @@ error-checked merging of copies (*Note GNU ddrescue manual:
Example 8: Recover the first volume of those created with the command
`lzip -b 32MiB -S 650MB big_db' from two copies, `big_db1_00001.lz' and
`big_db2_00001.lz', with member 07 damaged in the first copy, member 18
damaged in the second copy, and member 12 damaged in both copies. Two
correct copies are produced and compared.
damaged in the second copy, and member 12 damaged in both copies. The
correct file produced is saved in `big_db_00001.lz'.
lziprecover -s big_db1_00001.lz
lziprecover -s big_db2_00001.lz
lziprecover -t rec*big_db1_00001.lz
rec07big_db1_00001.lz: crc mismatch
rec12big_db1_00001.lz: crc mismatch
lziprecover -t rec*big_db2_00001.lz
rec12big_db2_00001.lz: crc mismatch
rec18big_db2_00001.lz: crc mismatch
lziprecover -m -v rec12big_db1_00001.lz rec12big_db2_00001.lz
lziprecover -m -v -o big_db_00001.lz big_db1_00001.lz big_db2_00001.lz
Input files merged successfully
cp rec07big_db2_00001.lz rec07big_db1_00001.lz
cp rec12big_db1_00001_fixed.lz rec12big_db1_00001.lz
cp rec12big_db1_00001_fixed.lz rec12big_db2_00001.lz
cp rec18big_db1_00001.lz rec18big_db2_00001.lz
cat rec*big_db1_00001.lz > big_db3_00001.lz
cat rec*big_db2_00001.lz > big_db4_00001.lz
zcmp big_db3_00001.lz big_db4_00001.lz

File: lziprecover.info, Node: Problems, Next: Concept Index, Prev: Examples, Up: Top
5 Reporting Bugs
7 Reporting Bugs
****************
There are probably bugs in lziprecover. There are certainly errors and
@ -415,19 +442,23 @@ Concept Index
* file format: File Format. (line 6)
* getting help: Problems. (line 6)
* introduction: Introduction. (line 6)
* invoking lziprecover: Invoking Lziprecover. (line 6)
* invoking: Invoking Lziprecover. (line 6)
* merging files: Merging Files. (line 6)
* repairing files: Repairing Files. (line 6)

Tag Table:
Node: Top231
Node: Introduction901
Node: Invoking Lziprecover2685
Node: File Format8447
Node: Examples10938
Ref: ddrescue-example12158
Node: Problems13938
Node: Concept Index14488
Node: Introduction1032
Node: Invoking Lziprecover3052
Node: Repairing Files8489
Node: Merging Files9208
Node: File Format10338
Node: Examples12822
Ref: ddrescue-example14024
Node: Problems15134
Node: Concept Index15684

End Tag Table