web-dev-qa-db-ja.com

Linuxで別のファイルで上書きされたファイルを回復するにはどうすればよいですか?

私はこれをコマンドラインで行いました(Ubuntu 12.04、ext4)

mv some_arbit_file required_file

Required_fileを回復する方法はありますか?私はこれに多くの仕事をしました。普段はファイルをバックアップしていますが、今回は忘れてしまいました。

4
Rakesh

一部の人々は提案します

$ su
# umount /home
# grep -a -A800 -B800 'soldier' /dev/sda2 | strings > recovered_file

ファイルが/ homeファイルシステムにあった場合、 'homeは/ dev // sda2にマウントされ、solderは上書きされたファイルに固有である可能性が高いキーフレーズです。

restore_fileは大きくなる可能性がありますが、上書きされたファイルのテキストが含まれる可能性があります。上書きされたファイルが主にテキストではなかった場合、このアプローチは役に立ちません。

オペレーティングシステムがファイルを含むファイルシステムにさらに書き込みを行わないように対策を講じることが重要です。良い方法は、ライブCDから起動することです。ファイルシステムをアンマウントするか、読み取り専用で再マウントできるのであれば、それは非常に良いことです。


http://carlo17.home.xs4all.nl/howto/undelete_ext3.html を読むと面白いかもしれませんが、それは上書きされたファイルよりも削除されたファイルに当てはまります。ただし、以前に上書きしたファイルを編集した場合は、編集プロセスの自然な一部として、エディターがいくつかの削除されたコピーをディスクに残した可能性があります。

4
RedGrittyBrick

対応するパーティションの使用を停止/マウント解除します。

このスレッド を検討してください。ここで extundelete が言及されています。また、 photorecforemost 、および scalpel が存在します。これらは、ファイルの回復に役立つ可能性のある非常に強力なファイルカーバーです(たとえば、古いバージョンを見つけるか、まだ上書きされていないファイルのバックアップ)。

これらのツールはすべて、Ubuntu aptリポジトリで利用できます(photorecにはtestdiskパッケージが付属しています)。

データを回復するパーティションとは別のパーティションに回復結果を保存することを忘れないでください。

ただし、ファイルが実際に上書きされた場合(つまり、古いファイルが保存されていたハードディスクの同じ領域が新しいファイルの保存に使用されている場合) )その場合、ファイルを回復する可能性はありません(注:これはハードディスクにのみ有効です-ssdsは別の方法でファイルを保存(および「上書き」)します)。運が良ければ、上書きされなかったファイルの部分しか回復できない可能性があります。新しいファイルが古いファイルよりも小さかった場合。

1
speakr

Required_fileが実際にこのアクションによって上書きされたとは思いません。 「消える」ために、対応するiノードから「リンク解除」されました。 some_arbit_fileはその場所を変更しませんでした。以前はrequired_fileを指していましたが、現在はここを指している「ポインター」でした。

そのような場合に役立つツールがあります。 Sleuthkit または Testdisk 。しかし、手作業が必要です。どこから始めればよいかわからない場合は、それほど簡単ではありません。これらのツールを使用してプロセスを自動化する ext3undel というスクリプト、またはスタンドアロンの extundelete ユーティリティもあります。

何をしようとしても、影響を受けるディスクパーティションにまったく触れないことで、失われたファイルを回復できる可能性が高まります。別のマシンですべてのアクションを実行するのが最善であり、回復のためであっても、影響を受けるドライブを読み取り専用でマウントすると、チャンスが増えます。別のマシンがない場合は、ライブCDを試すことができます(影響を受けるディスクをここでも書き込みモードでマウントしないようにしてください!)。 LiveCDであっても、メモリにソフトウェアをインストールできるため、上記のツールを取得して実行できます。復元したファイルを保存するための追加のメディア(メモリースティック、SDカード、外付けドライブなど)を手元に用意し、そこからプロセスを実行します。

0
Izzy