社区
驱动开发/核心开发
帖子详情
FAT表的应用
ppzzhhsky
2008-12-03 03:17:57
我的U盘使用的是FAT表文件系统,请问用FLASH的物理地址上我要怎么去找到logic 0地址,有什么标志或者什么提示吗?
...全文
409
13
打赏
收藏
FAT表的应用
我的U盘使用的是FAT表文件系统,请问用FLASH的物理地址上我要怎么去找到logic 0地址,有什么标志或者什么提示吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gooogleman
2008-12-13
打赏
举报
回复
[Quote=引用楼主 ppzzhhsky 的帖子:]
我的U盘使用的是FAT表文件系统,请问用FLASH的物理地址上我要怎么去找到logic 0地址,有什么标志或者什么提示吗?
[/Quote]
你的问题都描述错了,根据物理地址去找逻辑0地址?
对于文件系统使用的是逻辑地址,如果想把逻辑地址对应的物理地址找出来,需要在驱动中找才行,但是你的U盘的驱动代码你是没有的,所以我觉得你的目的达不到。
llg84
2008-12-11
打赏
举报
回复
[Quote=引用 10 楼 ppzzhhsky 的回复:]
我觉的应该有个物理-逻辑的映射表,因为对于逻辑来说,物理总是在变化的,但是我不知道该怎么去做
有谁知道吗?
[/Quote]
确实存在这么个映射关系,但是这是由主控芯片来处理的,对系统来说是完全透明的。除非你要把flash芯片拆下来自己读才需要了解相关的东西,否则这个映射关系如何你不需要知道。由于这个映射关系涉及到的wear levelling算法是各家主控厂商的机密,所以你也不可能找到相关资料,只能自己做逆向工程,通过分析flash的spare area(flash芯片每个page除了存储正常数据的区域,还会有一小段用于存储特殊数据,这个就是spare area)上的数据来自己寻找映射关系。
ppzzhhsky
2008-12-11
打赏
举报
回复
我觉的应该有个物理-逻辑的映射表,因为对于逻辑来说,物理总是在变化的,但是我不知道该怎么去做
有谁知道吗?
shuiyan
2008-12-11
打赏
举报
回复
U盘的话,NAND FLASH的坏块管理是由usb-nand转换芯片实现的,所以windows系统是不知道的。
而所谓的物理-逻辑映射表,是指U盘有效block与逻辑存储空间的映射,这个表可以在fat表中修改。有TFFS之类的文件系统能实现这个表的变化。
shuiyan
2008-12-08
打赏
举报
回复
U盘的flash一般是NAND flash,其基本构成是block,每个block又有多个page,每个page容量一样,常见的是2KB/page的,以前的512B/page的现在基本不用了(page的字节数指的是可存储用字节,未包含最后的信息位)。
驱动中会将一个page分成4个sector,这样就符合通用fat对sector的定义:512字节。
而由于nand的坏块的存在,导致logic0 sector在每个芯片上是不确定的。
你如果写应用程序,那调用系统API能获得的磁盘logic 0就是经过驱动转换后的fat格式的logic0,而不是真正物理的逻辑0区。
如果想获得真正的逻辑区信息,可以尝试用CreateFile的方式打开磁盘(文件方式),然后ReadFile(...)读取512字节即可。
llg84
2008-12-08
打赏
举报
回复
不存在分区表的话,磁盘第0扇区就是分区第0扇区,存在分区表的话则需要分析分区表获取分区第0扇区。当然,这个磁盘上的第0扇也并非就是Flash上的0地址,不过这个就不用管了,这是主控的事,你从系统中是看不到这一转换过程的。另外不使用第三方软件格式化或分区的话,U盘都是不带分区表的,因为在windows系统中,可移动介质分区是没有意义的,即便存在多个分区,系统也只会显示第一个分区。
91program
2008-12-03
打赏
举报
回复
[Quote=引用 6 楼 ilovedrv 的回复:]
楼主,看下这篇帖子吧,这是我见过的最全的fat表分析了
http://www.dostor.com/article/2004/0402/9652140.shtml
[/Quote]
这个我也看到过,但不清楚
ilovedrv
2008-12-03
打赏
举报
回复
楼主,看下这篇帖子吧,这是我见过的最全的fat表分析了
http://www.dostor.com/article/2004/0402/9652140.shtml
guetcw
2008-12-03
打赏
举报
回复
没有读过U盘,建议你自己用winHEX这个软件读数据出来看,它会帮你分析好MBR,BPB这些的,学习文件系统的好帮手。
cnzdgs
2008-12-03
打赏
举报
回复
不清楚你要做的是什么程序,所以也不知道自己懂不懂。
ppzzhhsky
2008-12-03
打赏
举报
回复
没有人知道吗?
ppzzhhsky
2008-12-03
打赏
举报
回复
知道有谁懂吗?
谢谢!
91program
2008-12-03
打赏
举报
回复
不懂
看其它高手的!
FAT
表
在RAID恢复中的
应用
(2):判断数据块顺序
同样,我们可以利用
FAT
表
判断阵列中数据块的前后顺序。 注意,我们使用“数据块顺序”而没有说是“磁盘顺序”,是因为同一条带内,数据的排序比较靠前并不代
表
它所在的磁盘排序靠前。比如RAID5中的同步情况,同一条带内,位于校验块之后的数据,从写入顺序上来讲是先于校验块之前的磁盘的,但它们的磁盘排序却在后面。但是,如果我们能确定某几块磁盘是位于校验块的同一侧,则可以根据数据的先后...
FAT
文件系统学习
转自http://blog.chinaunix.net/uid-23141914-id-211775.html 这些天在看关于
FAT
文件系统的一些资料,思路有时混乱,有时又变得清晰起来。我想大抵学习的过程就是这样子吧。 首先在深入的了解
FAT
的linux源码之前,需要了解一些
FAT
的原理。 http://www.sjhf.net/pdf/
fat
.pdf 《
FAT
文件系统原理》 从这个
解析操作系统
FAT
系统的数据存储机制
FAT
(File Allocation Table)是微软1977年为MS-DOS设计的文件系统,曾广泛
应用
于软盘、U盘、早期Windows系统(95/98/ME)及嵌入式设备。本文将聚焦
FAT
12/
FAT
16/
FAT
32的核心存储机制,不涉及ex
FAT
等后续变种。磁盘分区的"物理空间划分规则"
FAT
表
如何记录文件的"数据块路由"目录项如何存储文件元信息如何通过
FAT
表
恢复文件数据链用"快递物流中心"类比磁盘分区结构拆解
FAT
表
、簇、目录项三大核心组件。
FAT
文件系统学习记录一
这些天在看关于
FAT
文件系统的一些资料,思路有时混乱,有时又变得清晰起来。我想大抵学习的过程就是这样子吧。 首先在深入的了解
FAT
的linux源码之前,需要了解一些
FAT
的原理。 http://www.sjhf.net/pdf/
fat
.pdf 《
FAT
文件系统原理》 从这个的简单的介绍中可以了解到
FAT
文件系统的布局,
FAT
表
的组织,目录的形式,长短文件目录项的关系等等。这些都是
FAT
文件
驱动开发/核心开发
21,620
社区成员
21,709
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章