アンデリートとは、ファイル削除によってファイルシステムから削除されたコンピュータファイルを復元する機能です。削除されたデータは多くのファイルシステムで復元できますが、すべてのファイルシステムがアンデリート機能を備えているわけではありません。アンデリート機能のないデータの復元は、通常、アンデリートではなくデータリカバリと呼ばれます。アンデリートは、ユーザーが誤ってデータを失うのを防ぐのに役立ちますが、削除されたファイルがアクセス可能なままになっていることにユーザーが気付かない可能性があるため、コンピュータのセキュリティリスクをもたらす可能性があります。
すべてのファイルシステムやオペレーティングシステムが削除の取り消しをサポートしているわけではありません。削除の取り消しはすべてのFATファイルシステムで可能であり、1991年のMS-DOS 5.0 [ 1 ] [ 2 ]およびDR DOS 6.0以降では削除の取り消しユーティリティが提供されています。最近のUNIXファイルシステムのほとんどではサポートされていませんが、AdvFSは注目すべき例外です。ext2ファイルシステムには、ファイルの削除の取り消しを可能にするe2undel [ 3 ]というアドオンプログラムがあります。類似のext3ファイルシステムは削除の取り消しを正式にはサポートしていませんが、ext4magic [ 4 ] extundelete [ 5 ] PhotoRecおよびext3grep [ 6 ]などのユーティリティがext3ボリュームでの削除の取り消しを自動化するために作成されました。[ 7 ] Undeleteはext4で提案されましたが、まだ実装されていません。[ 8 ]しかし、2006年12月4日にゴミ箱機能がパッチとして公開されました。[ 9 ]ゴミ箱機能は、ext2/3/4およびReiserファイルシステムの削除取り消し属性を使用します。[ 10 ]
Norton UNERASE は、1982 年のNorton Utilitiesバージョン 1.0の重要なコンポーネントでした。
Microsoft は、 MS-DOSバージョン 5.0 から 6.22 に同様の UNDELETE プログラムを組み込んでいましたが、それ以降の FAT を使用するオペレーティング システムでは代わりに ごみ箱のアプローチを適用しました。
DR DOS 6.0以降はUNDELETEもサポートしていますが、オプションでFATスナップショットユーティリティDISKMAPと常駐削除追跡コンポーネントDELWATCHを利用した追加保護機能も提供しています。DELWATCHは、削除されたファイルの日時スタンプをアクティブに維持し、ディスク容量が不足しない限り、削除されたファイルの内容が上書きされるのを防ぎます。DELWATCHは、ファイルサーバー上のリモートファイルの削除解除もサポートしています。Novell DOS 7以降、カーネルは削除されたファイルのディレクトリエントリの先頭文字を保存し、削除解除ツールによる元の名前の復元を支援します。
PTS-DOSは同じ機能を提供しており、SAVENAME CONFIG.SYSディレクティブで設定可能です。
UNDELETEのFreeDOS版はEric Auerによって開発され、GPLライセンスで提供されています。[ 11 ]
グラフィカルユーザー環境では、削除の取り消しに異なるアプローチが採用されることが多く、削除するファイル用の「保留領域」が使用されます。不要なファイルはこの保留領域に移動され、保留領域内のすべてのファイルは定期的に、またはユーザーが要求したときに削除されます。このアプローチは、Macintoshオペレーティングシステムのゴミ箱やMicrosoft Windowsのごみ箱で使用されています。これは、 LocoScriptで使用されるlimboグループなど、以前のシステムで採用されていたアプローチの自然な流れです。[ 12 ]このアプローチでは、ファイルシステムに書き込まれている他のファイルによって削除されたファイルがすぐに混乱するリスクがなく、予測可能なスケジュールで、または手動による介入によってのみ、永久的な削除が行われます。
Norton GoBack(旧Roxio GoBack )などのプログラムでは、ハードディスクの一部の領域をファイル変更操作の記録用として確保し、後で元に戻せるようにする別のアプローチが提供されています。このプロセスは、削除されたファイルの復元において、後述する削除取り消し操作よりもはるかに安全です。
同様に、「スナップショット」をサポートするファイルシステム(ZFSやbtrfsなど)を使用すると、ファイルシステム全体のスナップショットを定期的に(たとえば 1 時間ごとに)作成できるため、以前のスナップショットからファイルを回復できます。
削除の復元は万全ではありません。一般的に、復元を試みるのが早ければ早いほど、成功する可能性が高くなります。これは、システムの使用頻度が高くなるほど、ドライブに書き込まれるデータが増え、削除された領域に割り当てられる可能性が高くなるためです。また、ファイルシステムの種類によっては、削除されたファイルの断片化によって復元の可能性が低くなる場合もあります(下記参照)。断片化されたファイルは、連続した領域ではなく、ディスク上の複数の領域に散在しています。
削除されたファイルの復元方法は、削除されたファイルが保存されていたファイルシステムによって異なります。HFSなどの一部のファイルシステムでは、削除されたファイルに関する情報が保持されないため(通常は存在しない追加ソフトウェアによる情報を除きます)、復元機能を提供できません。ただし、FATファイルシステムなど、一部のファイルシステムでは、削除されたファイルの痕跡がすべて消去されるわけではありません。
FATファイルシステムを使用してファイルを「削除」すると、ディレクトリエントリはファイル名の最初の文字を除いてほとんど変更されず、「削除」されたファイル名の大部分、タイムスタンプ、ファイル長、そして最も重要なディスク上の物理的な位置が保持されます。ただし、ファイルが占有していたディスククラスタのリストはファイルアロケーションテーブルから消去され、それらのセクターはその後作成または変更された他のファイルで使用可能になります。FAT32の場合は、ファイル開始クラスタ値の上位16ビットを保持するフィールドも消去されます。
削除取り消し操作を試行する場合、ファイルの回復を正常に行うには、次の条件を満たす必要があります。
通常、以前のシステムで使用されるクラスター サイズが大きいことと、FAT32 の論理クラスター アドレスの上位 16 ビットが失われることから、 FAT12およびFAT16では FAT32 ボリュームと比較して、削除されたファイルを回復できる可能性が高くなります。
復元プログラムが上記の要件が満たされていない明確な兆候を検出できない場合、ディレクトリエントリを使用中として復元し、古いディレクトリエントリに記録されたクラスタから始まる連続するすべてのクラスタを、ファイルアロケーションテーブルで使用されているものとしてマークします。その後、復元されたファイルを開き、以前削除されたファイルの完全なデータが含まれていることを確認するのはユーザーの責任です。
したがって、断片化されたファイル(最初のフラグメント以降)の復元は、通常、自動プロセスでは不可能であり、ディスク上の各(未使用)ブロックを手動で検査することによってのみ可能です。これには、ファイルシステムに関する詳細な知識と、復元対象のファイルタイプのバイナリ形式に関する知識が必要となるため、復元の専門家またはフォレンジック専門家によってのみ実行されます。
NTFSは、ファイル情報をマスターファイルテーブル(MFT)と呼ばれる固定サイズのレコード(通常1KB)のセットとして保存します。ファイル名とファイルアロケーション情報はこれらのレコードにカプセル化されており、各ファイルに関する完全な情報を提供します。システムがファイルを削除すると、マスターファイルテーブルのエントリは解放され、リンク解除または再利用されますが、ディスク上には残ります。MFTエントリが再利用または上書きされるまでは、ファイルは簡単に復元できます。データ復旧ソフトウェアは、「失われた」MFTエントリを見つけ出し、そこから失われたファイルに関する完全な情報を導き出すことができます。
ただし、SSD TRIM機能を有効にすると、SSDメモリセルを再利用するために、ファイルの内容が削除直後に破壊される可能性があります。これにより、ファイルの内容の復元は不可能になります(ディスクには名前、日付、ファイルサイズの情報のみが残ります)。
復元の可能性を望ましくない場合は、データ消去ソフトウェアを使用することで、削除されたファイルの痕跡を完全に消去できます。ファイルのデータをディスク上に残し、ディスク領域を再利用可能にマークする一般的なファイル削除とは異なり、データ消去では、そのディスク領域を不可逆的に上書きします。