我正在使用 Ubuntu 18.04,并试图找出我使用了多少 SSD 空间。我尝试了三种工具,得到了不同的数字。命令行显示使用了 73GB:
paul@paul-desktop:~$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 8147768 0 8147768 0% /dev
tmpfs 1634036 3644 1630392 1% /run
/dev/sda1 114596460 73090608 35641592 68% /
tmpfs 8170168 707284 7462884 9% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 8170168 0 8170168 0% /sys/fs/cgroup
....
QDirStat 显示使用了 39.6GB:
系统监视器显示已使用 74.8GB:
实际使用的空间是多少?
答案1
如果您使用 QDirStat 读取完整的根文件系统,您将看不到您无权访问的目录的内容;这很正常。最新的稳定 QDirStat 版本 1.6.1 将更清楚地显示这一点;旧版本将为这些目录显示锁定图标(并且它们在日志中提及)。
要查看所有内容,请以 root 权限运行它:
xhost +
sudo qdirstat /
此外,您似乎在根文件系统上使用 Btrfs。Btrfs 在报告磁盘使用情况方面存在固有问题;它不仅需要磁盘空间来存储文件和目录,还需要磁盘空间来存储写时复制功能和快照。
我昨天刚刚为正在研究的 QDirStat 新功能写了这篇文章:
https://github.com/shundhammer/qdirstat/blob/master/doc/Btrfs-Free-Size.md
另外,请注意 QDirStat(与大多数磁盘相关工具一样)使用基于 1024 的单位:1 kB = 1024 字节;1 MB = 1024 kB;1 GB = 1024 MB 等等;同样,如果您对字节级精度感兴趣,最新的 QDirStat 版本还可以显示精确的字节大小。
--
Stefan Hundhammer(HuHa)
QDirStat 作者
答案2
除了上面关于缺少权限的回答之外,我还写了一些更多的区别:文件的字节大小与使用的块:
https://github.com/shundhammer/qdirstat/issues/134
简而言之,“du”和“df”命令考虑了由于文件没有完全使用其最后一个磁盘块而浪费的磁盘空间,因此其中一些空间仍未使用(尽管已分配)。
另一方面,QDirStat 严格使用 stat() 系统调用报告的字节大小;它不对部分使用的磁盘块发生的情况做任何假设。GitHub 问题解释了原因。
编辑2020-06-11:
我刚刚还添加了对分配大小的支持。查看上面的链接了解更多详细信息。
答案3
QDirStat 似乎只显示您拥有的文件的大小。例如,/boot
显示为零字节,但实际上它必须包含一些内容:
例如:
$ du /boot -s -h
du: cannot read directory '/boot/efi': Permission denied
1.2G /boot
$ sudo du /boot -s -h
1.3G /boot
另一个重要的考虑因素是,一些实用程序列出了文件中的字节大小,而其他实用程序列出了文件占用的空间,即四舍五入到块大小的字节数,通常为 4,096 字节或 4K。
答案4
df
和系统监视器是正确的。许多 gnome 应用程序都假设1 GB = 1000 MB
where 是1 GB = 1024 MB
。
如果你算一下,结果就很清楚了。