【问题标题】:du linux command size greater than dfdu linux命令大小大于df
【发布时间】:2016-09-15 08:37:26
【问题描述】:

我正在使用具有 8MB 闪存和 16MB RAM 的 Digi 嵌入式 linux 模块。

我的分区表如下:

所以,我为 rootfs 获得了 4.4MB。 2MB 用于 UserFS。

当我运行“df -ah”时,我得到以下输出。

但是,当我在 root 上运行“du -sh”时,我在 /lib 中有 4M,在 /usr 中有 3M。两者都在根目录下。但是root只有4.4M。

我已经检查了符号链接,并且可以确认文件实际存在于 /lib 和 /usr 上。

我删除了/lib下的一些库文件(netsnmp),接近2M,但/dev/root上的可用大小只增加了~390K(从408K到792K) .

这表明 /lib/libnetsnmp* 存储在其他地方。我不确定这些文件保存在哪里。 有什么想法吗?

另外,请注意 rootfs 图像大小为 4M。这在 /dev/root 文件系统上的 df -ah 命令中正确显示。

【问题讨论】:

    标签: linux filesystems embedded-linux filesize


    【解决方案1】:

    如果我没记错的话,JFFS2 内置了透明压缩。可执行文件压缩得很好。

    【讨论】:

      【解决方案2】:

      如果文件正在使用中。你真的不能删除它。 您可以使用lsof | grep deleted 找到它们。

      【讨论】:

        【解决方案3】:

        可能是由于根文件系统中存在硬链接。每个硬链接将显示为一个普通文件,但所有硬链接都指向同一个 inode,因此硬盘中实际上只有一个文件副本。你可以在这个link看到一个很好的软链接和硬链接的定义。

        编辑:您可以使用此命令搜索硬链接(取自 answer):

        find . -samefile /path/to/file
        

        【讨论】:

        • 我相信这与链接无关。 /lib 中的文件名都是 lib*.so 文件。 /usr 中的文件名都是 mib 文件。
        • 我不认为硬链接是原因。 du 不会计算硬链接文件两次或更多次。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-10-29
        • 2011-03-16
        • 1970-01-01
        • 2011-05-24
        • 1970-01-01
        • 2020-01-05
        • 2015-06-24
        相关资源
        最近更新 更多