FAT32文件系统定位FAT文件分配表以及根目录

一、FAT1起始扇区 =  DBR的扇区号 + 保留扇区数

1.获取DBR的扇区号

磁盘的0号扇区的 0X1C6~0X1C9是第一个分区的起始扇区,这个扇区就是DBR

下图是本人的磁盘的0号扇区,可以看到DBR的扇区号是0X00 00 00 3F(小端格式)

2.得到保留扇区数

打开DBR扇区,偏移0X0E~0X0F表示保留扇区数

由图可知保留扇区数为0X00 26.

FAT1起始扇区 =  DBR的扇区号 + 保留扇区数  = 0X3F + 0X26 = 0X65

打开扇区号为0X65的扇区,这就是FAT1的起始扇区

二 .FAT2的起始扇区

FAT2是紧邻FAT1的,所以  FAT2的起始扇区 = FAT1的起始扇区 + 一个FAT的扇区数

1.FAT1的起始扇区

按照上面的方法得到,本例是0X65.

2.一个FAT的扇区数

从DBR的偏移0X24~0X27得到,由第一个图可知本例是0X3A79。

 FAT2的起始扇区 = FAT1的起始扇区 + 一个FAT的扇区数 = 0X65 + 0X3A79 = 0X3ADE

打开扇区号为0X3ADE的扇区,可以看到FAT2与FAT1是一样的。

三、根目录区

在FAT32文件系统中,根目录的位置不再硬性地固定,可以存储在分区内可寻址的任意簇内,不过通常根目录是最早建立的(格式化就生成了)目录表。

所以,我们看到的情况基本上都是根目录首簇紧邻FAT2,占簇区顺序上的第1个簇(即2号簇)。

同时,FAT32文件系统将根目录当做普通的数据文件来看,所有没有了目录项数的限制,在需要的时候可以分配空簇,存储更多的目录项。

根目录起始扇区 = 保留扇区数 +  隐藏扇区数+ 一个FAT的扇区数 × FAT表个数 + (起始簇号-2) x 每簇的扇区数

1.保留扇区数

从DBR的偏移0X0E~0X0F得到,本例是0X65.

2.一个FAT的扇区数

从DBR的偏移0X24~0X27得到,由第一个图可知本例是0X3A79。

3.FAT表个数

从DBR的偏移0X10得到,由第一个图可知本例是0X02。一般有两个FAT表,FAT1和FAT2。

4.起始簇号

从DBR的偏移0X2C~0X2F得到,由第一个图可知本例是0X00 00 00 02。

5.每簇的扇区数

从DBR的偏移0X0D得到,由第一个图可知本例是0X08,一个簇是8个扇区。

所以 根目录起始扇区 = 保留扇区数  + 隐藏扇区数 + 一个FAT的扇区数 × 2 + (起始簇号-2) x 每簇的扇区数

=FAT1的起始扇区号 + 一个FAT的扇区数 × 2 + (起始簇号-2) x 每簇的扇区数

                                      = 0X26+0X3F +  0X3A79 * 2 + (0X2 - 2) * 8 = 0X7557

打开扇区号为0X7557的扇区

https://mango.blog.youkuaiyun.com/article/details/38440225?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值