系统重启后发现某个磁盘挂载目录下多了个神秘文件夹?别急着删除,它可不是什么乱入的临时文件。
“今天有同事问我,Linux 挂载的文件系统下的 lost+found 目录是怎么产生的?有什么用?”
说实话,这个问题虽然基础,但很多用了多年 Linux 的朋友可能也只是一知半解。你是否也好奇过系统上那些特殊名字目录的由来和用途?今天就让我们借着这个提问,深入文件系统的底层,看看这个目录究竟扮演着怎样的角色。
当你使用 mkfs.ext4 等命令格式化一个 ext 系列文件系统时,lost+found 目录通常会自动在文件系统根目录下生成。
它并非系统运行过程中偶然创建的临时文件夹,而是文件系统创建过程中的标准产物。
需要注意的是,并不是所有 Linux 文件系统都会存在这个目录。例如 XFS、ZFS 等文件系统通常不会创建 lost+found,这属于不同文件系统设计理念的差异。
你可以通过:
ls-ld /lost+found查看它的庐山真面目。
你会看到它的权限通常是:
drwx------也就是 700 权限,表示只有 root 用户才有权限访问。这其实是一种保护机制,避免普通用户误操作里面可能存放的系统恢复数据。
根据 Gentoo Wiki 官方知识库的解释[1],lost+found 目录主要供文件系统检查工具 fsck 使用。
当系统意外崩溃、突然断电,或者由于其他原因导致文件系统元数据出现不一致时,管理员可能需要运行 fsck 对文件系统进行检查和修复。
在修复过程中,fsck 可能会发现一些特殊情况:
一个文件的 inode 仍然存在,文件内容也还保留在磁盘上,但是已经没有任何目录项指向它。
简单来说:文件还在,但它已经不知道自己原来属于哪个目录。
这种文件被称为 orphan file(孤儿文件)。
如果直接删除,这些数据可能永久丢失。因此,fsck 会尝试将这些“无家可归”的文件放入 lost+found 目录中。
在 ext 文件系统中,这些文件通常会使用 inode 编号重新命名,例如:
lost+found/#1234567这样管理员可以在系统恢复后进入该目录,通过 file、strings 等工具检查文件内容,并尽可能判断它们原来的用途。
你可能会想,文件系统修复时为什么不直接把这些文件删除,或者自动恢复到原来的位置呢?
这背后涉及文件系统修复工具的重要原则:数据完整性优先。
文件系统知道磁盘结构,却并不知道业务含义。比如,一个名为 年终总结报告.doc 的文件,对于用户来说可能非常重要;但对于文件系统来说,它只是一组 inode、数据块以及目录项之间的关系。当这些元数据已经损坏时,系统很难准确判断:
它原本属于哪个目录?
它是不是用户还需要的数据?
是否可以安全删除?
因此,fsck 采取了一种更加保守的策略:宁愿把数据交给管理员判断,也不要直接丢弃。
lost+found 的意义就在这里:它给数据恢复留下了一次机会。它不是备份系统,也不能替代备份,但在文件系统损坏后,它可能成为找回数据的重要入口。
如果你查看它的大小,可能会发现它并不像普通空目录一样只占用几个字节,而可能占用几十 KB 空间。
这是因为在格式化文件系统时,工具会提前为这个目录分配一定的目录项空间,方便未来 fsck 修复时快速写入恢复的数据。
另外,lost+found 目录并不是绝对不可删除。如果管理员误删了它,在之后运行 fsck 时,系统通常可以重新创建。
不过,对于根文件系统或者重要数据分区,不建议主动删除它。原因很简单:平时它几乎没有存在感,但真正发生文件系统异常时,它可能发挥作用。
很多人会发现:自己的 Linux 服务器上没有 lost+found。
这其实很正常。不同文件系统采用了不同的设计方式:
ext2/ext3/ext4:传统上使用 lost+found 保存 fsck 找回的孤儿文件;
XFS:使用 xfs_repair 等工具进行修复,并不依赖 lost+found;
ZFS:采用事务式设计和校验机制,也没有这个目录。
所以,看到没有 lost+found,并不代表文件系统存在问题。
总而言之,lost+found 是 Linux 文件系统为异常恢复准备的一个特殊目录。
它通常在 ext 文件系统格式化时创建,用于保存文件系统检查过程中发现的、但已经失去目录归属的文件。它不是病毒,也不是垃圾文件。
给你的几点建议:
留它一命:除非你完全清楚后果,否则不要随意删除重要文件系统中的 lost+found。
定期检查:如果发现该目录下出现大量类似 #123456 的文件,说明文件系统近期可能发生过异常。可以使用 file 等工具检查文件类型,确认有价值后再尝试恢复。
不必惊慌:如果你的系统使用 XFS、ZFS 等文件系统,没有 lost+found 是正常现象。
下次再有同事问起这个神秘目录,你可以告诉他:
这是 Linux 给文件系统准备的一个“失物招领处”。平时不起眼,但关键时刻,它可能帮你找回那些差一点消失的数据。
[1] Knowledge Base: What is the lost+found directory? Gentoo Wiki.
https://wiki.gentoo.org/wiki/Knowledge_Base:What_is_the_lost%2Bfound_directory%3F