Metlivi ブログ

ファイルチェックサムを使用してオフラインの日記バックアップを検証する方法

デジタル日記のオフラインコピーがソースとバイト単位で一致していることを確認するには、対象のソースからSHA-256チェックサムマニフェストとファイル目録を作成し、その保護されたベースラインと照合してバックアップを検証します。チェックサムの一致は、リストに含まれるファイルのバイトデータに関する主張を裏付けるものですが、リストが完全であること、元のファイルが正確または読み取り可能であったこと、あるいは信頼できないベースラインが本物であることを示すものではありません。

2026年9月29日5分で読めます日常の美意識と自己表現Metlivi Editorial Team
セクション 1

チェックサム検証からわかること

チェックサムとは、ファイルの内容から計算される値です。内容が変更されると、計算される値も異なると予想されます。したがって、バックアップを参照値と比較することで、コピー中や保存中の変更を特定するのに役立ちます。Digital Preservation Coalitionは、チェックサムを転送の成功や継続的なファイルの同一性(fixity)を確認する手段として説明しており、正しいとわかっている参照値との比較を強調しています([Fixity and checksums](https://www.dpconline.org/handbook/technical-solutions-and-tools/fixity-and-checksums))。

参照値の選定は重要です。すでに破損している同じコピーからベースラインと比較対象の両方を計算した場合、一致したとしても元のファイルに何が含まれていたかは証明されません。また、一致したからといって、日記のエントリが正常に開くこと、ソースが完全であったこと、あるいは誰がファイルを作成したかが証明されるわけでもありません。これは、意図的に選択されたファイル群に対するバイト比較として扱ってください。

セクション 2

ソースセットを選択して記録する

バックアップすべき安定したエクスポート済み日記フォルダを特定し、ハッシュ計算を行う前にすべての編集を完了させてください。この例では隠しファイルを含む通常ファイルを対象としており、シンボリックリンクをたどったり、稼働中のアプリケーションデータベースを一貫した状態でキャプチャしたりすることはありません。必要に応じてリンクされている資料を選択したフォルダにエクスポートし、アプリケーションのエクスポート手順を確認してください。生成された目録とマニフェストは、そのフォルダの外に保存します。

これらの例には、Ubuntu LinuxのようにBashおよびGNU findutils/coreutilsが必要です。手を加えていないmacOSやWindowsのターミナル用のコマンドではありません。この例では架空のローカルパスと新しい出力ファイル名を使用しています。記録用には既存の親ディレクトリを使用し、以前のベースラインが上書きされないように未使用のファイル名を選択してください。これらはご自身のコンピュータ上のパスに置き換えてください。私的な日記と生成された記録はローカルに保持します。Ubuntuのマニュアルには、`sha256sum`の生成と、以前の出力を検証するための`--check`オプションが記載されています([sha256sum manual](https://manpages.ubuntu.com/manpages/noble/man1/sha256sum.1.html))。

```bash ( set -euo pipefail set -C cd "/home/example/Diary" find . -type f -print0 | LC_ALL=C sort -z > "/home/example/diary-inventory.nul" xargs -0 -r sha256sum < "/home/example/diary-inventory.nul" > "/home/example/diary-source.sha256" test -s "/home/example/diary-source.sha256" ) ```

このサブシェルは、ディレクトリの変更やパイプラインが失敗した場合に停止し、既存の記録ファイルの上書きを拒否し、空のチェックサムマニフェストを拒絶します。エラーが報告された場合は、不完全な出力をベースラインとして使用しないでください。目録にはNUL区切り文字を使用しているため、改行を含むファイル名も区別されたままになります。どちらの記録も選択したフォルダの外に残ります。信頼する前に日記のエクスポートと照合してソースセットを確認してください。作成前に除外されていた添付ファイルをマニフェストが検知することはできません。

セクション 3

ベースラインを保護しファイルをコピーする

マニフェストと目録は、作業用のソースおよびオフラインバックアップの両方から隔離された場所に保存してください。偶発的な編集から保護し、可能であれば保護された2つ目のコピーを保持します。チェックサム比較は、ベースラインを信頼し保存する理由がある場合にのみ、参照チェックとしての価値を持ちます。同様にデジタル保存の指針でも、同一性(fixity)情報は記録され監査に使用されるものとして扱われます。米国立公文書記録管理局(NARA)は、そのデジタル保存プログラムにおいて、同一性の記録、ファイル操作の追跡、マニフェストやログの作成について説明しています([National Archives digital preservation](https://www.archives.gov/preservation/digital-preservation/about))。

通常使用しているファイルコピー方法で、選択した日記フォルダをバックアップドライブにコピーします。チェックを行っていないときは、バックアップを接続解除したままにしてください。ここにあるコマンドはコピー自体を実行するものではなく、すでにコピーされたファイルを検証するものです。チェックを行う前にバックアップの編集、名前変更、再構成を行うことは避けてください。パスが変更されると、マニフェストが期待されるファイルを見つけられなくなる可能性があります。

セクション 4

コピーされたバイトデータを検証する

オフラインドライブをマウントし、コピーされた日記フォルダに移動します。ソースで記録されたのと同じSHA-256アルゴリズムと相対パスを使用して、ベースラインマニフェストに対するチェックを実行します。

```bash ( set -euo pipefail cd "/media/example/DiaryBackup/Diary" sha256sum --check --strict "/home/example/diary-source.sha256" ) ```

マニフェストには`./`で始まる相対パスが保存されているため、検証はコピー先の日記フォルダから実行します。`OK`はそのファイルが一致していることを報告します。ファイルの欠落や不一致、不正な形式のチェックサム行、コマンドエラーが発生した場合は調査が必要です。`--ignore-missing`でそれらを隠したり、いくつかの目に見える`OK`行を見てチェック全体が成功したと思い込んだりしないでください。[Ubuntuマニュアル](https://manpages.ubuntu.com/manpages/noble/man1/sha256sum.1.html)にこれらのオプションが記載されています。

このチェックでは、マニフェストに含まれていなかったバックアップ上の追加ファイルは報告されません。余分なファイルや予期しないディレクトリ内容を検出する必要がある場合は、別の手順として、バックアップのファイル目録を保存されているソース目録と比較してください。目録が同一であったとしても、保存しようとしたすべての件が最初の選択に含まれていたかを証明することはできません。

セクション 5

証拠を上書きせずに不一致を調査する

ファイルの不一致が発生した場合は、そのパスを記録し、両方のコピーを変更しないまま保持してください。意図したマニフェストと作業フォルダであることを確認してから、ソースとバックアップを別々に比較します。編集、名前の変更、または不完全なコピーが原因で不一致が生じていないか確認してください。調査中は不一致となったコピーを保存しておきます。自動的に上書きしてしまうと証拠が失われます。

デジタル保存の指針では、同一性が失われたコピーを置き換えるために「正常であることが確認されているコピー」を使用することが説明されていますが、これは別の信頼できるコピーが入手可能であることに依存します([Digital Preservation Coalition](https://www.dpconline.org/handbook/technical-solutions-and-tools/fixity-and-checksums))。個人の日記の場合、それは入手可能な証拠を比較した後にのみ下すべき決断です。チェックサムは差異を検出しますが、ファイルを修復したり、正しいバージョンを選択したりするわけではありません。

セクション 6

限界と実践的な記録

ソースフォルダ、ベースラインの日付、アルゴリズム、マニフェストの場所、および各チェック結果の簡単なローカル記録を残してください。以降のチェックでは、評価対象のバックアップから再作成するのではなく、確立されたベースラインを保持して使用します。意図的な編集や変換を行った後は、新しいバージョンを個別に文書化してください。定期的にファイルを開いて復元チェックを行うことも継続してください。バイト単位の同一性だけでは、日記が引き続き使用可能であるかどうかまでは判断できません。

関連記事

このテーマをさらに見る