rm *を実行して、今削除されたファイルをどのように回復できますか? [コピー]

rm *を実行して、今削除されたファイルをどのように回復できますか? [コピー]

多くのcプログラムファイルが生成された現在のディレクトリで誤ってrm *を実行しました。私は朝からあれこれ仕事をしてきました。これで、朝にファイルを作成するのに時間を費やすことはできません。復元する方法を教えてください。リサイクルごみ箱にもありません!

ベストアンサー1

実行中のプログラムで削除されたファイルがまだ開いている場合は、そのファイル内のファイル記述子を開いてファイルを回復できます/proc/[pid]/fd/[num]。このような状況であるかどうかを確認するには、以下を試してください。

$ lsof | grep "/path/to/file"

上記が次の形式で出力される場合:

progname 5383 user 22r REG 8,1 16791251 265368 /path/to/file               

2番目の列のPIDと4番目の列のファイル記述子番号を確認してください。この情報を使用して、次のコマンドを実行してファイルを回復できます。

$ cp /proc/5383/fd/22 /path/to/restored/file

:このファイルが見つからない場合は、lsofそのファイルを含む読み取り専用ファイルシステムをすぐに再マウントする必要があります。

$ mount -o remount,ro /dev/[partition]

または、ファイルシステムを完全にアンマウントします。

$ umount /dev/[partition]

その理由は、ファイルのリンクが解放され、ファイルへのハードリンクが残っていない場合は、デフォルトのファイルシステムが削除されたファイルに以前に割り当てられたブロックを解放でき、その時点でそのブロックが削除される可能性があるためです。別のファイルに割り当て、その内容を上書きします。したがって、回復が発生した場合は、ファイルシステムへの追加の書き込みを停止することが非常に重要です。ファイルシステムがルートファイルシステムであるか、他の理由で読み取り専用にするかマウント解除できない場合は、システムをシャットダウンして(可能であれば)、ターゲットファイルを読み取ることができるライブ環境でシステムリカバリを再開する必要があります。 - ただ。

ファイルシステムへの書き込みをブロックした後、すぐに実際の回復を試みる必要はありません。安全のために、次の場所で物理復元を実行するためにファイルシステムをバックアップできます。

$ dd bs=4M if=/dev/[partition] of=/path/to/backup

次の手順はファイルシステムの種類によって異なります。一般的なUbuntuインストールを想定すると、ext3またはext4ファイルシステムがある可能性があります。この場合、回復を試すことができますextundelete。マウントされていない(または読み取り専用でマウントされている)場合は、バックアップまたは元のデバイスから安全に回復を試みることができます。アクティブなファイルシステムから復元しようとしないでください。。これにより、ファイルシステムが一貫性のない状態になる可能性が高くなります。

extundelete現在のディレクトリという名前のサブディレクトリにあるすべてのファイルを復元しようとしますRECOVERED_FILES。バックアップから削除されたすべてのファイルを復元する一般的な使用法は次のとおりです。

以前のバージョンの場合:

$ extundelete /path/to/backup --restore-all 

最新バージョン(例:0.2.4)の場合は、復元したいデバイスをマウントしないでください(Ryan Lueに感謝します)。

$ extundelete /dev/<device-file> --restore-all

--restore-all--restore-file <path>代わりに、または同じオプションを試すことができます。--restore-directory <path>

おすすめ記事