如果我删除失物招领处怎么办


38

当您创建诸如ext3之类的Linux文件系统时,将创建“ lost + found”目录。根据文件,如果文件由于某种系统崩溃而损坏,则会将其放置在位置。

如果删除此目录,系统崩溃,将会发生什么。如果文件夹被删除,我是否可以使用mkdir lost + found创建新目录,或者是否只有在创建文件系统时才能设置的属性。

Answers:


35

如果缺少fsck,它将重新创建lost + found目录。

在启动时,如果检测到文件系统未完全卸载,则大多数发行版都运行fsck。当fsck创建丢失+找到的目录(如果丢失)时,它将创建该目录,然后将找到的所有内容放入该目录。


15

如果您不能运行fsck,则可以使用以下命令重新创建lost+found目录mklost+found

mklost + found将磁盘块预先分配到lost + found目录,以便在运行e2fsck(8)来恢复文件系统时,它不需要在文件系统中分配块来存储大量未链接的文件。这样可以确保e2fsck在恢复过程中不必在文件系统中分配数据块。


在RHEL 6.4,也fsck没有e2fsck在那里重新创建这对我来说,不管该目录是安装与否。cd <root-dir-of-the-mount> && mklost+found做到了。
LuisAntolínCano 2014年

7

预先存在的lost + found目录的大小足够大,可以包含大量未链接的文件,这对e2fsck减轻了创建目录并将其增长到适当大小的负担。

它仍然会尝试这样做,但是面对损坏的文件系统,这样做可能会更具风险。

用于其他平台上的其他文件系统的非常老的fsck无法创建/ lost + found,也无法对其进行扩展。这是/ lost + found理由的历史。但是当前的理由仅仅是为了简化e2fsck的工作。


4
并不是说他们无法创建lost + found,而是在已经搞砸的文件系统上创建文件/目录是一个坏主意。取而代之的是,您仅预构建一个目录,该目录已经足够大,可以在您尝试清理时在已拧紧的文件系统中存储任何压缩的索引节点的目录条目。
克里斯,

5

如果您没有lost+founde2fsck(我尚未检查其他fsck实现的代码)将为您创建它。但是,您也可以根据需要自己重新创建它。该目录没有什么特别之处(至少不是检查代码)。


2
fsck应该在需要时重新创建lost + found,不是吗?
David Schmitt,2009年

2
谢谢,我检查了e2fsck的代码,确实为您提供了重新创建它的功能。(尽管这不能保证一定会成功--这就是为什么预先创建的lost + found也有用的原因。)整洁!
克里斯·杰斯特·杨

6
@ ChrisJester-Young-您的答案不正确。lost+found是一个特殊目录。它具有预先分配的磁盘块,因此恢复工具无需在恢复过程中分配块。mklost+found之所以存在这样的工具,是因为mkdir无法正确创建它。见linux.die.net/man/8/mklost+found
聚合

2

e2fsck将重新创建lost + found,并且还将销毁任何可能具有相同名称的文件,以确保可以将其创建为目录。

请注意,许多较旧的Unix文件系统要求将Lost + found特别附加到2号索引节点上,因此在大多数情况下,如果目录丢失,则需要重新创建文件系统。e2fsck只是搜索任何可用的索引节点,显然不需要特定的索引节点2,这使恢复比过去容易得多。


1

您可以仅使用mkdir创建该目录。它应该由root拥有,并具有root或wheel组。除此之外,没有什么特别的。如果系统启动时出现电源故障或不正确的关机,则应自动启动fsck。fsck将遍历系统,并尝试恢复找到的任何损坏的文件。它遇到的任何可能损坏的文件都将移到那里。

另一种情况是文件被移动,如果fsck查找到其父inode丢失的文件。如果在存储文件夹inode的特定位置的磁盘上某个块损坏,通常就是这种情况。它将其父节点重新分配为lost + found文件夹。

编辑:我不确定后一种情况是否会重新创建目录。为了安全起见,我将不理会它。我想不出任何理由删除它。没有它,什么都不会发生。


1
确定只可以使用创建mkdir吗?

是的,空间分配不与目录索引节点甚至路径绑定。保留空间分配在某些需要fsck知道的root / kernel特权和特殊访问访问权限的内存上少了一个标志,它只是通过将可能损坏或损坏的文件复制到该内存并创建一个内存来利用该空间。 inode指向新内存的文件。文件操作将在这些文件上正常进行,但是任何更改(例如移动或保存)都会将数据从保留的内存中拉出。
TrueDuality 2013年

1

另外,在Debian 6和Ubuntu 12 LTS上,cron附带的软件包/etc/cron.daily/standard会注意到lost+found本地文件系统上缺少目录,并通过电子邮件每天发送有关此文件的提醒,建议使用mklost+found

但是,由于已过时,因此分别在Debian 7和Ubuntu 14 LTS时已删除。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.