ext2/ext3/ext4 中的文件是如何布局的?

Mou*_*Dog 8 ext4 ext2 data-recovery ext3

几天前,我在 ext4 格式闪存卡上的所有元数据都被覆盖了。

我现在要推测这是如何发生的。这是纯粹的猜测。它发生在我使用不同的卡之后。卡上的卷标现在与另一张卡相同。所以我怀疑我在拔出另一张卡时未能同步/卸载它。当卡被拔出时,读卡器没有正确通知系统,因此下一个系统生成同步,系统不知道我换了卡,它覆盖了元数据。

发生这种情况时我做的第一件事是使用 dd 创建一个图像。我做的第二件事是将图像设为只读。我做的第三件事是制作图像的可写副本。

我发现了 photorec,它设法恢复了一些东西,但不是全部。我认为这样做的原因之一是它是非破坏性的。

由于一些恢复的文件是文本,我怀疑 photorec 使用了关于文件格式的最少信息,如果有的话。

要尝试从卡中恢复任何其他文件,我需要知道文件在 ext2 中的布局。我怀疑基本是文件被分成块,这些块被写入扇区,关于如何找到下一个扇区的信息以某种方式写入当前扇区。

我最需要的是关于如何写入下一个扇区的指针的信息。

PS:我正在阅读 photorec 代码,但在阅读时遇到了一些问题。是我还是代码难看,我不知道。

PPS:我找到了一些关于 ext 文件系统如何布局的信息,但似乎找不到基本的文件布局信息。

eph*_*ent 3

PhotoRec 扫描磁盘(或磁盘映像),搜索看起来像已知文件格式的连续字节块(例如,它可以通过段标头识别 JFIF/EXIF (JPEG))。非常简单但有限。

Sleuth Kit是一个挖掘文件系统的好工具。只要稍加小心(并为其工具编写脚本并在磁盘映像误入歧途时对其进行十六进制编辑),它就可以用于恢复。

如需更深入了解 ext 的工具,请尝试ext4magic?(我还没有需要使用这个。)

Documentation/filesystems/ext2.txt内核源代码中有一般结构的高级概述。Ext4 Wiki有很好的信息,包括包含更多详细信息的Ext4 磁盘布局(主要也适用于 ext[23])。

但是,是的,文件的数据被分成块。在 ext2 中,每个文件都由一个 inode 表示,该 inode 包含直接块(指向数据块的指针)、间接块(包含指向直接块的指针)、双间接块和三重间接块。没有反向链接,因此要找到数据块的同级,您必须首先扫描所有索引节点和块指针以找到其所有者。