zoukankan      html  css  js  c++  java
  • 文件系统

    一、声明和环境描述

    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文件系统原理

  • 相关阅读:
    职业倾向测验
    TAU调研咨询
    【转】嵌入式软件工程师经典笔试题
    博客开启啦!
    手淘H5移动端适配方案flexible源码分析
    scrollHeight、clientHeight、offsetHeight、scrollTop等的定义以及图解
    nodejs之路探寻
    学习笔记:Vue+Node+Mongodb 构建简单商城系统(二)
    使用Gulp进行代码压缩的步骤以及配置
    学习笔记:webpack深入与实践(一)
  • 原文地址:https://www.cnblogs.com/amanlikethis/p/3778534.html
Copyright © 2011-2022 走看看