web-dev-qa-db-ja.com

最前線の回復プログラムを使用するときにファイル名とフォルダ構造を保持する方法は?

Linuxリカバリソフトウェアforemostを実行し、ファイル名とフォルダ構造を保持する必要があります。ご存知かもしれませんが、プログラムは復元されたファイルの名前を数値に変更し、生成したaudit.txtというファイル内のリストにリストします。

このRubyスクリプトは、このすばらしいコミュニティ内の別の質問で見つかりました。そこでは、誰かが私とまったく同じことをforemostで達成しようとしています。誰かが、audit.txtファイルを含むフォルダー内で実行するための簡単な手順を含むRubyスクリプトを含む回答で質問に回答しました。これを試しましたが、何も起こりません。 foremostの実行中および完了後に試しましたが、何も起こりません。以下に示すRubyスクリプトを実行しようとすると、端末出力が表示されません。

File.read("audit.txt").scan(/-{4,}\n(File: .*?\n.*?)(?=-{4,})/m).flatten.map{|z| 
   f1=z.scan(/File: (.*?)\n/).flatten[0];
   f2=z.scan(/[0-9]+:\t(.*?) \t/m).flatten;
   extension=File.extname(f1);

   [
    f1,
    f2.find{|q| File.extname(q)==extension}
   ]
}.each{|k,v| 
  extension=File.extname(k);
  dirname=extension.sub(".","")
  File.rename("#{dirname}/#{v}","#{dirname}/#{k}")
}

プログラムforemostを使用して、ファイル名とフォルダ構造を保持する方法を知っている人はいますか? foremostはファイルを回復できる唯一の回復プログラムのようであり、LinuxとWindblowsの両方で約30以上の異なる回復プログラムを試したため、これを実行できることが非常に重要です。

1
Anonymous

まあ、それはデータ復旧の問題ですよね?

フォルダ構造やファイル名などのメタデータ、そして最も重要なのはどこにあるのか(ファイルサイズ、ディスク上のオフセット、各データセグメントの断片化の場合など)を知っているのはファイルシステムです。

ファイルシステムがkaputであり、生データの切り分けに頼る場合(foremostphotorecなどのツールが行うことです)、ファイル名を保持する方法はありません。

せいぜい、切り分けたデータ内から新しいファイル名を生成できます(JPEGの場合、EXIFデータに基づいて、Zip/TARアーカイブの場合、解凍するとファイル名が内部にあります。コードファイルには、プロジェクト名と作成者に関する役立つヘッダーが含まれている場合があります。など)。

ただし、それ自体に関するメタデータを含まないファイルタイプの場合、ファイルシステム自体のみが認識しているため、ファイル名はありません。

優れたファイルカーバーは、各ファイルが見つかったオフセットを教えてくれます。ファイルシステムメタデータの何かによって、特定のオフセットのファイル名を引き出すことができます(理論的には、ファイルが複数ある場合は、複数存在する可能性があります)。ハードリンクされているか、単に名前が変更され、古いメタデータがディスクに残されていました)。

しかし、そのためには、そのようなメタデータがまだ存在している必要があり、そのようなメタデータを正しく解釈できるようにするには、特定のファイルシステムの内部を理解できる人または何かが必要です。したがって、基本的に、元のフォルダとファイル名の構造を何らかの方法で保持するには、ファイルシステム自体を何らかの方法で修正する必要があります。

そもそもこの情報が含まれていないaudit.txtからそれを引き出すことは確かに不可能です。したがって、ファイル名として使用したいものがaudit.txtに表示されていない限り、そのRubyスクリプトは行き止まりです。ウサギを引き抜くものが必要です。帽子の。

1
frostschutz