码迷,mamicode.com
首页 > 其他好文 > 详细

文件系统

时间:2014-06-10 09:16:42      阅读:302      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   a   http   

一、声明和环境描述

1、本文来源

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

2、本文测试环境

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

操作系统:"Windows XP"

测试软件:WinHex 

二、FAT32文件系统布局

bubuko.com,布布扣

三、文件系统MBR

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

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

bubuko.com,布布扣

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

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

bubuko.com,布布扣

3、MBR实例测试

<1> 硬盘测试

bubuko.com,布布扣

  紫色区域主要为主引导代码区,红色区域的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的分析一致

bubuko.com,布布扣

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

<2> U盘测试

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

bubuko.com,布布扣

紫色区域主要为主引导代码区,红色区域的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的分析一致

bubuko.com,布布扣

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

 

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

       FAT文件系统原理

文件系统,布布扣,bubuko.com

文件系统

标签:c   style   class   blog   a   http   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!