誤って削除されたファイルの回復


79

誤ってラップトップからファイルを削除しました。私はFedoraを使用しています。ファイルを回復することは可能ですか?


9
あなたのファイルシステムは何ですか?
echox

回答:


94

すぐにいくつかのユーティリティをインストールしないことをお勧めします。基本的に、ここでの最大の敵はディスク書き込みです。すぐにそれらを避けたいです。

最善の策は、エディターが作成した自動バックアップ(存在する場合)です。そうでない場合、.texファイルに一意の文字列を覚えていれば、grepを使用して次のトリックを試してみます。

$sudo grep -i -a -B100 -A100 'string' /dev/sda1 > file.txt

/dev/sda1ファイルが存在していたデバイスに置き換え、ファイル内'string'の一意の文字列に置き換えます。これには時間がかかる場合があります。しかし基本的に、これはデバイスで文字列を検索し、その行の前後に100行を返し、それをに入れfile.txtます。返される行がさらに必要な場合は、必要に応じてオプション-B-Aオプションを調整してください。余分なゴミが大量に返される場合がありますが、テキストを取り戻すことができるはずです。

幸運を。


8
Linuxに切り替えてから2週間後、本当に必要なテキストドキュメントを殺したとき、誰かが私にこれを見せてくれました。それは私の心を吹き飛ばしました
Michael Mrozek

18
ところで、-B100 -A100同等のものに置き換えることができます-C100(「コンテキスト」のC)。そして-i、可能であれば絶対に使用しませんが-F、代わりに使用します。
rozcietrzewiacz

おそらく驚くことではありません-同じディスクブロックが再利用されていると思います-このメソッドは、誤って上書きしたファイルでは機能せず、誤って削除したわけではありません。
ntc2

はい、ほとんどのファイルシステムでは、ファイルが単に上書きされる場合に同じブロックが再利用されます。いくつかのアプリケーションは、ある意味で一時ファイルを最初に書き込み(これにより別の書き込みになります)、次に古いファイルの上でそのファイルの名前を変更する(ユーザーの視点からのデータを置き換えます)という意味で「回避する」ことに注意してください。これは、さまざまな理由で行われます。これを常に行うストレージシステム(ファイルシステムを含む)は、コピーオンライトと呼ばれます
CVn 14年

/ dev / sda1が必要ですか?? / dev / sda1なしでファイルが存在するディレクターに移動するだけでいいですか?
coolcool1994

22

それは可能です、それはただ面倒になるでしょう。

更新:この方法を試す前に、Stevenの回答をご覧ください。

testdiskパッケージ、大量のディスクスペース、および多くの時間が必要になります。

TestDiskの一部であるPhotoRecは、ほぼすべてのディスクからファイルを回復できます。PhotoRecはファイルの検索をサポートしてい.texます。


まず、実行してtestdiskをインストールします

yum install testdisk

注:復元したファイルを保存できる別のドライブに多くの空き領域が必要になります。

ディスクphotorecの空き領域で実行することにより、ディスク上のすべての削除されたファイルを回復します。

sudo photorec

そして指示に従います...(ファイルを回復元のディスクに保存しないでください)

プロセスが完了すると、すべての復元されたファイルが1つのディレクトリに置かれ、実行する必要があります。

find -name '*.tex' > filelist

これにより、失われた可能性のあるファイルのリストが出力されます。ファイル名が失われるため、それらすべてをチェックする必要があります。


11
photorecは優れたユーティリティです。インストール中に発生するディスク書き込みについて心配するだけです。とにかく、外部メディアから実行できるスタンドアロンの実行可能ファイルとしてこれを取得する方法はありますか?
スティーブンD

1
はい、あなたはとても正しいです。スタンドアロンの実行可能ファイルについては知りませんが、ライブCDを使用してみることができますか?
ステファン

2
Photorecで復元されたファイルを削減するには、3番目の画面で[File Opt]を選択します。リストから、回復するファイルタイプまたは回復しないファイルタイプを選択できます。
スティーブバーディン

13

多くのテキストエディターはバックアップファイルを保持します。もしあなたが本当に幸運なら、あなたのファイルの以前のバージョンを含むyourfile.tex〜のようなものがあるかもしれません。


9

他のデータ復旧ツールがあり、最も効果的なのはよりもまずphotorecメス魔法の救助です。(ここで説明した「grep」のトリックは十分はないと想定しています)ここで、それらの使用方法に関するチュートリアルを見つけることができます:

http://www.howtogeek.com/howto/15761/recover-data-like-a-forensics-expert-using-an-ubuntu-live-cd/

https://help.ubuntu.com/community/DataRecovery


4

いずれにせよ、ディスク書き込みを回避するために使用中のデバイスでの作業をできるだけ早く停止し、SystemRescueCdなどの専用のリカバリOSを起動します。それ以上のデータ損失を防ぐため。

これらのディストリビューションには、他の人が言及した多くの回復ツールが含まれており、ほとんどの不足しているものをインストールできます。

念のために、外部USBリーダーには最近のバージョンのSystemRescueCdが入ったCDを常に持っています。


3

注:削除されたデータベースファイル(MySQLサーバー)に関する他のいくつかの質問について、この回答を追加しました。他の同様の状況でも役立つ可能性があると思います(一部のプロセスがファイル記述子を開いたままにしている限り)。

プロセスがまだ実行されている場合は、ファイルを見つけて/proc/<pid>fd/コピーするだけです。SIGSTOP最初にプロセスグループに送信します。ファイルをコピーします。サイドで新しいインスタンスをビルドし、これを停止したままにするかkill -9、ファイルを元の場所に戻します。InnoDBは実行時に自動的に回復しますが、MyISAMがある場合は手動でこれを行う必要があります。


2

sqlite dbファイルを誤って削除してしまった。

ファイルを見つけるために私がしたことは、

/proc/ファイルブラウザで場所を開き、削除されたsqlite dbファイルを検索しました。

検索結果でそのファイルを見つけました。そのファイルをそこから私の古い場所にコピーしました。


0

2年前に同じ問題が発生し、debugfs、photorec、ext3grep、extundeleteなどの多くのプログラムを試しました。ext3grepは、ファイルを回復するのに最適なプログラムでした。構文は非常に簡単です。

ext3grep image.img --restore-all

または:

ext3grep /dev/sda3 --restore-all --after date -d '2015-01-01 00:00:00' '+%s' --before `date -d ‘2015-01-02 00:00:00’ ‘+%s’

このビデオはあなたを助けることができるミニチュートリアルです。


0

バックアップがない場合、サードパーティのディスク回復ツールがデータの一部またはすべてを回復する可能性がありますが、ここでマシンの使用を停止する必要があります。ゴミ箱に入れられたファイルは、システムがそれらを上書きできるようになりました。それらが上書きされると、データを回復するのは法外に費用がかかります。uflysoftデータリカバリ(他のMac OSデータリカバリアプリケーションがあります)を使用して成功しました-リカバリデータを保存するための「リカバリドライブ」(メインドライブまたは清掃元ドライブではない)が必要です。データリカバリディスク(システム)から起動する

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.