为什么 fsutil 的扇区和簇中的字节数不匹配?

为什么 fsutil 的扇区和簇中的字节数不匹配?

我用它fsutil来获取有关驱动器的信息。以下是实际输出:

NTFS Volume Serial Number :       ...
Version :                         3.1
Number Sectors :                  0x0000000004fccfff
Total Clusters :                  0x00000000009f99ff
Free Clusters  :                  0x00000000006d6faf
Total Reserved :                  0x00000000000017c0
Bytes Per Sector  :               512
Bytes Per Cluster :               4096
Bytes Per FileRecord Segment    : 1024
Clusters Per FileRecord Segment : 0
Mft Valid Data Length :           0x0000000003cc0000
Mft Start Lcn  :                  0x00000000000c0000
Mft2 Start Lcn :                  0x0000000000000002
Mft Zone Start :                  0x000000000030d7c0
Mft Zone End   :                  0x0000000000319fe0
RM Identifier:        ...

不应该(Number Sectors * Bytes per Sector)相等吗(Total Clusters * Bytes per Cluster)

基于行业的计算:83677183*512 = 42842717696

基于集群的计算:10459647*4096 = 42842714112

答案1

除以Bytes Per ClusterBytes Per Sector你会发现每个簇有八个扇区。现在除以Number Sectors8,你会发现它不能被整除(10459647.875 个簇)。去掉分数(你可以向下舍入,但不能向上舍入),簇的总数是 10,459,647(0x009F 99FF)。

因此,有些扇区未被使用:

Total Sectors                            =        0x04FC CFFF
Total Clusters x Sectors Per Cluster (8) =   -    0x04FC CFF8
                                                  -----------
                                                            7
Bytes Per Sector                         =   x            512
                                                  -----------
Unnused/Wasted Bytes                     =              3,584 (3.5KB)


Your calculations:
Sector-based  calc (83,677,183 x  512)   =     42,842,717,696
Cluster-based calc (10,459,647 x 4096)   =   - 42,842,714,112
                                               --------------
                                                        3,584

相关内容