2010-06-08 02:00:57 +0000 2010-06-08 02:00:57 +0000
65
65

Linuxで削除したファイルを復元する方法はありますか?

誤って削除したくないファイルにrmを使ってしまいました。Linuxで元に戻す方法はありますか?

回答 (15)

51
51
51
2010-06-08 02:04:42 +0000

以下はテキストファイルを回復するための一般的な手順です。最初にシステムが単一のユーザー モードでダウンしていることをユーザーに告げるのに壁コマンドを使用して下さい:

  1. 次に単一のユーザーモードにシステムを取るのにinit 1コマンドを使用して下さい:

  2. ファイルを回復するためにgrep(伝統的なUNIXの方法)を使用して

  3. 次は vi を使用して file.txt を見てください。

13
13
13
2010-07-09 06:27:42 +0000
  • それが非常に重要なだけならば、ディスクを読み取り専用にマウントし、ddを使ってパーティション全体をファイルにコピーし、その中のファイルを探してみてください(grepやエディタを使って)。
9
9
9
2010-07-09 06:29:12 +0000

ファイルシステムがext3 の場合は、ext3grep を使用してください。

8
8
8
2010-06-08 03:33:59 +0000
5
5
5
2011-07-25 01:23:05 +0000

私は数年前にこれを行いました。 その後、パーティションを再びマウントして、作成したイメージの中で削除されたファイルを検索するように、いつものようにビジネスを続けることができます。イメージは「空」のスペースを全て必要とするので、おそらく非常に大きくなるでしょうから、それを保存するのは現実的な問題かもしれません。

その後は、パーティションの内容のスープのどこかにあると予想されるテキストスニペットの後につまらない検索をするだけでした。例えば、.tex-files を見つけるために

dd if=/dev/hda1 of=backup_image.ext3

を実行すると、"subsection" というフレーズの周りに大きなコンテキストが印刷され、その出力が手動で検索されるようにファイルに保存されました。

また、コマンド strings は出力からバイナリのゴミを除去するのに役立ちましたが、私の記憶が正しければ、それはまた、問題になる可能性がありますすべての改行を除去しました。

同じようにバイナリファイルを探すには、あるファイルの特徴的なヘッダのようなものを見つけることに成功するかもしれませんが、それはかなり大きな冒険になると想像しています。


簡単な技術的な注意点:ディスクリカバリーとExt3/4には技術的な問題があります。説明すると長くなりますが、簡単に(しかも不十分に)。Ext3/4は、それらを削除するときにファイルがディスク上にある場所をOSに伝える「マーカー」を削除します。ファイルはスクラブされませんが、誰もディスク上のどこから始まってどこで終わるのかわからなくなり、時には複数の場所で断片化されてしまうこともあります。他のファイルシステムの中には、ファイルの状態を「削除された」に設定するだけで、位置情報を保持するものもあります。その後、削除解除は、このフラグ(あまりにも多くの活動が発生していない場合、彼らはまだ利用可能であるべきである)とファイルポインタを見て、その内容が上書きされていないことを願っているよりも難しくはありません。私の見解では、修辞的なものです。頻繁なバックアップは、これらのすべての問題の答えです。自動化された*バックアップシステムなしで重要なデータは、IMHOが起こるのを待っている事故です。私は`foo\ fooから~`を削除しようと思っていました。私は

grep --binary-files=text -1000 "subsection" < backup_image.ext3 > latexfiles

を書いた、悲しいことに、foo が明らかにシンボリックリンクであり、これに一致する唯一のファイルであったので、シェルは

rm -r foo<Tab>*

に作った私は Enter を押し、せいぜい 2 秒を取らなければならなかったはずのコマンドを見てそこに座っていた。私はEnterキーを押してそこに座ってコマンドを見ていましたが、それはせいぜい1秒かかるはずでした。~私のrmの半分は削除されましたが、私は上記のようなgreppingといくつかの多かれ少なかれ現在のバックアップを介して価値のあるすべてを取り戻すことができました。私は、個人的に非常に価値のある(読み:時間がかかる)非常に最近の測定データをディスク上に持っていましたが、それは失われましたが、私は4倍のバックアップを作成していました。1つはここで消え、もう1つは学校でのシステム障害によるもので、もう1つは破損していました。もし、Ctrl+cが書き込み保護されたファイルに引っかかっていなければ、4つ目のフォルダは、私の~ではsshfs経由でマウントされていたので、食べられていたでしょう。それ以来、その手のことにはかなり気をつけるようになりました。

