1

データのブロック(ファイルシステムがドライブ全体であると見なす)とファイルシステムのタイプ(fat32、ntfs、ext3)が与えられた場合、そのデータのブロックからファイルを抽出する方法を知りたいと思います。これを行う方法についてのアイデアはありますか?

4

2 に答える 2

2

最終的には次の 2 つのオプションがあります。

  1. 仮想ディスク イメージに含まれるファイル システムをホスト マシンにマウントします。のようなツールlosetupは、これを達成するのに役立ちます。
  2. ユーザー空間のボリュームを突くことができる適切なライブラリを見つけてください。基本的に、プログラムがディレクトリ構造を検査してファイルを抽出できるようにするユーザーモードのファイルシステムドライバーが必要です。fuse-ext2 と ntfs-3g の一部を再利用できる場合があります。

これはすべて、仮想ディスクが単なるフラット イメージ ファイルであり、VMDK や VDI のような特殊なコンテナーではないことを前提としています。そうである場合は、フラット イメージを抽出するか、フラット コンテンツを他のライブラリに提供できるライブラリを見つける必要があります。

于 2011-08-20T08:02:15.377 に答える
0

を使用して、ある時点にマウントします

mount image /mount/point -o loop,ro

その中のファイルにアクセスします。その後、再度アンマウントできます。

しかし、これが C や C++ と何の関係があるのか​​わかりません。

于 2011-08-20T08:01:38.933 に答える