假设我在 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_number
为lost+found/
它的来源。
也就是说,如果a/
和b/
几乎是在同一时间创建的,那么它们在磁盘上的物理位置可能会很接近,因此它们可能会同时损坏。
如果b/
损坏,则其中的文件将被单独放入lost+found/
,并且需要通过 UID/GID 和/或内容来识别它们。