【问题标题】:Having trouble identifying what is wrong in this FAT无法识别此 FAT 中的问题
【发布时间】:2017-09-29 12:50:22
【问题描述】:

所以我从 0000 开始浏览表格。我看到 006E 并将我发送到第 0060 行 E 列。我看到 00A2 将我发送到第 00A0 行第 2 列。我看到 00EA 将我发送到第 00E0 行A 行。我看到 FFF0 表示集群结束。这是错误的,因为更多的集群留在了表中?我是不是完全错了?

【问题讨论】:

  • 我是否会通过剩余的块并尝试找到问题(比如导致 FFFF 集群的集群?)

标签: fat


【解决方案1】:

我并不觉得这是一个特别真实的 FAT 演示。在现实世界中,每个条目都是两个字节长的事实意味着您需要将簇编号乘以 2 才能找到它们在表中的实际位置;这显然在这里不可行,因为大约一半的集群链接将指向 FAT 之外,如图所示。如果您应该将这些数字解释为位置偏移而不是实际的集群编号,那么它们必须都是偶数 - 00DA 处的奇数 0049 将是无效的。

如果不查看磁盘目录,就无法真正评估 FAT,以了解每个文件实际开始的位置。 0000 处的 0062 不是文件的开头;请注意,在 0056 处有一个到 0000 的链接,在 00D2 处有一个到 0056 的链接,所以也许 00D2 是一个有效的文件开始。

指向 FFFF 未使用集群的链接确实是个问题 - 我至少看到其中一个。指向同一个集群的两个链接,或者形成一个循环的链接,也值得寻找。

【讨论】:

    【解决方案2】:

    我从 00AA(以 FFFF 块结束)、递归(从 00B4 开始)和错误的地址 0049 中发现了意外的文件结尾。

    还有一些文件块包含相交的数据。也许这是某种 FAT 功能,那么我不能将其视为异常)

    【讨论】:

      猜你喜欢
      • 2021-10-29
      • 2022-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多