5
5
5
2010-07-09 13:41:50 +0000
  • 唯一の正解は「バックアップからファイルを復元する」です。誰もがバックアップを持っていなければなりません。本当に重要なファイルの場合は、2つのバックアップを持つべきです。あなたは持っていませんか? そうですか、残念ですね、これは教訓です( 厳しい言い方で申し訳ありませんが、私はデータストレージの仕事をしていて、人々は重要なデータを失うまでバックアップを取らないのです。だからはい、あなたは愚かに見えますが、他のほとんどの人もそうです。ファイルが入っていたファイルシステムの使用を RIGHT NOW で停止しなければなりません。今すぐ.

  • ファイルが一般的な形式(Wordファイル、JPGなど)の場合は、 Photorec を使用してください。Photorecはほとんどの一般的なファイルフォーマットを取得することができます。

  • 以前に提案された “ext3 undelete "メソッドを試すことができますが、コマンドラインに慣れている必要があります。私はかつていくつかの特別なファイルのためにドライブをスキャンするためのPerlプログラムを書いたことがありますが、それはかなりうまくいきました。

5
5
5
2010-07-09 06:37:16 +0000

標準の rm であれば、バックアップがあるといいですね。削除されたファイルを復元する手順は、可能であればファイルシステムごとに異なります。Linuxには内蔵の “ごみ箱 "がありません。一度ファイルを削除すると、それはすべて消えてしまいます。あなたがそれを行った後、どちらか別のコンピュータにそれを置く, ライブCD(あなたがそれをマウントしない限り、ドライブをマウントしないことを確認してください)をオフに再起動, またはハードドライブを削除し、データ復旧の専門家にそれを取る.

4
4
4
2011-04-19 07:59:56 +0000

あなたの期待を低く設定します。

私は少しのリカバリーをしたことがありますが、私が見つけた最高のツールは、特定のフォーマット向けに設計されていることが多かったです。例えば、何万枚ものjpegを復元したいときには、「photorec」が便利でした。その無料、彼らの広告によって支払うことに騙されて取得しないでください)

あなたが失ったものが重要である場合は、一日の終わりに、ドライブをオフラインにして、それに書き込みを停止します。あなたが戻ってあなたのデータを取得するまで、またはそれはそれだけの価値があることを停止するまで、あなたが見つけることができる回復ソフトウェアのすべての部分を使用しています。それが本当に重要ならば、高い価格で専門家にそれを送る。

あなたが前にツールとの運を持っていたならば、あなたはそれをよく知っているように見て、それを再度試してみてください。一日の終わりに、彼らはディスクに書き込むべきではありませんので、あなたが動作する1つを見つけるまで、ソフトウェアを使用することができます。

2
2
2
2014-05-24 20:43:18 +0000

VLCやLibreOfficeのような、現在ファイルを読み込んでいるアプリケーションを開いている場合、 この素晴らしいL&U.SOの回答 がこの混乱から私を助けてくれました。ここに、同じことをするための 別の方法 があります。

一般的な考え方は、/proc/PID/fd/DESCRIPTOR_NUMBERでリンクを見つけて、それを元の場所にコピーし直すことです。PIDを見つけるためにps aux | grep APP_NAMEを使用して、それから、適切なDESCRIPTOR_NUMBERを見つけるためにls -la /proc/PID/fd/を使用してください。

1
1
1
2018-07-09 18:57:14 +0000

他のユーザーに上書きされていないのであればラッキーですね。私は誤ってcppのソースファイルを削除してしまい、 foremost というツールを使って、ディスクから60Gのcppのデブリを復元しました。最終的には、これらのデブリを1つ1つ組み立ててファイルを復元しました。特定のファイルタイプの特定のパターンをスキャンして、ディスク上のすべてのinodeをトラバースしてファイルを復元してくれると思います。ぜひ試してみてください。

1
1
1
2011-07-24 15:23:23 +0000

正しい」答えは、確実に回復する方法がないと仮定することであり、代わりにバックアップまたはクローン化されたシステムまたは再インストールから復元します。

1
1
1
2013-07-30 07:55:30 +0000

ここでは、あなたのための偉大なドキュメントです。あなたはそこに実用的なヒントの負荷を見つけるでしょう。

ところで、人々の2つのグループがあります:

1.バックアップを行う人 2.バックアップを行う人

おめでとうございます、あなたはちょうどグループ2に自分自身を昇格しました。)

0
0
0
2014-07-17 12:52:30 +0000

誤ってLinuxからファイルを削除してしまった場合は、次のコマンドを使用することができます:

find /root -name "search text" -type f -exec mv {} "/home" \;

search textの代わりにファイル名を入力し、/homeの代わりに復元したいディレクトリを指定することができます。

0
0
0
2018-05-15 01:46:17 +0000

このスクリプトを試してみてください。rmの代わりに使用するためのもので、今は広く使用しています。 com/nateshmbhat/safe-rm ](https://github.com/nateshmbhat/safe-rm)

Features :

  • rm の代わりに使用することを意図しています
  • rm が受け取ることができるすべての引数を処理します
  • すでにゴミ箱に入っているファイルとのファイル名の衝突を処理します
  • パーミッションの問題を自動的に処理します
  • rm が他のスクリプトや間接的に呼び出された場合、システムの ‘rm’ コマンドが自動的に使用されます
  • rm で発生したような適切なエラーメッセージを表示します。
-2
-2
-2
2015-10-19 12:27:52 +0000

私は先週同じ問題を抱えていたので、debugfs、photorec、ext3grep、extundeleteのような多くのプログラムを試してみました。sintaxは非常に簡単です:

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’

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

関連する質問

6
10
5
37
11