如果运行fsck后将一个目录放入lost+found,它会包含所有原始内容吗?

如果运行fsck后将一个目录放入lost+found,它会包含所有原始内容吗?

假设我在 ext4 文件系统中具有以下目录结构:

a/b/{1..9}

(换句话说,a/b/1、a/b/2、...a/b/9)

假设我正在写 a/b,然后我就断电了。 fsck 运行并找到一些文件(a/b/1、a/b/2 等)并将它们放入lost+found 中。

现在的问题是,放置在lost+found中的所有丢失文件是否都位于同一目录下?因此,例如,如果每个文件 1-9 都丢失了,是否可以保证lost+found 会包含类似以下内容:lost+found/#1234567/*,其中文件夹#1234567 包含所有文件1-9?或者它们是否可以分散到单独的目录中,例如:lost+found/#1234567/1、lost+found/#7654321/2 等?

我这样问是因为我想了解如何系统地恢复丢失的特定文件夹,以及它们是否已经在丢失+找到中分组在一起,或者我是否必须检查丢失+中的每个现有文件找到寻找丢失的碎片。

答案1

当没有目录条目引用索引节点时,索引节点就会被放入lost+found/,因此索引节点没有“名称”。如果父目录(a/在本例中)丢失/损坏(无论是 inode 本身,还是保存其中每个文件/目录的名称到 inode 映射的目录块),那么 inode 可能b/lost+found/与名称一起放入#inode_number。如果b/其本身没有损坏,则所有条目 ( 1..9) 仍将在内部,并且您可以将其重新命名#inode_numberlost+found/它的来源。

也就是说,如果a/b/几乎是在同一时间创建的,那么它们在磁盘上的物理位置可能会很接近,因此它们可能会同时损坏。

如果b/损坏,则其中的文件将被单独放入lost+found/,并且需要通过 UID/GID 和/或内容来识别它们。

相关内容