刘宏斌

摘 要 FAT32文件分配表是Windows操作系统磁盘分区格式的一种。采用32位的文件分配表,使其对磁盘的管理能力增强。本文通过文件系统出现乱码对FAT32的文件分配表进行研究和分析

关键词 FAT32:FAT:文件分配表;MBR;DBR

中图分类号 TP3

文献标识码 A

文章编号 1674-6708(2016) 154-0085-02

在日常生活中,U盘,SD卡,MP3,MP4等存储设备都有可能会产生一些乱码文件或者乱码文件夹,比如在磁盘正在读取或者写入的时候,直接把磁盘拔掉或者断电,再有主板上的接口或者接线不是太好,也会使磁盘出现I/O故障,这情况都会导致存储设备上的文件被损坏,好一点的情况出现乱码的文件名或文件夹名,差一点格式就会出现不对应打不开,还有就打开磁盘,就出磁盘损请你格式化磁盘,去格式化又显示格式化无法完成,以上这些情况说明了这些磁盘出现了不同程度的损坏。基本上可以定位在文件分配表出错了。

FAT32文件分配表是Windows操作系统磁盘分区格式的一种。采用32位的文件分配表,使其对磁盘的管理能力增强。又因FAT32分区内无法存放大于4GB的单个文件,且性能不佳,易产生磁盘碎片。硬盘分区已被性能更优异的NTFS分区格式所取代。FAT32目前常用于U盘,SD卡、TF卡等小容量存储设备。

首先,先要了解一下FAT32位分配表的结构

1) FAT32文件系统将逻辑盘的空间分为三块,分别是引导区(BOOT区)、文件分配表区(FAT区)、数据区(DATA区)。这两个区域合起叫作系统区域。

2) 引导区是从O扇区开始,使用连续3个扇区,用来保存这个每sector的BYTE数,每个簇所对应的sector数等一些重要的参数和boot记录,最后还有一部分作为保留扇区。

3) 文件分配表区(FAT区)保存了两个完全相同的文件分配表(FAT),因为文件所占用的存储空间(簇链)及空闲空间的管理全部是通过FAT表来实现的,FAT表非常重要,保存两个FAT表即便是第一个FAT表损坏了,还有第二个FAT表可以使用。

其次,还要了解文件目录表FDT(File DirectoryTable),即DIR区,也叫做ROOT区紧跟在分区表2的后面一个扇区开始,记录着根目录里面每一个文件(目录)的开始地址和文件的属性等。在定位文件位置时,系统会依DIR中存在的开始地址,再看FAT表就可以算出文件在这块硬盘的位置和大小。

如果是长文件名,每个表项就应该是64个字节,前32个字节作为链接说明;后32个字节就是文件的属性说明,其中有文件的长度、文件开始地址、创建的日期及时间。

根目录下面还包含有文件和子目录,子目录下面又包括有文件和下一级目录.一个子目录也要占用一个文件目录项,它的属性字节就变成了10H,文件的长度字节变为“00”。

下能通过一个案例来介绍FAT32文件系统出现乱码的分析。

手里有一个U盘,就一个分区,分区表格式为FAT32,通过磁盘管理的可显示容量,但是通过资源管理器打开发现所有的文件夹和文件的名称变成莫名其秒的名称,无法打开任何一个文件和文件夹,如图所示。

用R-Studio软件进行扫描,软件修复的目录结构根本无法打开。需要恢复的文件为里面又有子目录和文件,数量非常的多,,就算恢复出也无法使用了。如果采用RaW模式来修复,文件名将就要被更换,同样也是无法使用的。

根据这种现象进行分析,磁盘的容量能够正常显示,可以认为FAT表应该完好。但根目录下的文件夹及文件出现了其它不能出现在文件或文件夹的字符,可以肯定是根目录下的目录项出错。

用十六位编辑器WINHEX进行分析,手工修改目录项,使数据得以还原。

步骤如下:

1) 首先现在打开的是物理磁盘,为了方便分析,然后点击“分区1””来打开这个逻辑磁盘。打开有后,就会弹出如图所示的提示。

2) 看到这个提示框中出现的偏移处的值都是错误的,先定位到第一个显示的错误偏移DEE040H处,可以用菜单上面的“位置一>转到偏移量”,在弹出的窗口位置“转到偏移量”框内输入显示器第一个错误的“DEE040H”,跳转到这个偏移地址处,这个偏移地址就是25382号扇区的开始位置。这里要注意DEE20H处的有一个“E5”值,这是一个定义为磁盘内删除的标记。删除标记是目录区里的第一个字节,而目录区的第一个字节应该在本扇区里OOH、20H、40H、60H这些位置上,然而现在却向后面偏移了16个字节,但是前面一个扇区内偏移DEE020H处的E5所在的位置是正确的。说明了,这个地址DEE040H~DEE05FH16个字节是被非正常情况下加进来的。向后面看,向后翻过一个扇区,到到25383号扇区的开始位置,看到这个位置的目录项已经是正常的了,也就是说异常偏移了1个扇区。

3) 回过去再看错误列表,就会发现前面所显示的错误偏移都在这个扇区里面。通过DBR里的信息得知根目录是从25382扇区开始的,这个扇区在根目录内,这就是根目录下的文件和文件夹出现乱码的根本原因。

