ext2/ext3/ext4のファイルはどのように配置されますか?

ext2/ext3/ext4のファイルはどのように配置されますか?

数日前、ext4形式のフラッシュカードのすべてのメタデータを上書きしました。

さて、このようなことが起こったことを推測してみましょう。これは純粋な推測です。別のカードを使用した後、これが発生しました。これで、カードのボリュームラベルは他のカードと同じです。そのため、別のカードを抜いたときに他のカードを同期/マウント解除できなかったと思われます。カードを抜くと、カードリーダーがシステムに正しく通知しないため、次のシステムで同期が生成され、システムは私がカードを変更したことを知らずにメタデータを上書きします。

これが発生した場合、最初に行うことはddを使用して画像を作成することです。 2番目のことは、画像を読み取り専用にすることでした。 3番目に私がしたことは、書き込み可能な画像のコピーを作成することでした。

一部のアイテムは正常に復元しましたが、すべてのアイテムは復元できなかったフォトレックを見つけました。その理由の一つは非破壊的だからだと思います。

修復されたファイルの一部はテキストであるため、photorecはファイル形式に関する最小限の情報を使用すると疑われます。

カードから別のファイルを回復するには、ファイルがext2にどのように配置されているかを知る必要があります。基本原則は、ファイルをチャンクに分割し、このチャンクをセクターに記録し、次のセクターに関する情報を見つける方法を現在のセクターに何らかの方法で記録することです。

私にとって最も必要なのは、次のセクタへのポインタを書く方法に関する情報です。

PS:photorecコードを読んでいますが、読んでいくつかの問題があります。私の問題なのか、コードが見苦しいのかわかりません。

PPS:extファイルシステムがどのように配置されているかに関するいくつかの情報が見つかりましたが、デフォルトのファイルレイアウト情報が見つからないようです。

答え1

PhotoRecはディスク(またはディスクイメージ)をスキャンして、既知のファイル形式に似た連続バイトブロックを取得します(たとえば、セグメントヘッダーでJFIF / EXIF(JPEG)を識別できます)。非常にシンプルだが制限的です。

探偵キットファイルシステムを探索するための素晴らしいツールです。少し注意を払うと(ツールをスクリプト化し、ディスクイメージが間違っている場合は16進編集)、回復に使用できます。

拡張ツールの詳細を理解するには、以下を試してください。ext4magic? (まだこの機能を使ったことはありません。)

Documentation/filesystems/ext2.txt一般的な構造の高レベルの概要は、カーネルソースコードで確認できます。これExt4 Wiki含めて良い情報があります。Ext4ディスクレイアウト詳細は含まれています(主にext [23]にも適用されます)。

しかし、そうです。ファイルのデータは複数のチャンクに分かれています。 ext2では、各ファイルは直接ブロック(データブロックへのポインタ)、間接ブロック(直接ブロックへのポインタを含む)、二重間接ブロック、およびトリプル間接ブロックを含むinodeで表されます。バックリンクがないため、データブロックの兄弟を見つけるには、まずすべてのinodeとブロックポインタをスキャンして所有者を見つける必要があります。

関連情報