文件系统

一、声明和环境描述

1、本文来源

  本文很多内容来自于SD卡中FAT32文件格式快速入门(图文详细介绍),这篇文章的理论阐释很到位,实验编排也不错。本文将这篇文章中讲解的部分实验重新演绎了一遍。 

2、本文测试环境

测试硬件:物理硬盘 和 8G金士顿U盘(格式化)

操作系统:"Windows XP"

测试软件:WinHex 

二、FAT32文件系统布局

三、文件系统MBR

1、MBR(Master Boot Record,硬盘的主引导记录)

  为了便于理解,一般将MBR分为广义和狭义两种:广义的MBR包含整个扇区(引导程序、分区表及分隔标识),也就是上面所说的主引导记录;而狭义的MBR仅指引导程序而言。

2、DPT(Disk Partition Table,硬盘分区表)

  DPT分区表位于MBR内,占据64 Bytes的空间,又将这64 Bytes的空间按照16 Bytes为一个表项进行划分,共4个表项。

3、MBR实例测试

<1> 硬盘测试

  紫色区域主要为主引导代码区,红色区域的64字节交给了DPT,着重讲一下DPT分区表

【1】0x1BE 0x80,可引导标志;0x00代表不可引导

【2】0x1BF~0x1C1     分区起始地址CHS

【3】0x1C2  分区类型07

【4】0x1C3~0x1C5  分区结束地址CHS

【5】0x1C6  0x00 00 00 13,从磁盘开始到该分区开始的偏移量,以扇区来计算。此分区的偏移量为19,这与WinHex的分析一致

【6】0x1CA~0x1CF 0x02 80 0F ED,十进制为41947117,每个扇区512Bytes,所以该区大小21476923904Bytes,这与我C盘空间20G是匹配的

<2> U盘测试

  U盘通常没有进行多个分区,就只有一个分区,所以在DPT分区表中就记录了一项内容。

紫色区域主要为主引导代码区,红色区域的64字节交给了DPT,着重讲一下DPT分区表

【1】0x1BE 0x80,可引导标志;0x00代表不可引导

【2】0x1BF~0x1C1     分区起始地址CHS

【3】0x1C2  分区类型0C

【4】0x1C3~0x1C5  分区结束地址CHS

【5】0x1C6  0x00 00 00 3F,从磁盘开始到该分区开始的偏移量,以扇区来计算。此分区的偏移量为63,这与WinHex的分析一致

【6】0x1CA~0x1CF 0x00 EF FF C1,也就是此分区包含15728577个扇区,每个扇区512Bytes,所以该区大小8053031424Bytes。需要注意的是这个分区不包含起始扇区的31.5KB。也就是说此分区的空间是U盘总容量去除“起始扇区”后的空间。15728577+63(起始扇区)=15728640(U盘总扇区)

参考资料:SD卡中FAT32文件格式快速入门(图文详细介绍)

       FAT文件系统原理

原文地址:https://www.cnblogs.com/amanlikethis/p/3778534.html