上書きされたtarファイルからノード/コンテンツを回復する方法

上書きされたtarファイルからノード/コンテンツを回復する方法

免責事項:私は質問をうまく書くことができず、私の質問は非常に具体的なシナリオです。それで私はこの状況に飛び込みます。

tarfile::todo/main私はファイルシステムを探していましたが、どういうわけか私のローカルFSから2つのコアノード(および)を含むtarファイルをダウンロードしてtarfile::todo/code同じファイルに書き込みました。ダウンローダが何をしているのか気づいたとき、私はすばやく停止してtarファイルを確認しました。そして残念ながら、小さな部分だけが残り、残りは切り取られたことがわかりました。なぜ他のものを書き込む前に既存のファイルをバックアップしなかったのかわからず、session.tarがなぜ私のgitリポジトリにコミットされなかったのかわかりませんが、今ではすべてが消えました.私は非常に慎重なユーザーですが、間違えれば本当に災いです。

extundeleteがここで検索して見つかったファイルを回復できなかった後これ、grepとddを組み合わせて、ハードディスクから直接データを見つけて読み取る方法を提供します。

追加の背景:

  • 私の/home/userディレクトリは別のドライブにマウントされます。/dev/sdb3
  • 今日はファイルの回復を試みた2日目です。
  • 次の段落の出力は今日生成されました。

grep/dd の組み合わせを行った後、次のような結果が得られました。この出力。私のファイルを再インポートするために正確にどのように使用しますか?私はそれをvimスワップファイルにコピーし.file.swp、withを使って復元しようとしましたが、vim -rそれがvimスワップファイルであることを望みましたが、そうではありませんでした。この形式を見たことがないので、それが何を意味するのかわかりません。

私はできます。本物このデータを再インポートしたいと思います。前述したように、これは非常に重要です。それは私のすべての卵を含む文字通りのバスケットです。これを失うと、生産性と組織に苦しむ打撃になります。

答え1

まあ、解決策を見つけたと思います。まず、質問に投稿したリンクから始めましょう。

~からマーク・プロニック

最初の実行:

sudo grep -a -b "[text from deleted file]" /dev/[drive where it was stored]

これにより、かなり多くの出力が生成されます。たとえば、

13813610612: a bunch of text

その番号を取得し、ddと一緒に使用して電話番号から直接インポートします。ハードディスク、ファイルシステムに移動します。

sudo dd if=/dev/[same drive from before] \
        of=./salvaged \
        count=2000 \
        skip=$(expr [number] / 512)

だから私はこの技術を使用するためのスクリプトを書いて、「tarfile」と一致する約100個の1MBファイルを生成しました。

.tarすべてを通常のファイルに保存するという珍しい決定は、ハードドライブのさまざまな場所で同じデータを見つけたので、私を救ったと思います。私は必要なすべてを何度も見つけました。

これで、ギガバイト以上のランダムテキスト/バイナリゴミを並べ替えることができます。ああ。多くのことが必要です。

関連情報