• FAT学习笔记(五)——FAQ


    1,fat32中一个文件至少要占用整数个cluster,一个cluster要占用2的整数次幂个数的sector,fat32中要使用cluster的原因是:因为如果要写入一个大档案,如果用sector的配置方式,那么sector数量就很大,并且分配在零散的空间,不便于管理,又由于cluster是连续的sector,所以可以加快访问时间。

    如何知道某个file/dir占用的起始cluster? 答:根据dir entry structure

    如何知道某个file/dir含有哪些clusters? 答:根据FAT table

    2,为什么FAT12和FAT16的RootDir单独占用region,其大小由 BPB_RootEntCnt指定,而FAT32取消了这个,RootDir直接放在cluster2的位置?
    答:如果开始就将RootDir里的dir entry structire占用的cluster个数定下来的话,这样根目录下能放的目录或者文件个数就已经有了最大的限制,因为一个dir entry struct占用32byte,所以一个cluster能占用的dir entry struct个数是固定的。

    3,当一个目录的档案非常多导致一个cluster不够用的时候,系统可以再分配一个cluster给这个目录,同时修改这个目录对应的FAT表,所以上述方法使得子目录的个数只受磁盘容量的限制。

    4,根目录的起始cluster是固定的(从bootsector可以读出,FAT32的root dir cluster通常为2),根目录的dir entry的DIR_Attr为ATTR_VOLUME_ID,并且其dir entry里的DIR_FstClusLO为0,根目录所在的cluster(FAT32通常为cluster2)里记录了根目录下子目录或者根目录下文件的dir entry信息,比如根目录下有三个文件 A B C和三个目录D E F,那么cluster2里前会有6个dir entry,分别记录A B C D E F的dir entry信息,A B C文件真正的内容则会根据cluster2里A B C对应的dir entry找到存放文件真正内容的cluster,存放文件真正内容的cluster里不会再次记录文件的dir entry信息。

  • 相关阅读:
    pyecharts 学习笔记(6)--numpy列表与数组的相互转换
    pyecharts 学习笔记(5)
    pyecharts 学习笔记(4)--pyeharts.faker的Faker方法和属性
    Python 把较长的一行代码分成多行的技巧
    JS保留两位小数 四舍五入函数
    使用MYSQL命令直接导入导出SQL文件(转)
    在input中实现点点点与当鼠标移上去时显示剩余的字
    echarts 图表用例
    MySQL Packet for query is too large
    My97DatePicker 时间控件
  • 原文地址:https://www.cnblogs.com/zhiliao112/p/4067867.html
Copyright © 2020-2023  润新知