主要出于学术原因,我一直在学习如何从 NTFS 卷的 MFT 记录的数据属性块解释集群链运行。
我观看了一个演示示例的视频。这是例子:
旗帜| 簇数 | 第一个集群
41
02
f8 38 c7 01
21
02
c5 07
31
04
83 43 01
21
08
c0 fc
31
10
44 0b 00
31
01
f7 ef f9
21
1f
c6 e7
21
10
6b 28
31
01
00 52 e4
现在,视频显示了一些正在解释十六进制输出的磁盘编辑软件。这很有帮助,因为视频的作者完全跳过了至少 3 个基本概念:
- “第一簇”字段是累积的。如果您使用计算器,很容易弄清楚。
- “第一个簇”字段是一个有符号整数,以便它可以在磁盘上向后导航。这很难弄清楚,但我明白了。
- 第三个完全被忽略的概念是当“第一簇”字段的最低有效字节为零时。由于这些字段被解释为小端字节序,并且这是一个灵活长度字段(标志表示有多少字节),那么为什么会有前导零呢?
所以,这就是我的计算方法。
旗帜| 簇数 | 第一个集群
41
02
f8 38 c7 01
2 个集群,从集群 # 29,833,464 开始 另有
21
02
c5 07
2 个集群,从 29,833,464 开始,从 1,989 开始,即集群 # 29,835,453
31
04
83 43 01
又有 4 个集群,从 29,835,453 开始,从 82,819 开始,即集群 # 29,918,272 又有
21
08
c0 fc
8 个集群,从 832 开始,早于29,918,272,这是集群#29,917,440
31
10
44 0b 00
16更多集群从 29,917,440 开始,从 2,884 开始,即集群 # 29,920,324
这是我的数学与他们的数学不同的地方。他们说集群#29,840,452。我这里需要帮助。
31
01
f7 ef f9
21
1f
c6 e7
21
10
6b 28
31
01
00 52 e4
当某一字段中有前导零时,数学如何进行?我还有一个单独的示例,其中前导零位于“簇计数”字段中,而不是“第一个簇”字段中;待遇有什么不同吗?”