为什么目录 /lost+found 是 16K 而不是 4K 字节?

为什么目录 /lost+found 是 16K 而不是 4K 字节?

我处于根方向,/并且ls -lah出于某种原因我这样做了并查看了文件夹大小。我注意到该文件夹lost+found​​的大小为 16K,而所有其他目录的大小均为 4K。/dev/proc、 和/sys也有不同的尺寸,但这lost+found是我最初好奇的。

人们指出,这/dev是因为它是一种不同的文件系统,并且/proc/sys虚拟文件系统,因此它们不遵循与普通文件系统相同的规则。

lost+found有人对此(目录)有解释吗?通过快速谷歌我似乎找不到答案

-rw-r--r--  1 root root  152 Jul  2 11:47 extlinux.conf
drwxr-xr-x  3 root root 4.0K Nov  7 01:51 home
lrwxrwxrwx  1 root root   30 Jul  2 11:47 initrd.img -> /boot/initrd.img-3.2.0-4-amd64
-r--r--r--  1 root root  32K Jul  2 11:47 ldlinux.sys
drwxr-xr-x 12 root root 4.0K Jul  2 11:46 lib
drwxr-xr-x  2 root root 4.0K Nov  7 01:43 lib64
drwx------  2 root root  16K Jul  2 11:44 lost+found
drwxr-xr-x  2 root root 4.0K Jul  2 11:46 media
drwxr-xr-x  2 root root 4.0K Dec 24  2014 mnt
drwxr-xr-x  4 root root 4.0K Nov 14 22:00 opt
dr-xr-xr-x 85 root root    0 Nov  9 19:51 proc
drwx------  3 root root 4.0K Nov 15 21:01 root
drwxr-xr-x 15 root root  480 Nov 15 23:26 run
drwxr-xr-x  2 root root 4.0K Nov  7 01:43 sbin

编辑:我看到问题了“ls -l”命令的输出中目录的大小意味着什么?这回答了问题,但我创建的所有新目录都是 4.0K,lost+found据我所知,其中从未有任何信息来保证更大的大小(这是一个相对较新的安装,没有不必要的关闭)。另外,为了澄清起见,文件系统类型是 ext3。

编辑2:这些文件可能对真正能够解释它们的人更有帮助,但它们仍然没有解释为什么 /run 不同,但有人建议这是因为它已安装(用 验证df -h)。它也是由该mklost+found命令创建的,但运行该命令时,目录大小显示为 49K(12 个块)而不是 16K(4 个块)。 mke2fs.c 文件用 行解释了 16K 文件if ((lpf_size += fs->blocksize) >= 16*1024),但没有解释 49k 文件。

答案1

@cas 的假设是正确的,“对于 fsck 来说,创建一个为找到的文件保留更多空间的丢失+找到的目录比在需要时扩展它更简单。对于某些类型的 fs 损坏,甚至可能不可能或者在 fsck 修复错误时安全地扩展丢失+找到的目录。”

我不知道为什么我之前没有这样做,但是如果您查阅mklost+found手册页,它会为您提供以下信息:

mklost+found 预先将磁盘块分配给lost+found 目录,这样当运行e2fsck(8) 来恢复文件系统时,就不需要在文件系统中分配块来存储大量未链接的文件。这确保了 e2fsck 在恢复期间不必在文件系统中分配数据块。

对具体问题的更深入的回答,为什么文件大小为 49,152 字节(或 48 KiB,或 12 个扇区),位于以下文件中的某个位置。这就是我很好奇的原因,但我仍然没有找到它(我不太懂C)。如果有人有空闲时间,并且认识我,并且可以解释原因,我会接受你对此的回答:

相关内容