なぜならこれバグのため、私のソースファイルの1つの内容が削除されました。たくさん検索してみると、命令で記憶装置にある生データを読み取ることができ、命令で私のdd
ファイルデータが入っているブロックのアドレスもわかりますが、hdparm
私のファイルの内容が削除され、サイズも0なのでhdparm
何も表示されません。
だから、パーティション全体を読み込み、dd
出力をフィルタリングしてgrep
ソースファイルの1行を見つけたので、ソースファイルの内容が私のストレージデバイスにまだ存在すると確信しています。今、いくつかの質問があります。
- ファイルの内容を回復する最適な方法はありますか?
- ファイルを削除した後、回復ツールを使用して回復するのは良い考えですか?
- 私のソースファイルで1行を見つけた後にアドレスを見つける方法はありますか?
- 前のブロックのアドレスを見つける方法はありますか?
grep
必要な行を見つけたら、コマンドに(たとえば)1000行を印刷するように強制する方法はありますか?- ファイルがディレクトリにどのように保存されるのかわかりません。ディレクトリに物理的な境界がありますか?私は、そのディレクトリのすべての内容を読むためにディレクトリの開始アドレスと終了アドレスを見つけることができますか? (フォルダ全体を読みたいです
src
。)
基本的に私のフィールドをどのように戻すことができますか?
メモ:
- 私はLinuxを使用しています。
- 私のパーティションのファイルシステムはex4です。
- 私の記憶装置はSSDです。
ありがとうございます。
答え1
非常に簡単に:
複雑で、ファイルシステムによって異なります。たとえば、次のように使用できます。デバッグファイルext2、ext3、またはext4ファイルシステムを見てください。ファイルシステムの仕組みを読んで、inodeとログを理解してください。
ソースファイル内の特定の行を見つけたら、それを使用してブロックを識別できます。これは、inodeまたはジャーナルエントリを識別するのに役立ちます。
これらすべてがどのように機能するかを理解するには、少なくとも数日間読んで、理解し、実験するために投資する準備をします。また、ハードドライブを完全にバックアップしてください。今、バックアップを作成するまでハードドライブを使用しないでください。または、ファイル通知がまだ上書きされていない場合は上書きされる可能性があります。
将来的には、ソースファイルのバージョン管理を使用することをお勧めします。これにより、VSCodeのバグによって一部のファイルが失われるのは大きな問題ではありません。最悪のシナリオは、最後のコミット以降に変更を再実行する必要があることです。
答え2
コンピュータのクラッシュ後に削除されたファイルを完全に回復できましたext4magic。
これは印象的で非常に強力なツールですが、非常に技術的です。しかし、上記のウェブサイトはext4ファイルシステムに関する知識の報告です。
私はこれをずっと前にしましたが、正確に何をしたか覚えていません(関連するものや-r
オプションだけを覚えています)。しかし、上記のリンクから始めるのは良い例です。-m
-I
使用されるシーン同じウェブサイトから。
注:ウェブサイトの英語は時々あまりにも似ているので、英語が母国語ではない人として依存する必要があるかもしれません。ディープエルより理解しやすい翻訳のために、オリジナルのドイツ語のテキストを翻訳してください。しかし、あなたの母国語が英語でもドイツ語でも、あなたは行くのに良い場所にいます。これは、開発者がアプリケーションを開発し、すべての情報を収集するために行った印象的な作業を減らすことはなく、この文書を自分の能力を最大限に発揮するための努力を減らすことはありません!