バックアップ(個人ユーザー向けの場合)を、手間無く確実に行うために、相当時間をかけて研究しました。
日頃、顧客のサポートをしている中で、常に、バックアップをして下さい、と言っています。しかし、それでも、バックアップをしていない人も多いのです。そのため、2025年時点での、実務に有効な方法を次の記事にまとめました。
バックアップ計画
結論は、
ファイルを、常時接続していない外部ストレージ(HDDやSSD)に、バックアップするのは必須
です。
この理由や、その実現方法は、記事を参照してもらうと良いのですが、バックアップの知見を深める中で、技術的な課題が分かりました。ここでは、それらを補足します。
ファイルのコピーに失敗しても、それに気づかない可能性
NTFSのファイルシステムでは、サイズが一致していも、コピーに失敗していて同じでない可能性があります。
画像の例では、同じサイズですが、データは違います(実際に失敗したファイルではなく、バイナリエディタで編集)。
コピーしたファイルを開けないなら、エラーとわかりますが、ファイルを開くことができると、データのどこが変わったか分からないこともあります。
コピーに成功したかを確認するには、例えば、ハッシュ値が一致するのを確認します。
エラーチェックをしながらコピーができるFastCopyの使い方
サイレントデータ破壊(無兆候データ破壊・Silent Data Corruption)
ストレージに保存したデータは、保存した時は正確でも、時間経過とともに壊れる可能性があります。
これは、サイレントデータ破壊の1つです。
- あなたのデータは既に壊れているかもしれない(Silent Data Corruption)
- FastCopyはファイルの変更と破損を区別しますか?
- Bitrot and atomic COWs: Inside “next-gen” filesystems
サイレントデータ破壊に備えたファイルシステムは、次があります。
NTFSのファイルシステムでのバックアップ
NTFSのファイルシステムには、サイレントデータ破壊に対処する仕組みはありません。バックアップにおいて対応するには、2025年時点では、例えば、次の方法が良いように考えます。
- バックアップのために、ファイルをコピーした時に、ハッシュ値の一致を確認。同時に、ハッシュ値を保存。
- バックアップは複数のストレージに行い、複数の同じバックアップを作成。これにより、サイレントデータ破壊があったファイルではなく、正常なファイルから復元できる可能性が高まる。
- バックアップから復元時、保存したハッシュ値に一致するかどうか、復元する前に確認。
これを実現するには、FastCopyでは、例えば、次の設定でファイルをコピーします。
そして、バックアップからファイルを復元する前に、ベリファイ情報検証を実行して、サイレントデータ破壊がないか調べます。
副次ストリーム(代替データストリーム・Alternate Data Stream)について
dirやPowerShellでNTFSの代替データストリーム情報を表示する
留意点
- Windows 11で、ReFSを、USBドライブに接続したストレージでは利用できないようです。
- バックアップのファイルではなく、NTFSのCドライブにあるオリジナルのファイルが、サイレントデータ破壊になったかどうかを確認する良い方法は思いつきません。Windows Serverを利用し、ReFSのドライブにファイルを保存するなら良いでしょうが。
- 開発ドライブは、ReFSなので、良さそうです。しかし、開発者向けなので、一般ユーザーには不向きです。また、「Dev Drive に何を格納すべきですか?」によると、開発用のファイル以外は目的外です。