在 MTD 闪存设备上使用 busybox 和 UBI 文件系统,du 和 df 命令给出不正确的值

在 MTD 闪存设备上使用 busybox 和 UBI 文件系统,du 和 df 命令给出不正确的值

我在我的 MTD 分区上安装了一个 UBIFS,大小为 191.9MB。

当我运行 mtdinfo -a 时,分区显示:

mtd6
Name:  data2fs
Type:  nor
Eraseblock size:  65536 (64KB)
Amount of Erase Blocks: 3071 (201261056 bytes, 191.9MB)
etc...

但是当我运行 df -h 时我得到:

               size     used    free
ubi2:data2fs   680.2G   20.0K   664.2G

为什么会这样呢? - 我所有的坐骑都是这样的(这只是我为这个问题选择的坐骑)。

对于特定文件“test.log”:

  • 当我在 data2fs 上运行 du -ah 时,我得到:4.0K test.log
  • 当我执行 ls -l 时,我得到:(test.log 40 bytes这是实际值)

我不明白为什么 ls 会起作用,而 du /df 给出不同的结果......

更新

测试stat -f /mnt/data2fs似乎给出了正确的答案:

Block Size: 4096
Total: 43738 (4096 x 43738 = 170.85MB)
Free: 43732
Avail: 42522

这些是我粗略预期的数字(不是 191MB,因为 UBIFS 有 5-10% 的开销)。

相关内容