同じファイルの 2 つのバージョン間のファイルの整合性をチェックするにはどうすればよいですか?

同じファイルの 2 つのバージョン間のファイルの整合性をチェックするにはどうすればよいですか?

過去数年 (2000 年頃から)、私はディスク間でデータを移動したりコピーしたりしてきました。データは MP3、アプリケーション、ビデオ、バックアップ、電子メールなど、あらゆるもので、複数のディスク (およびディスク アレイ) 間や、FAT、NTFS、ReiserFS、Ext3、Ext4、jfs などの複数のファイル システム間で移動/コピーされています。

最近、一部の RAR アーカイブ、一部の実行ファイル (実際には圧縮されたアーカイブ)、およびおそらくまだ気付いていない他のファイルが破損していることに気付きました。圧縮されたファイルだけにパターンがあるかどうかはわかりません。圧縮されたファイルだけに限定されないと思います。

まず最初に、次のコマンドとともに find を使用して、Linux ファイル サーバー内の rar ファイルの整合性をチェックしました。

unrar t <rar files>

これはいいのですが、他のすべてのファイル(ドキュメント、写真、MP3、WAV、ZIPなど、リストは無限です)は言うまでもなく、このようにすべてのアーカイブの整合性をチェックすることはできません。

いくつかの方法ですべてのファイルを確認したいと思います。

  1. ファイルシステムのチェックは明らかに有効ですが、データが現在保存されているディスクにコピーされる前にすでに破損していた場合は、実際には役に立ちませんよね? 現在のファイルシステムは JFS です。

  2. 2 番目のレベルのチェックは MD5 チェックサムでよいのでしょうか? すべてのデータのバックアップがあり、チェックサムを一致させることはできますが、破損したファイルでは異なるチェックサムが生成されますか? データの最後のコピーの前にファイルが破損していた場合、それでも問題は解決されません。

  3. 安心するために他に確認すべきことはありますか?

  4. 自分のデータをバックアップと比較するときには、大きな問題があります。生きているすべてのものと同様に、自分のデータは時間の経過とともに「変更」され、バックアップはその後変更されていない時点のスナップショットです。まず、ディレクトリ構造が変更され、ファイルは明らかに削除されたか、他の場所に転送されています。findバックアップ ツリーと現在のツリー間でファイルを一致させるためにコマンドを使用すると、明らかに混乱が生じます。

それで、同様の問題を扱ったことのある人はいますか? また、ファイルのインデックス付きエントリをすばやく見つけて使用できるスクリプト (locate などを使用) を持っているかもしれませんか?

答え1

MD5/SHAチェックサムは、今日ではファイルの整合性をチェックするためのゴールドスタンダードです。チェックサムを作成するためのオリジナルファイルがある場合、またはチェックサムがすでにある場合は、それが最も徹底したファイルの内容を確認する方法。ただし、あなたが示唆しているようにファイルの数が多い場合は、面倒な作業になる可能性があります。

さらに、、、およびファイル形式には、内部に保存されているすべてのファイルの CRC32 チェックサムが含まRARれている必要があります。これは MD5 や SHA よりも弱い (つまり、破損したデータが検出されない可能性が高い) ですが、ファイルの抽出時に破損がある場合、つまりアーカイブが破損しているかどうかを検出できます。これらは、アーカイブからファイルを抽出するたびに自動的に検証されます。は基本的に、アーカイブ内の各ファイルの CRC32 チェックサムをテストするだけです。ZIP7Zunrar -t <rar files>

さらに、アーカイブ ツールには、アーカイブを作成するときに、アーカイブ全体の追加の CRC32 であるファイルを生成するオプションが用意されているはずです.sfv。これを使用して、アーカイブの整合性をさらに検証できます。

あるファイルシステムから別のファイルシステムにファイルをコピーする場合、コピーが成功し、正しく行われたことを確認するための専用ツールを使用できます。Windows の場合TeraCopy、コピーを開始する前に「検証」オプションを有効にするだけで、TeraCopy はコピーされたファイルを再度読み取り、新しい場所でディスクに正しく書き込まれたかどうかを確認します。

関連情報