Jee*_*oon 0 filesystems assembly fat
我从 Peter Abel 的书IBM PC Assembly Language and Programming 中阅读了 FAT#2 的单行解释。
它说:
尽管 FAT2 仍在维护,但从未实现过其使用。
维基百科说:
FAT 区域。
为了冗余检查,这通常包含文件分配表的两个副本(可能会有所不同),尽管很少使用,即使是磁盘修复实用程序也是如此。
我可以想到使用它的两个充分理由
我意识到 FAT 是一个非常古老的文件系统,但为什么 FAT#2从未也很少被实现?
假设“FAT2”表示 FAT(文件分配表)的第二个副本,那么基本问题是它几乎没有实际用途,但我不确定它是否真的从未使用过。
FAT 是 FAT 文件系统中的一个中心数据结构,其中心位置以至于文件系统本身以它命名。它不仅是一个已分配或未分配集群的表,它还存储组成每个文件的集群的链表。如果 FAT 中的单个扇区损坏,则可能会丢失大量文件,因此有人在某个时候认为拥有 FAT 的备份副本是个好主意。
但问题是,如果 FAT 已损坏,您如何判断 FAT 的哪个副本是正确的?这将备份副本的有用性限制在从主 FAT 读取导致读取错误的情况下。因此,至少在理论上,如果在读取文件时操作系统在读取 FAT 时遇到错误,它可以尝试备份副本。
然而,物理磁盘错误并不是 FAT 损坏的唯一方式。特别是,磁盘修复实用程序,如chkdsk,并不是真正设计用于修复由读取错误引起的文件系统损坏。它们只是为了修复由于写入磁盘的错误数据而导致的损坏。最常见的情况是在写入磁盘的过程中关闭计算机。在这种情况下,文件系统很容易处于不一致状态。特别是如果操作系统正在更新 FAT,它可能已经更新了主副本而不是备份副本,或者它可能已经更新了备份副本而不是主副本。没有办法知道哪个。
我不确定操作系统是否真的会在读取错误后检查备份 FAT。这很难说,因为它在实践中很少产生影响。单扇区读取错误在过去 20 年左右制造的硬盘上并不常见,因为它们会在故障扇区变坏之前重新映射它们。驱动器在完全失效之前往往没有磁盘错误。即使在软盘上,物理磁盘错误也往往会影响整个磁道,这会清除 FAT 的两个副本。
查看 Linux 和 FreeBSD FAT 文件系统实现的源代码,如果从主 FAT 读取失败,它似乎不会尝试备份 FAT。我不知道 Microsoft 的三个主要实现(MS-DOS、Windows 95 或 Windows NT)中的任何一个是做什么的。
| 归档时间: |
|
| 查看次数: |
382 次 |
| 最近记录: |