|
by xwj
其实FAT还是很好理解的
1、你先由MBR(主引导扇区)找到分区表,(这个很好找,都在任何硬盘的第一个扇区里)
2、然后就可以有分区表找到每个分区的开始位置了;(这个扇区有明显的字符串标志MSDOS 5.0、MSWIN4.1或其他的OEM ID字段)
3、接着,就可以根据这个扇区的数据看到保留扇区数、每FAT扇区数,并以此找到FAT区、和根目录位置(还有个关键参数:每簇扇区数,这个后面说)
4、在根目录区保存着一个个文件、目录的信息,是很有规律的数据,文件名一目了然,而最关键的就是每个目录项中的簇号了,它指向每个文件的簇链,我们可以把它看成一个个的指针,而文件数据着放在相应的簇号对应的扇区位置里。
5、簇号是一个链表,每一个都是2字节,里面保留下一个簇的编号,而下一个又再指向下一个... 直到文件结束,用特殊符号FFF8~FFFF 表示文件结束簇;
6、知道了文件的簇号、簇链,我们把它乘以每簇扇区数,就是文件数据的真正存放位置了
FAT将磁盘空间按一定数目的扇区为单位进行划分,这样的单位称为簇。
之所以簇为单位而不以扇区为单位进行磁盘的分配,是因为当分区容量较大时,采用大小为512b的扇区管理会增加fat表的项数,对大文件存取增加消耗,文件系统效率不高,所以用更大的单位来操作。
簇的大小一般是2n (n为整数)个扇区的大小,像512B,1K,2K,4K,8K,16K,32K,64K。
最后,向你推荐一篇很详细的文章,相信只要你肯仔细阅读,就可以很快理解的哦。
|
|