我在 Windows 2008 操作系统上遇到了典型的“磁盘大小”问题。
我使用的是簇大小为 4k 的 NTFS 分区,其中磁盘大小几乎是实际大小的三倍。这是因为我的系统中有大量小文件。
我尝试将簇大小减小到 2kb,但是这样也并没有帮助我减小“磁盘大小”。
我尝试通过勾选“压缩此驱动器以节省磁盘空间”来使用压缩,但这也根本没有帮助我减少“磁盘大小”。似乎压缩对小文件不起作用。
我尝试使用压缩 + 2kb 簇,但这也无助于我减少“磁盘大小”。如果我打开 1 个文件的属性,它会显示大小为“1.33 KB”,磁盘大小为“4.00 KB”!!为什么会发生这种情况,因为我的簇大小已经是 2kb。我使用以下命令检查了簇大小。
fsutil fsinfo ntfsinfo
有人能建议我有什么办法可以减少磁盘空间吗?
答案1
我不知道 Explorer 使用什么方法来计算“磁盘大小”,但是,如果它实际上考虑了用于 MFT 的所有簇以及其他数据,您可能会看到文件增长的效果略大于 2K(在您的示例中为一个簇),这是由于其附加属性或备用流占用的空间。
NTFS 将有关文件的大部分信息(文件名除外,文件名存储在目录中)存储在主文件表 (MFT) 中。这包括各种时间戳、ACL,甚至文件数据本身(存储为“数据”属性的值),如果它足够小以适合 MFT 记录。确切的 MFT 记录大小based on the cluster size of the file
取决于文档和可能等于你的情况中的簇大小。因此,如果你的文件元数据太大,数据属性无法放入 MFT 记录中,为其保留一个新的“范围”群集并且指针放在 MFT 记录内 - 此时,您的文件将占用至少 2 个簇(或 4K)的磁盘空间。
您也不应该忽视 Explorer 可能对“磁盘大小”判断有误的可能性。考虑将簇大小进一步降低到 1K 或 512 字节,然后重新检查。