我只是在对 NTFS 和 Windows 进行一些研究,我对如何处理 NTFS 稀疏文件有点困惑。我目前正在查看用于更新事务日志的 $UsnJrnl。
据我了解,稀疏文件就像文件系统中的任何其他文件一样,但是该文件将包含大部分零,而不是将零写入磁盘并实质上浪费空间,只计算集群的数量存储包含零。
例如,在我的测试系统上为 $UsnJrnl 运行的数据是:(使用Winhex获得)
Cluster start: 0
Number of clusters: 1408
(Sparse)
Cluster start: 510119
Number of clusters: 128
Cluster start: 256
Number of clusters: 2448
这意味着 $UsnJrnl 文件在磁盘上总共占用了 3984 个簇,但是其中 1408 个是稀疏的,因此它们实际上并不存在于磁盘上。
那么这是否意味着 1408 个零填充簇紧邻从 510119 开始的 128 个簇之前?
基本上我想要做的是能够确定磁盘上文件的确切开始和结束偏移量,例如它从集群 x 运行到集群 512822,但是我不确定稀疏集群是否实际上是在第二个集群运行之前直接分配,使其成为一个连续的块,如果它们实际上可以分配到任何地方。
我希望这是有道理的,任何信息或建议将不胜感激!