怎样得到磁盘的文件系统类型?

hjpblue 2011-02-25 03:29:29
除了通过分区表、BPB表之外,还有什么方法能获取磁盘的文件系统类型啊?我在做sd卡驱动,FAT/FAT32两种文件系统类型都得兼容,通过分区表得到的弊端是有点sd卡没分区表,直接开始就BPB表。本以为可以通过BPB表的“文件系统标志”字段可以得到。但我们老大说:“有的系统或者终端设备人家不写那个‘文件系统标志’字段还是能识别。”的确,把bpb表的“FAT32 ”对应的磁盘内容全改成“00”,windows下依然能识别,请问谁知道是通过什么识别的啊?为此焦头烂额中…………
...全文
56 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hjpraul 2011-02-28
嗯,标准不统一,但我刚才测试了一下,windows是根据判断sector per FAT字段的位置来判断的,因为FAT16和FAT32位置不一样,当不为0时一定是FAT32。
回复
jeremy_guo 2011-02-28
挂载分区时,windows 读了很多sector. 好像识别文件系统时会允许MBR 和boot sector 有些错误
回复
hjpblue 2011-02-25
[Quote=引用 1 楼 of123 的回复:]
不需要 0x52 地址的字符串,0x00 起始的 3 字节:

FAT16 的 DBR: EB 3C 90
FAT32 的 DBR: EB 58 90
NTFS 的 DBR: EB 52 90
[/Quote]
非常感谢您的回答,但我试了下,在windows下,我把(3c 90)(58 90)或者(52 90)改了,windows还是能够识别sd卡的文件系统,我是想要知道windows是通过哪些字段来判断的,即如果改变那些字段则windows不能识别,windows不能识别就得提示格式化磁盘。
回复
of123 2011-02-25
不需要 0x52 地址的字符串,0x00 起始的 3 字节:

FAT16 的 DBR: EB 3C 90
FAT32 的 DBR: EB 58 90
NTFS 的 DBR: EB 52 90
回复
相关推荐
发帖
驱动开发/核心开发
创建于2007-09-28

2.1w+

社区成员

硬件/嵌入开发 驱动开发/核心开发
申请成为版主
帖子事件
创建了帖子
2011-02-25 03:29
社区公告
暂无公告