U盘文件系统fat32打不来怎么办 详解u盘写入保护解除方法(2)
U盘文件系统fat32打不来怎么办
下面讲讲最重要的一个DBR(DOS BOOT RECORD 操作系统引导记录区)。DBR 是我们进军 FAT32 的首道防线。其实 DBR 中的 BPB 部分才是这一区域的核心部分(第12~90 字节为 BPB),只有深入详实地理解了 BPB 的意义,才能够更好地实现和操控 FAT32。关于 DBR 在 FAT32 中的地位就不多说了,上面的数据中的前90个字节是BPB的主要部分。BPB的C语言结构体如下所示:
struct FAT32_DBR{unsigned char BS_jmpBoot[3];//跳转指令 offset: 0unsigned char BS_OEMName[8];//原始制造商 offset: 3unsigned char BPB_BytesPerSec[2];//每扇区字节数 offset:11unsigned char BPB_SecPerClus[1]; //每簇扇区数 offset:13unsigned char BPB_RsvdSecCnt[2]; //保留扇区数目 offset:14unsigned char BPB_NumFATs[1]; //此卷中FAT表数 offset:16unsigned char BPB_RootEntCnt[2];//FAT32为0 offset:17unsigned char BPB_TotSec16[2]; //FAT32为0 offset:19unsigned char BPB_Media[1];//存储介质 offset:21unsigned char BPB_FATSz16[2];//FAT32为 0 offset:22unsigned char BPB_SecPerTrk[2];//磁道扇区数 offset:24unsigned char BPB_NumHeads[2];//磁头数 offset:26unsigned char BPB_HiddSec[4]; //FAT区前隐扇区数 offset:28unsigned char BPB_TotSec32[4];//该卷总扇区数 offset:32unsigned char BPB_FATSz32[4]; //一个FAT表扇区数 offset:36unsigned char BPB_ExtFlags[2];//FAT32特有 offset:40unsigned char BPB_FSVer[2];//FAT32特有 offset:42unsigned char BPB_RootClus[4];//根目录簇号 offset:44unsigned char FSInfo[2];//保留扇区FSINFO扇区数 offset:48unsigned char BPB_BkBootSec[2];//通常为6 offset:50unsigned char BPB_Reserved[12];//扩展用 offset:52unsigned char BS_DrvNum[1];//offset:64unsigned char BS_Reserved1[1];//offset:65unsigned char BS_BootSig[1];//offset:66unsigned char BS_VolID[4];//offset:67unsigned char BS_FilSysType[11];//offset:71unsigned char BS_FilSysType1[8];//"FAT32 " offset:82};
每个字段的大小和含义都有详细的注释,解析这些数据使是们进行文件系统探秘的首要任务。需要注意的是在BPB中数据是以小端模式存储的,所以51单片机的大端模式下需要进行大小端的转换,而一般ARM的默认方式就是小端模式,所以无需进行转换操作。
简单介绍DBR的BPB之后还需要介绍一下FAT表(文件分配表)的概念。什么是文件分配表呢?顾名思义,就是给文件分配存储空间的表,这里面存放的不是文件的数据而是文件所在的簇的信息,具体下面会给出解释。
FAT 表是 FAT32 文件系统中用于磁盘数据(文件)索引和定位引进的一种链式结构。可以说 FAT 表是 FAT32 文件系统最有特色的一部分,它的链式存储机制也是 FAT32 的精华所在,也正因为有了它才使得数据的存储可以不连续,使磁盘的功能发挥得更为出色。
那么FAT 表到底在什么地方?它到底是什么样子的?这时就要回到刚才的BPB部分了,在BPB中有一个字段叫做BPB_RsvdSecCnt,这个字段是表示保留山区数目,其实就是保留给BPB使用的空间的扇区数量,也就是说这个数值表示的就是FAT表前面的空间大小,那么FAT表的地址就是这个字段的数值了。其实在文件系统中为了保证正确性和稳定性胡设置两个完全相同的FAT表,并且两个FAT是同步的,也就是说对一个 FAT 表的操作, 同样地, 也应该在另一个 FAT表进行相同的操作,时刻保证它们内容的一致。这样是为了安全起见,当一个FAT 因为一些原因而遭到破坏的时候,可以从另一个 FAT 表进行恢复。
相关阅读
-
华为鸿蒙系统的意义和作用有什么 简述鸿蒙系统的特殊功能
为网友们解答华为鸿蒙系统的意义和作用有什么和简述鸿蒙系统的特殊功能的方法内容,接下来就是全面介绍。 在科技领域,每一次的突破都会引起广泛的关注。今天,我们将聚焦在华为的最
-
win10系统启动盘怎么用 win10启动盘安装教程
本文核心内容:win10系统启动盘怎么用和win10启动盘安装教程的电脑小知识,接下来一起来看看吧。 想要u盘重装win10系统的话,我们就需要先借助u盘启动盘制作工具来制作好win10系统盘。那么具
-
win8系统恢复出厂设置教程 一键恢复出厂设置的详细步骤
相对于大多数人win8系统恢复出厂设置教程和一键恢复出厂设置的详细步骤的IT小经验,具体内容如下: 电脑系统使用时间长了,难免会遇到各种各样的问题,如果在能够进入系统的前提下,我
-
win10系统安装要求 安装win10系统需要什么条件
一篇方法教程,与您分享安装win10系统需要什么条件的话题,关于win10系统安装要求 安装win10系统需要什么条件,一起来了解了解吧。 如果我们要安装win10操作系统的话,首先需要了解一下我们


