単一のファイルにエラー修正コード(BCH、RSなど)を追加することはできますか?


12

私の知る限り、WinRARアーカイブにはECC(エラー修正コード)が含まれている可能性があるため、アーカイブがわずかに破損している場合は、それ自体で修正できます。

たとえば、最初ににエンコードarchives.tararchives.tar.eccてから、サーバーにアップロードできます。クライアントによるダウンロード後にファイルがわずかに破損している場合は、デコードすることでファイルを再度ダウンロードせずに自動的に修正できますarchives.tar.ecc。ネットワーク接続が不安定な場合、素晴らしいアイデアになると思います。

私のニーズを満たすことができる(オープンソースの)ソフトウェアがLinuxで実行されているかどうか疑問に思います。

助言がありますか?


ある程度まで、これはすでに発生しています-各ファイルのヘッダーchksumフィールドは、ヘッダーの構成バイトの合計です-サイズフィールドを含めます。tarさらに多くのことtar-GNUはヘッダーメタデータのスパースファイルホールをエンコードし、POSIX pax互換アーカイバーによる抽出時に、ファイルの再構築に必要な情報を含むファイルを生成するか、GNUによってtar元のスパースファイルに生成します。ユーティリティ w /のためにPOSIXで指定されているようにpax定義可能な主にエンコードされたヘッダー変数を使用します-o
mikeserv 14年

回答:


6

私はこの同じ問題を抱えていましたが、他の回答で提供された解決策は、par2プログラム/標準ではリカバリと検証を行うために個別のファイルを作成する必要があるため、受け入れられないことがわかりました。私は、私が思う元の質問者のように、エラー修正コードを含む単一のファイルが欲しいです。

パッケージマネージャーにあったプログラムrsbepを見つけ、必要なコードをここで見つけました:https ://www.thanassis.space/rsbep.html

これにより、Reed-Solomonエラー修正コードを含むファイルを作成し、破損している可能性のあるECCバージョンから元のファイルを取得できます。


rsbepは素晴らしい!しかし、少し違います。OS全体が凍結されているため、内部にファイルを追加することはできますが、内部の内容を変更することはできず、移動するのが少し面倒です。しかし、FUSEとオープンソースを使用した非常に興味深いアプローチです。
貪欲な16

1
@gaborous、それは真実ではありません。rsbep透過的に使用するFUSE fs実装がありますが、それはファイルごとに機能するスクリプトの上にのみあります。
-nyov

6

リードソロモンエラー修正を使用するPAR2に興味があります。parchiveはECCファイル形式の仕様です。LinuxではPyParまたはpar2tbbが必要で、WindowsではQuickParと呼ばれるGUIを使用します。


1
PyParとpar2tbbのリンクが壊れているように見えます。私はpar2tbbを見つけたここに
ドリスト

2
PyParはエラー修正とはまったく関係ないと思います。
mbarkhau

2

eccファイルをアーカイブとは別にしたい場合は、pyFileFixityを使用できます。pyFileFixityは、ビット破損に対する次世代のPARのような保護システムを提供することを目的としたオープンソースのPythonプロジェクトです。

ecc保護をアーカイブに直接含めたい場合、オープンソースDARを使用できます。これは、次世代のTARの一種であり、非ソリッド(つまり、破損したアーカイブの部分抽出)とecc( PAR2を使用して)カタログ分離(つまり、ディレクトリツリーとファイルシステムメタデータのバックアップを保存)を.darアーカイブに直接保存します。


0

もう1つの同様の2018プロジェクトはRedupeで、2つの異なるツールで個別のファイルエラー修正と埋め込みファイルエラー修正の両方を提供するようです。

最初のツールredupeは、gzipやbzip2などの圧縮ツールをモデルにしていますが、排除する代わりに冗長性を追加しています。

Webページの例(簡潔にするために変更)は、ユースケースに似ています:

$ redupe home-backup.tar.gz
$ ls -l
-rw------- 1 rescrv 5625162218 home-backup.tar.gz
-rw-r--r-- 1 rescrv 6433996800 home-backup.tar.gz.rd

reundupe その後、ファイルを復元し、場合によっては小さなエラーを修正するために使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.