用WinHex查看SD卡FAT32文件系统结构
前段时间自己曾经写了一篇关于sd卡和Fat文件系统的自学笔记(http://blog.chinaaet.com/detail/29284.html),分享了一些当年自己写SD卡驱动和FAT文件系统的心得。其中大多数内容都是基础的,而且后来看看颇有些”授之以鱼“的嫌疑,与俺一直以来”授之以渔“的宗旨颇有些不符,以致于前段时间还有博友网上问我关于怎么使用WinHex软件的问题。之后仔细想来还是觉着再细说一下”渔“的问题为妥,下面我就先浅谈一下最简单的WinHex软件的使用方法,之后再介绍通过它如何分析FAT文件系统结构:
一、如何使用WinHex软件打开SD卡等相关存储设备:
从网上下载免费的WinHex软件(放心,是真免费的,不用破解,呵呵),一路默认,安装完之后,双击打开WinHex软件(事先插好U盘或者SD卡(本篇以SD卡为例)),选择”工具->打开磁盘“,选择插好的SD卡磁盘驱动器,确定之后即可打开该SD卡,效果如下图所示(我事先已经格式化好了,所以里面数据为空):
二、分析FAT32文件系统(我把SD卡格式化成FAT32格式)结构:
对SD卡来说,相当于单个分区,所以比较简单。我们来分析一下它的组成(按照所占地址空间从低到高排列):启动扇区(从第0扇区开始,包括保留扇区,包含一定数量的扇区数)、文件分配表FAT1、FAT2(完全是FAT1的备份)、根目录FDT、数据区(其实FDT算是数据区的一部分)。其中启动扇区中的第0个扇区是重中之重,里面的参数包含了该SD卡的全部基本信息(想详细了解可以查询相关资料),包括保留扇区的数目、FAT表的大小及根目录所在的位置等等(所以如果自己用MCU读写SD卡的话,第0个扇区是必定要查询的,当然如果你固定使用某个SD卡则可以直接用winhex在PC机上查出来,然后事先存到程序里的参数数组里,嘿嘿,我当年最开始做SD卡开发的时候就是这样的,虽然是笨法子却省了不少事)。
具体详细的分析方法,我在博客下面分享了一篇期刊论文,里面就是介绍WinHex分析FAT文件系统存储结构的,可以仔细研究一番。在本篇里,主要以实际为主,下面以我在SD卡根目录下新建一个001.txt文件为例剖析一下其在里面的存储结构(另外需要注意的是Winhex查看是以快照的方式,所以如果你对SD卡里面的内容有所更改需要再次获取新快照,方法为“专业工具->获取卷快照->选中获取新快照”):
1.选中001.txt文件,查看文件存储结构:
2.选中根目录,查看根目录内容:
3.选中FAT1(FAT2与FAT1一样),查看FAT表存储结构:
4.跳转到相应地址或者扇区:
本篇写到这里就不多说了,详细的见附件文档,里面说的比较明白。还有我想说的是WinHex的功能远远不止我上面提到的这几点功能,它真的灰常强大,希望大家能多动手实践来挖掘它更丰富的功能,也欢迎在博客里留言分享使用经验,未完待续~
附件为用WinHex分析FAT文件系统比较详细的一个期刊文档,强烈建议看看~
用WinHex查看SD卡FAT32文件系统结构相关推荐
- SD卡FAT32文件系统格式
一.声明 1.本文来源和主旨 2.本文测试环境 二.SD卡FAT文件系统 1.SD卡FAT32文件系统的整体布局 2.FAT文件系统简介 ① 文件分配表 ② 目录项 三.DBR(DOS BOOT RE ...
- 配置SD卡ext文件系统启动
配置SD卡ext文件系统启动 参考ug1144 的ch6 的最后一节Configuring SD card ext filesystem Boot 1 制作SD启动卡(含FAT32和EXT4两个分区) ...
- Ubuntu18.04烧录U-Boot时格式化SD卡的文件类型(RAW 格式)
Ubuntu18.04烧录U-Boot时格式化SD卡的文件类型 前言 1.问题的提出 2.分析问题 3.用dd命令格式化SD卡 dd命令: 参数: 4.SD卡的烧录 5.再谈SD卡的分区 前言 本文只 ...
- /mnt/sdcard或者/sdcard这是Android手机中SD卡的文件夹路径
Android系统的开放,使其用户可以自己查看系统和SD卡中的文件夹.就系统和SD卡中常见的目录代表什么意思,下面是一个较实用的总结: 一.SD卡中 1. /mnt/sdcard或者/sdcard这是 ...
- linux读取树莓派SD卡,如何修复及查看SD卡上树莓派系统(转)
如何查看SD卡的分区,使用这个命令即可: sudo fdisk -l Device Boot Start End Sectors Size Id Type /dev/mm ...
- android 自动下一首,Android播播放完SD卡指定文件夹音乐之后,自动播放下一首
最近做一个项目,需要连续播放音乐,播放完一首歌之后,自动播放完下一首歌.不要重复播放. 代码如下: package com.example.asyncplayer_ex; import java.io ...
- linux sd卡中文件多时读写,数据存储与访问之——文件存储读写
1.Android文件的操作模式 在java中要想对文件做读写操作,只需创建 文件,读写数据即可,Android却是不同,android基于Linux,在读写文件的时候,还需要加上文件的操作模式. 文 ...
- 使用winhex查看SD卡文件的物理扇区地址
一.前言 最近在一个工程中需要读取存放在SD卡中的图片数据,在格式化了SD卡之后,我把.bin格式的图片数据使用读卡器移动到了SD卡中.然后将读取SD卡的程序的bit流下载进了FPGA中,之前是可以正 ...
- Android系统SD卡各类文件夹名称
1..android_secure:官方app2sd的产物,存储了相关的软件使用认证验证,删除之后SD卡中的软件将无法使用. 2.Android:存放重要的程序数据,比如google:map的地图缓存 ...
最新文章
- mysql 创建库 5.7_MySQL数据库之MySQL5.7创建用户时报错
- Science:又一明星菌群可以调控肠道免疫?
- 东方数智发布新品AIDOL™,打造人工智能偶像全息平台
- Android -- 消息处理机制源码分析(Looper,Handler,Message)
- eeglab中文教程系列(4)-预处理工具
- 自己写的thinkphp自动生成类
- linux查看告警日志,shell脚本,用于监视Linux中的消息日志(警告,错误和严重)...
- 双向链表简单实现及图示
- 通过扩展方法,将C#的DateTime(日期)转换成人性化的显示
- leetcode 90. 子集 II(回溯算法)
- 并发执行变成串行_大神浅谈数据库并发控制 锁和 MVCC
- 大麦云原生边缘计算探索,让观众剧院看戏也能实现个性化
- nginx documentation | Development guide
- ad怎么修改栅格_江苏宋女士回农村100万盖洋房,6个闺蜜结伴养老,你怎么看?...
- python中定义的类的方法调用老出现missing 1 postional argument 或者self的解决办法
- 浏览器密码查看工具-WebBrowserPassView使用实验 ——合天网安实验室学习笔记
- excel熵值法计算权重_SPSSAU一众新功能上线:高级公式、综合得分一键计算!
- 【HTML + CSS】模仿腾讯云页面——初步实现
- 应聘必看——75道逻辑题答案
- mysql 小于号转义_mybatis ![CDATA[ ]] 使用,小于大于号转义 和小于号大于号使用