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

cut*_*tjm 5 linux filesystems lost-found

我在根方向,无论出于何种原因,/我都这样做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
Run Code Online (Sandbox Code Playgroud)

编辑:我看到“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。

cut*_*tjm 2

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

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

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

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