如何检测块设备上已用的硬盘空间?

如何检测块设备上已用的硬盘空间?

我想查看原始块设备(如/dev/sda)并了解驱动器上使用了多少空间。

我不知道硬盘驱动器上的文件系统是什么类型,也没有任何方法可以解决这个问题。硬盘驱动器显然不能是“空的”,但我所知道的是“空的空间”被表示为一堆零(如 的输出,/dev/zero而不是 ASCII 字符0)。

如何扫描块设备,然后获得一个输出,告诉我有多少块仅填充了零值?

答案1

我所知道的是“空白空间”被表示为一堆零

这是错误的。虽然许多磁盘一开始都是全零,但它们不会保持这种状态。如果磁盘扇区停止使用,大多数操作系统不会将其清零。他们只是保留它包含最后包含的任何内容,直到再次使用该扇区。

SSD 设备可能有更多的全零扇区,因为 TRIM 会产生全零块,但这并不能保证未使用的扇区会以任何方式清零,只是那些属于较大未使用块的扇区足够长的时间。

检测文件系统上未使用空间的唯一方法是分析文件系统结构。未使用的空间是文件系统未使用的空间。

相关内容