Parity Volume Set
Parchivist (Talk | contribs) (→Software) |
(Merge data from Parchive. Use Template:Magic instead. Add more links, references and information.) |
||
Line 3: | Line 3: | ||
|subcat=Error detection and correction | |subcat=Error detection and correction | ||
|extensions={{ext|par}}, {{ext|pxx}}, {{ext|par2}}, {{ext|pa3}} | |extensions={{ext|par}}, {{ext|pxx}}, {{ext|par2}}, {{ext|pa3}} | ||
+ | |released=2001<ref>[https://sourceforge.net/projects/parchive/files/OldFiles/ parchive Files - SourceForge.net]</ref> | ||
}} | }} | ||
− | '''Parity Volume Set''' (also known as '''parity archive''' or '''parchive''') is a file format for storing redundant data for one or more input files. These data can be used to repair the input files if they get damaged. The error correction is based on the [[Reed-Solomon_error_correction|Reed-Solomon algorithm]]. Three versions of the format exist: ''Par1'', ''Par2'' and ''Par3''. The ''Par3'' format never made it beyond the proposal stage, but it is used by | + | '''Parity Volume Set''' (also known as '''parity archive''' or '''parchive''') is a file format for storing redundant data for one or more input files. These data can be used to repair the input files if they get damaged. The error correction is based on the [[Reed-Solomon_error_correction|Reed-Solomon algorithm]]. Three versions of the format exist: ''Par1'', ''Par2'' and ''Par3''. The ''Par3'' format never made it beyond the proposal stage, but it is used by an old version of MultiPar tool.<ref>[https://github.com/Yutaka-Sawada/MultiPar/issues/46#issuecomment-948179335 Par3 support? #46 - MultiPar - GitHub]</ref> |
+ | |||
+ | == Discussion == | ||
+ | Historically, these were multi-part archives that was distributed in Usenet (a.k.a., "network news"), but can still be used in prevention of complete data loss during transit or storage. Parchive is like RAID for files instead of a whole file system. | ||
+ | |||
+ | The technology is based on a 'Reed-Solomon Code' implementation that allows for recovery of any 'X' real data-blocks for 'X' parity data-blocks present. (Data-blocks referring to files OR much smaller virtual slices of files).<ref>[https://parchive.sourceforge.net/ Parchive: Parity Archive Tool - SourceForge.net]</ref> | ||
+ | |||
+ | Modern <code>Par2</code> software can take advantage of GPU to speed up recovery file creation.<ref>[https://github.com/Yutaka-Sawada/MultiPar/issues/40 GPU Acceleration via par2j64.exe??? Is it possible? How do I do it? #40 - MultiPar - GitHub]</ref><ref>[https://github.com/Parchive/par2cmdline/pull/176 Added support for GPU acceleration (CUDA) on recovery file creation. #176 - par2cmdline - GitHub]</ref> | ||
== Identification == | == Identification == | ||
Line 11: | Line 19: | ||
A '''Par1''' file starts with the following byte sequence: | A '''Par1''' file starts with the following byte sequence: | ||
− | + | {{magic|50 41 52 00 00 00 00 00}} | |
This corresponds to the ASCII text string <code>PAR</code>, followed by 5 null bytes. | This corresponds to the ASCII text string <code>PAR</code>, followed by 5 null bytes. | ||
Line 17: | Line 25: | ||
A '''Par2''' file starts with the bytes: | A '''Par2''' file starts with the bytes: | ||
− | + | {{magic|50 41 52 32 00 50 4B 54}} | |
This corresponds to ASCII text string <code>PAR2</code>, followed by a null byte and the text string <code>PKT</code>. | This corresponds to ASCII text string <code>PAR2</code>, followed by a null byte and the text string <code>PKT</code>. | ||
Line 23: | Line 31: | ||
Finally, a '''Par3''' file can be identified by the following 4-byte sequence: | Finally, a '''Par3''' file can be identified by the following 4-byte sequence: | ||
− | + | {{magic|50 41 33 00}} | |
This corresponds to the text string <code>PA3</code>, followed by a null byte. | This corresponds to the text string <code>PA3</code>, followed by a null byte. | ||
== Specifications == | == Specifications == | ||
− | + | {| | |
− | + | |'''Specification version''' | |
− | + | |'''SourceForge/Internet Archive link''' | |
+ | |'''GitHub link''' | ||
+ | |- | ||
+ | | Parity Volume Set Specification v1.0 | ||
+ | | [http://parchive.sourceforge.net/docs/specifications/parity-volume-spec-1.0/article-spec.html SourceForge] | ||
+ | | [https://parchive.github.io/doc/Parity%20Volume%20Set%20Specification%20v1.0.html GitHub] | ||
+ | |- | ||
+ | | Parity Volume Set Specification 2.0 | ||
+ | | [http://parchive.sourceforge.net/docs/specifications/parity-volume-spec/article-spec.html SourceForge] | ||
+ | | [https://parchive.github.io/doc/Parity%20Volume%20Set%20Specification%20v2.0.html GitHub] | ||
+ | |- | ||
+ | | proposal for Parchive Specification 3.0 | ||
+ | | [https://web.archive.org/web/20100911002706/http://hp.vector.co.jp/authors/VA021385/par3_spec_prop.htm hp.vector.co.jp IA mirror] | ||
+ | | [https://parchive.github.io/doc/Parity_Volume_Set_Specification_v3.0.html GitHub] | ||
+ | |} | ||
+ | |||
+ | == par2 Examples == | ||
+ | Create uniformed recovery file sizes with 100% redundancy for example.dwarfs | ||
+ | par2 create -u -r100 example.dwarfs | ||
+ | ''This makes it more like Par1''<ref>[https://github.com/parchive/par2cmdline?tab=readme-ov-file#why-is-par-20-better-than-par-10 Why is PAR 2.0 better than PAR 1.0? - par2cmdline - GitHub]</ref> | ||
== Software == | == Software == | ||
− | + | * Windows | |
− | * [https://github.com/ | + | ** [http://www.quickpar.org.uk/index.htm QuickPar] (par2, GUI) |
− | * [ | + | ** [https://github.com/Yutaka-Sawada/MultiPar MultiPar] (GUI) |
− | * [ | + | * Mac |
+ | ** [https://gp.home.xs4all.nl/Site/MacPAR_deLuxe.html MacPAR deLuxe] | ||
+ | * Linux | ||
+ | ** [https://pypar2.fingelrest.net/ PyPar2] | ||
+ | ** [https://github.com/Parchive/par2cmdline par2cmdline] | ||
== Sample files == | == Sample files == | ||
+ | === Par1 sample files === | ||
+ | See [https://discmaster.textfiles.com/search?mode=deep&extension=p01&format=parityArchiveVolumeSet Search results with p01 extensions] | ||
+ | |||
+ | <code>Par1</code> files are usually distributed in a set, beginning with <code>.p01</code> and the number increments for each and every related <code>Par1</code> archive.<ref>[https://web.archive.org/web/20250612232413/https://www.techsono.com/files/par2 Par2 Files Explained in Plain English - Internet Archive copy]</ref> | ||
+ | |||
+ | See Also: [https://discmaster.textfiles.com/search?mode=deep&extension=p02&format=parityArchiveVolumeSet Search results with p02 extensions - a continuation of same parity archive files from those with p01 extensions] | ||
+ | |||
+ | === Par2 sample files === | ||
+ | See [https://discmaster.textfiles.com/search?mode=deep&extension=par2&format=parityArchiveVolumeSet&format=unknown&sortBy=name.keyword Search results with par2 extensions and are likely parity archive - Discmaster.textfiles.com] for samples. | ||
+ | |||
+ | These files are usually distributed in a set, containing <code><name>.par2</code> and <code><name>.vol<numA>+<numB>.par2</code>, where <code>name</code> is the name of the file, typically to be created as a parity archive of, and <code><num></code> is an incrementing number, and is often starts with <code>0</code> for <numA>.<ref>[https://web.archive.org/web/20250612232413/https://www.techsono.com/files/par2 Par2 Files Explained in Plain English - Internet Archive copy]</ref> | ||
== Links == | == Links == | ||
* [[Wikipedia:Parchive]] | * [[Wikipedia:Parchive]] | ||
− | * [http://www.techsono.com/usenet/files/par2 Par2 Files Explained in Plain English] | + | * [http://www.techsono.com/usenet/files/par2 Par2 Files Explained in Plain English] (Broken link) <sup>[https://web.archive.org/web/20250612232413/https://www.techsono.com/files/par2 [Internet Archive copy]]</sup> |
+ | * [https://parchive.github.io/ Parchive project page on GitHub] | ||
+ | * [https://parchive.sourceforge.net/ Parchive project page on SourceForge.net (Legacy)] | ||
+ | |||
+ | == References == | ||
+ | <references/> |
Revision as of 08:56, 8 August 2025
Parity Volume Set (also known as parity archive or parchive) is a file format for storing redundant data for one or more input files. These data can be used to repair the input files if they get damaged. The error correction is based on the Reed-Solomon algorithm. Three versions of the format exist: Par1, Par2 and Par3. The Par3 format never made it beyond the proposal stage, but it is used by an old version of MultiPar tool.[2]
Contents |
Discussion
Historically, these were multi-part archives that was distributed in Usenet (a.k.a., "network news"), but can still be used in prevention of complete data loss during transit or storage. Parchive is like RAID for files instead of a whole file system.
The technology is based on a 'Reed-Solomon Code' implementation that allows for recovery of any 'X' real data-blocks for 'X' parity data-blocks present. (Data-blocks referring to files OR much smaller virtual slices of files).[3]
Modern Par2
software can take advantage of GPU to speed up recovery file creation.[4][5]
Identification
A Par1 file starts with the following byte sequence:
50 41 52 00 00 00 00 00
This corresponds to the ASCII text string PAR
, followed by 5 null bytes.
A Par2 file starts with the bytes:
50 41 52 32 00 50 4B 54
This corresponds to ASCII text string PAR2
, followed by a null byte and the text string PKT
.
Finally, a Par3 file can be identified by the following 4-byte sequence:
50 41 33 00
This corresponds to the text string PA3
, followed by a null byte.
Specifications
Specification version | SourceForge/Internet Archive link | GitHub link |
Parity Volume Set Specification v1.0 | SourceForge | GitHub |
Parity Volume Set Specification 2.0 | SourceForge | GitHub |
proposal for Parchive Specification 3.0 | hp.vector.co.jp IA mirror | GitHub |
par2 Examples
Create uniformed recovery file sizes with 100% redundancy for example.dwarfs
par2 create -u -r100 example.dwarfs
This makes it more like Par1[6]
Software
- Windows
- Mac
- Linux
Sample files
Par1 sample files
See Search results with p01 extensions
Par1
files are usually distributed in a set, beginning with .p01
and the number increments for each and every related Par1
archive.[7]
Par2 sample files
See Search results with par2 extensions and are likely parity archive - Discmaster.textfiles.com for samples.
These files are usually distributed in a set, containing <name>.par2
and <name>.vol<numA>+<numB>.par2
, where name
is the name of the file, typically to be created as a parity archive of, and <num>
is an incrementing number, and is often starts with 0
for <numA>.[8]
Links
- Wikipedia:Parchive
- Par2 Files Explained in Plain English (Broken link) [Internet Archive copy]
- Parchive project page on GitHub
- Parchive project page on SourceForge.net (Legacy)
References
- ↑ parchive Files - SourceForge.net
- ↑ Par3 support? #46 - MultiPar - GitHub
- ↑ Parchive: Parity Archive Tool - SourceForge.net
- ↑ GPU Acceleration via par2j64.exe??? Is it possible? How do I do it? #40 - MultiPar - GitHub
- ↑ Added support for GPU acceleration (CUDA) on recovery file creation. #176 - par2cmdline - GitHub
- ↑ Why is PAR 2.0 better than PAR 1.0? - par2cmdline - GitHub
- ↑ Par2 Files Explained in Plain English - Internet Archive copy
- ↑ Par2 Files Explained in Plain English - Internet Archive copy