![为什么目录 /lost+found 是 16K 而不是 4K 字节?](https://linux22.com/image/77569/%E4%B8%BA%E4%BB%80%E4%B9%88%E7%9B%AE%E5%BD%95%20%2Flost%2Bfound%20%E6%98%AF%2016K%20%E8%80%8C%E4%B8%8D%E6%98%AF%204K%20%E5%AD%97%E8%8A%82%EF%BC%9F.png)
我处于根方向,/
并且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)。如果有人有空闲时间,并且认识我,并且可以解释原因,我会接受你对此的回答: