削除したファイルをLinuxで復元するチュートリアル
ユーザが意外にも必要なファイルを削除した場合、ほとんどの場合、このファイルを再復元または再構築する簡単な方法はありません。しかし、幸いなことに、ファイルはいくつかの方法で復元できます。ユーザーがファイルを削除すると、ファイルは消えず、しばらく隠されています。
ここでは、どのように動作しているかを説明します。ファイルシステムには、ハードディスク、MicroSDカード、フラッシュメモリドライブなどのストレージユニット内のファイルの位置を追跡するファイル割り当てテーブルと呼ばれるものがあります。ファイルが削除されると、ファイルシステムは、ファイル割り当てテーブルで次の2つのタスクの1つを実行します。このファイルのファイル割り当てテーブルのエントリは、「フリースペース」またはファイル割り当てテーブルのファイルのエントリを削除し、対応するスペースをフリースペースとしてマークします。新しいファイルがストレージユニットに配置される必要がある場合、オペレーティングシステムはこのファイルを空席としてマークされた場所に配置します。この空席に新しいファイルが書き込まれると、削除されたファイルは完全に消えてしまいます。削除したファイルを復元する必要がある場合、ユーザーはファイルに対応する「空席」が占有されている場合、このファイルは永遠に復元できないため、ファイルを操作することはできません。
リカバリソフトウェアはどのように動作しますか?
ほとんどのファイルシステム(ファイルを削除するとき)は、タグ空間が空白であるだけです。これらのファイルシステムの下で、リカバリソフトウェアはファイル割り当てテーブルというファイルを表示し、削除されたファイルを別のストレージユニットにコピーします。ファイルがリカバリが必要な他の削除されたメモリセルにコピーされると、ユーザはその削除されたファイルを失う可能性があります。
ファイルシステムでは、ファイル割り当てテーブルのエントリが消去されることはめったにありません。もしファイルシステムが本当にそうすれば、これはリカバリソフトウェアがファイルをリカバリしていることです。リカバリソフトウェアは、ストレージユニットでファイルヘッダをスキャンし、すべてのファイルに特殊な符号化文字列があり、ファイルの一番前にあり、魔法数字とも呼ばれています。たとえば、コンパイルされたJAVAファイルの魔法数字は16進数で「CAFEBABE」です。したがって、このタイプのファイルを復元する場合、リカバリソフトウェアは「CAFEBABE」を検索し、別のストレージユニットにファイルをコピーします。一部のリカバリソフトウェアでは、特定のファイルタイプを検索できます。ユーザーがPDFファイルを復元したい場合、復元ソフトウェアは16進数の魔法数字「25500446」を検索します。これはASCIIコードの「%PDF」です。リカバリソフトウェアは、すべての魔法の数字を検索し、ユーザーは削除したファイルをリカバリするかを選択できます。デバイスの場所:
続行する前に、次の情報は、リカバリソフトウェアに正しいストレージユニットを見つけるように導くのに役立ちます。すべてのデバイスは/dev/ディレクトリにマウントされます。オペレーティングシステムは、管理者が各パーティションまたはデバイスの名前を与えるのではなく、各デバイスに名前を付ける規則に従います。
1番目のSATA HDDの2番目のパーティションの名前はsda 2になります。名前の最初のアルファベットはストレージタイプを示しています。ここではSATAを指しますが、アルファベット「s」はSCSI、FireWire(火線ポート)、USBを指す場合もあります。2番目のアルファベット「d」はdisk(ハードディスク)を指します。3番目のアルファベットはデバイス序数を指し、すなわちアルファベット「a」は1番目のSATAを指し、「b」は2番目を指す。最後の数字はパーティションを表します。パーティション番号のないデバイス名は、設定したすべてのパーティションを表します。上記の例では、対応する名前はsdaです。名前の最初のアルファベットは、PATAハードディスク(IDE)に対応する「h」である可能性もあります。TestDiskによるリカバリ:
各リカバリソフトウェアには、異なる機能、特徴、およびサポートされている異なるファイルシステムがあります。以下に、TestDiskを使用してさまざまなファイルシステムでファイルをリカバリするためのガイドラインを示します。
FAT 16、FAT 32、exFAT(FAT 64)、NTFSおよびext 2/3/4:
root権限を使用して端末からTestDiskを開くには、sudo testdiskコマンドを入力します。
Intel-このようなパーティションテーブルは、Windowsシステムや多くのLinuxシステムで非常に一般的であり、MBRパーティションテーブルとも呼ばれることが多い。EFI GPT−このタイプのパーティションテーブルは、Linuxシステムで一般的に使用される。Linuxシステムでは、論理パーティションまたは拡張パーティションの概念がGPTパーティションテーブルに適用されないため、このパーティションテーブルが最も推奨される。これは、各パーティションにLinuxシステムがある場合、1つのLinuxユーザが複数のタイプのLinuxシステムから多重起動できることを意味する。もちろんGPTパーティションテーブルの使用には他の利点があるが,それらは本論文の議論の範囲を超えている。
Humax-Humaxパーティションマッピングテーブルは、韓国企業のHumax製デバイスに適用されます。Sun-SunパーティションテーブルはSunシステムに適しています。
Xbox-Xboxは、Xboxパーティションマッピングテーブルを使用するストレージデバイスに適しています。
コードのコピー
reiserfsck --rebuild-tree --scan-whole-partition /dev/DEVICEユーザが意外にファイルを削除し、プログラムによって開かれたと仮定します。ハードディスク(HDD)からファイルが削除されましたが、このプログラムはRAMにあるファイルのコピーを使用しています。幸いなことに、ファイルを復元するには2つの簡単な解決方法があります。
このソフトウェアにテキストエディタなどの保存機能がある場合、ユーザーはファイルを再保存できます。これにより、テキストエディタはファイルをハードディスクに書き込むことができます。lsof -c smplayer | grep mp3
上のコマンドはsmplayerで使用されているすべてのファイルをリストします。このリストはgrepコマンドによってパイプを通じてmp 3を検索します。コマンドの入力は次のようになります。
コードのコピー
次に、次のコマンドを入力して、RAM(Linuxシステム、/proc/RAMにマッピング)からファイルを直接復元し、選択したフォルダにコピーします。ここでcpはコピーコマンドを指し、出力中の数字10037はプロセス数から来ており、出力中の数字169はファイル記述子を指し、「~/Music/」はターゲットディレクトリであり、最後の「music.mp 3」はユーザが復元したいファイルの名前である。