笔记:我专门研究 VHD,但我假设类似的规则也适用于物理硬盘。如果我的假设有误,请纠正我,但即使我错了,对于我的特定用例来说,这也是一个没有实际意义的问题。
语境
操作系统:Windows 7 (x64) Ultimate
我正在尝试创建具有给定大小的可用空间的单卷 VHD,例如,如果我想要在完成所有初始化和格式化后正好有 2 GB(2,147,483,648 字节)的可用空间,我发现我必须将 VHD 创建为 2,092 MB(2,193,620,992 字节)。
我正在使用 MBR,我发现它在初始化时将消耗 3,076 KB(3,149,824 字节),无论 VHD 大小如何 - 我假设它存储分区/卷信息?
但是,在我的 2 GB 示例中,我将使用全部可用空间创建一个 NTFS 卷,一旦驱动器可用,您就会看到一些空间已被使用 - 准确地说是 41,980 KB(42,987,520 字节)。
问题
这个空间是用来做什么的?有什么理由吗?有是否可以被回收用于正常的数据存储?
有没有一种计算方法可以让我了解创建 NTFS 卷后会占用多少空间?
我想要不同大小的 VHD,并且希望能够预先确定这个丢失的空间,而不是反复试验。我尝试创建不同大小的 VHD 并比较已用空间的值,试图找到一致的原始使用百分比或固定量 + 原始百分比。我无法确定一致的模式。与 MBR 相比,通过 GPT 实现我的最终目标是否更容易?我还没有尝试过。
同样,使用 NTFS 以外的格式会更容易吗?
答案1
这个空间是用来做什么的? 有什么理由必须使用它吗? 或者可以回收它用于正常的数据存储吗?
它是 MFT(主文件表)。默认情况下,驱动器的 12.5% 空间是为它保留的,但如果您有大量文件,它也可能变得更大。
这是主要的元数据文件,在本例中是驱动器上存储的文件列表。每个文件和目录至少需要一个条目来记录其 ID、名称、MAC 时间(修改、访问、创建)和其他一些内容。
请注意,这$MFT
不是 NTFS 中唯一的元数据文件。还有其他元素,例如$MFTMirr
,$LogFile
等等。如果您好奇,我的硕士论文包含更多有关此内容的信息。
是否有一种计算方法可以用来了解创建 NTFS 卷后将消耗多少空间?
您可能会想出一个非常复杂的方法,但它只能在文件系统创建时立即起作用。一旦操作系统开始在驱动器上工作,文件系统上可能会写入更多内容。
与 MBR 相比,通过 GPT 是否更容易实现我的最终目标?
GPT 是一种存储分区表的方式(好吧,我在这里说得相当简单)。文件系统格式(NTFS)不变。
同样,使用 NTFS 以外的格式会更容易吗?
不是。所有文件系统都需要一些元数据。有一些归档解决方案cpio
基本上是将文件“粉碎”在一起,但它们作为文件系统效果不佳。
此外,您使用的 Windows 是一款在处理文件系统(以及许多其他任务)方面相当无能的操作系统。因此您的选择有限。