JFFS2 文件系统,存储使用与实际文件大小不一致

Posted

技术标签:

【中文标题】JFFS2 文件系统,存储使用与实际文件大小不一致【英文标题】:JFFS2 filesystem, storage usage inconsistent with real file size 【发布时间】:2015-07-25 01:49:36 【问题描述】:

我用了一个spi-nor芯片,做了一个16M的分区作为JFFS2 fs。我发现一个奇怪的东西,我应该使用14M的存储,但是当我使用df查看时,它显示只有7M已经使用:

/ # df
Filesystem            1K-blocks       Used  Available Use% Mounted on
...
/dev/mtd7                 16384       7488       8896  46% /data
...

在我将另一个 2M 文件复制到此分区后:

/tmp # ls -l 
-rwxr-xr-x    1 0        0       Fri Jul 24 18:32:46 2015          2478144 asd

原来只多使用了 1M 的存储空间:

# df
Filesystem            1K-blocks       Used  Available Use% Mounted on
....
/dev/mtd1                 16384       8744       7640  53% /tmp
....

有没有人也发现了这个问题?

谢谢,

【问题讨论】:

【参考方案1】:

JFFS2 默认使用文件系统压缩,因此分区上使用的空间不会反映文件大小的总和,因为文件是即时压缩的。这意味着它们各自的文件大小将反映它们未压缩的大小,但总体卷使用量将反映它们的压缩大小。

来自JFFS2 on Wikipedia:

没有实用的方法来判断设备上剩余多少可用空间,因为这取决于额外数据的压缩程度和写入顺序。

【讨论】:

以上是关于JFFS2 文件系统,存储使用与实际文件大小不一致的主要内容,如果未能解决你的问题,请参考以下文章

jffs2和yaffs2文件系统

mysql日常问题

mysql日常问题

制作jffs2.img文件系统,打包下载flash系统镜像

linux,实际占用存储于使用存储不符合什么原因

jffs2dump 出了点问题,将 JFFS2 文件系统更改为 little-endian 文件