下面将这个扇区16字节删除,再把16后的内容写入到25382号扇区起始偏移处。保存这些后,重新加载,就会发现文件和文件夹都有正常珠显示出来了。

linux fat32 乱码,FAT32文件系统乱码的研究和分析相关推荐

  1. Linux下Java程序中文乱码问题研究

    Linux下Java程序中文乱码问题研究 摘  要:在一个项目的开发中,我用linux内核源代码和busybox源代码自己编译打造的操作系统mylinux 1.0 ,服务器是我用java语言自己编写的 ...

  2. linux 下制作fat32文件系统的命令

    linux 下制作fat32文件系统的命令: mkfs.vfat -F 32 /dev/sda -需要做文件系统的硬盘分区

  3. linux加载u盘乱码怎么转换,Linux系统下加载U盘设备时文件乱码的有效解决方法

    很少情况会在Linux系统下使用U盘,但是最近有朋友在Linux系统下加载U盘设备的时候发现U盘内的文件出现了乱码现象,这该怎么办呢?很多朋友对Linux系统又不太熟悉,不知道该怎么操作,没关系,让小 ...

  4. oracle11g怎么显示中文,ORACLE11G中PLSQL中文显示乱码、Linux下sqlplus查询中文乱码

    问题描述: 本地是win7操作系统,cmd里面sqlplus进去连接oracle数据库,中文可以正常显示,但是plsql连接oracle数据库,中文显示乱码,还有xshell远程连接oracle服务器 ...

  5. Linux打过cat没有编码,linux系统 终端下 cat中文乱码/vim不乱码 或者 cat不乱码/vim中文乱码...

    场景:在linux系统终端内,用cat查看中文文档乱码,同一文件利用vim查看不乱码.(secureCRT窗口编码为utf-8) 用cat查看中文文档不乱码,同一文件利用vim查看乱码.(secure ...

  6. 解决linux下中文文件名显示乱码问题

    在windows上使用ftp上传文件到Linux上,中文名称在Linux系统中显示为乱码.虽然将Linux的env设置了LANG=en_US.UTF-8,并且本地的Shell客户端编码也设置成UTF- ...

  7. linux中退格出现乱码,SSH中的SQL命令按退格键出现乱码的问题解决

    用SSH调用SQLPLUS输入SQL语句,按backspace(退格键)出现 ^H 的乱码如下所示: [oracle@even ~]$ sqlplus / as sysdba SQL*Plus: Re ...

  8. linux与linux传文件乱码,关于Linux与windows传递文件乱码问题

    linux下一般是采用utf-8的编码,而我们在windows上编辑文件时是gb2312的编码.所以导致中文编码会乱码.要更正这个问题实际上很简单只要把文件转换成utf-8编码格式然后再导入就ok啦. ...

  9. linux中退格出现乱码,SSH中的SQL命令按退格键出现乱码的有关问题解决

    SSH中的SQL命令按退格键出现乱码的问题解决 用SSH调用SQLPLUS输入SQL语句,按backspace(退格键)出现^H的乱码如下所示: [oracle@even ~]$ sqlplus / ...

最新文章

  1. 山有木兮木有枝,心悦君兮君不知
  2. 计算机网络技术简答题,《计算机网络技术》简答题.doc
  3. 2017-6-3 jQuery 事件 DOM操作
  4. 孙兴慜已飞抵阿联酋 能否出战国足将视情况而定
  5. Java调用jar包测试
  6. 用python计算贷款_Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例...
  7. 货郎问题:回溯法和限界分支法
  8. notion函数_Notion使用指南 | Database篇
  9. 从零开始刷Leetcode——数组(118.119.121)
  10. 冰点下载器手机版apk_冰点文库下载器app下载
  11. 线程安全问题?怎么解决线程安全
  12. Scrum板与Kanban如何抉择?prwnfivgd板与按照pgvhzd
  13. html后台登录界面网页设计界面
  14. linux spark单节点环境搭建,Linux下基于Hadoop的Spark1.2单机安装
  15. 干货分享|只发摘要也可以被SCIE检索吗?
  16. android屏幕适配:一个很棒的屏幕适配文章
  17. oj 喵帕斯之天才算数少女
  18. AZC低压智能电力电容解决用电三相不平衡,提高功率因数
  19. android 从左向右平移_Android实现循环平移动画示例
  20. 大四女学霸社招竟成功签约字节跳动,拿下30万年薪,你敢信?

热门文章

  1. 如何清理网易云无损flac格式留下的注释163key(Don't Modify):.........等牛皮癣?
  2. Java 中文转拼音/汉字转拼音, 中文转五笔/汉字转五笔, 下载字典!
  3. 微信公众号开发-----接送事件推送之关注/取消关注
  4. Ubuntu 安装 php8.1
  5. 视觉设计中发现的11种光学错觉
  6. 萌新linux的基础笔记
  7. C-V2X技术发展、应用及展望
  8. 最近打算更新一篇图片上传的文档!(一直更新得比较缓慢)
  9. 玩转OpenStack网络Neutron(1)--热身
  10. 关于Spring框架(官方文档)