FAT文件系统与文件恢复

FAT文件系统与文件恢复

一、FAT32文件系统结构介绍

FAT32文件作为Windows操作系统的主流文件,其文件系统主要由MBR、DBR及其保留扇区、FAT1、FAT2和DATA五部分组成。FAT1与FAT2的大小相同,FAT可变长度,其长度随着分区大小、每簇扇区数的变化而变化。在FAT32文件中,把目录当文件管理,所以没有独立的目录区。

1.1 主引导记录

硬盘的第1个扇区叫 MBR (Master Boot Record)扇区,为主引导扇区记录,占512字节,MBR的引导程序占前446个字节,后64个字节为硬盘分区表DPT,末尾的两个字节 “55AA”是分区有效结束标志。 引导标志位只能是 00H 和 80H,80H指活动,00H指非活动, 其余值默认非法。

1.2 操作系统引导记录

DBR (DOS Boot Record),操作系统引导记录。文件系统的 DBR 包括跳转指令、OEM 代号、BPB、引导程序和结束标志。 对 FAT32 进行数据恢复时,通常可由引导扇区 BPB 参数中的保留扇区数、FAT数、每个 FAT32所占扇区数来定位根目录的起始位置。

1.3 文件分配表

FAT(File Allocation Table),文件分配表。在FAT32文件中有两个相同的FAT,第一个称为主FAT,另一个是FAT1的备份。FAT是位于DBR之后,同一个文件的数据并不一定完整地存放在磁盘的一个连续区域内,以链式存储方式记录于FAT表中。

1.4 文件系统目录项

FAT32文件系统没有独立的根目录区,分区根目录下的文件及文件夹的目录项存放在根目录区中,分区子目录下的文件及文件夹的目录项存放在子目录区中,根目录区的和子目录区都在数据区中。文件目录项(FDT)占32字节,子目录项的长度为零,已删除目录项的首字节值为 E5H。

1.5 数据区

数据区位于FAT2之后。对数据区中数据定位,首先通过分区表信息, 定位相应的 DBR 扇区,得到 DBR 保留扇区数值和每个 FAT扇区数,通过相应的计算公式得到分区的数据区起始扇区。

二、DBR扇区及其保留扇区

FAT32引导扇区结构 (仅取关键字节)

字节偏移(16进制)字节数含义
0x00-0x022汇编指令,跳转到引导代码处
0x0B-0x0C2每扇区字节数,一般为512
0x0D1每簇扇区数,这个值为2个整数次幂 最大不超过64
0x20-0x234文件系统扇区总数
0x24-0x274每个FAT表占用扇区数
0x2C-0x2F4根目录起始簇号
0x52~0x598文件系统格式的ASCII码
0x5A~0x1FD410引导代码
0x1FE-0x1FF2签名“55AA”
0x200~0x2034扩展引导标志“52 52 61 41”
0x204~0x3E3480全部置0
0x3E4~0x3E74FSINFO签名“72 72 41 61”
0x3E8~0x3EB4文件系统的空簇数
0x3EC~0x3EF4下一可用簇号
0x3FE~0x3FF2签名“55AA”
 offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
00000000 |  EB 58 90 4D 53 44 4F 53  35 2E 30 00 02 08 22 00 
00000010 |  02 00 00 00 00 F8 00 00  3F 00 FF 00 3F 00 00 00 
00000020 |  C5 BB 3F 00 E7 0F 00 00  00 00 00 00 02 00 00 00 
00000200 |  52 52 61 41 00 00 00 00  00 00 00 00 00 00 00 00
000003E0 |  00 00 00 00 72 72 41 61  77 F3 07 00 05 00 00 00

0x00-0x10:58EB跳转指令,即JMP 5890为NOP指令,后面8个字节表示文件系统标志和版本号为MSDOS5.0,0200指每扇区512字节. 08 指每簇有8个扇区,0022指保留扇区数有34个, 02 指FAT表个数为2。

0x20-0x23 :文件系统总扇区数为003FBBC5,每个FAT表占用00000FE7个扇区,根目录所在的第一个簇的簇号为0x02

0x3E8-0x3EF: 文件系统空簇数为0007F377,下一可用簇号为00000005

三、FAT表

FAT表项的前两个FAT项为文件系统保留使用,0号FAT为介质类型,1号FAT为文件系统错误标志。用户的数据从2号FAT开始记录。

如果某个文件占用很多个簇,则第一个FAT项记录下一个FAT项的编号(既簇号),如果这个文件结束了,则用“0F FF FF FF”表示。

定位FAT与数据区绝对位置的方法:

1、从MBR的分区表中得知分区的起始扇区,偏移到此扇区。

2、从DBR的BPB中得知DBR的保留扇区数,FAT表的个数,FAT表的大小。

3、FAT1=分区起始扇区+DBR保留扇区,FAT2=分区起始扇区+DBR保留扇区+FAT1,根目录=分区起始扇区+DBR保留扇区+(FAT表 * 2)+(簇大小 * 2)

四、根目录
字节偏移(16进制)字节数含义
0x00-0x078文件名,不足8个字节0x20补全
0x08-0x0A3扩展名
0x0B1文件属性,0x20表示归档
0x0D1创建时间的10毫秒位
0x0E-0x0F2文件创建时间
0x10-0x112文件创建日期
0x12-0x132文件最后访问日期
0x14-0x152文件起始簇号的高16位
0x16-0x172文件最近修改时间
0x18-0x192文件最近修改时间
0x1A-0x1B2文件最近修改时间
0x1C-0x1F4文件的长度
五、FAT32文件恢复
实验准备

VMware Fusion + Winxp虚拟机 + Winhex

  1. 搭建FAT32文件系统:在VMware上新建硬盘并在xp虚拟机中初始化为FAT32文件系统,命名为D,在其中创建测试文件。

  2. 使用winhex打开D盘:每个扇区512字节,每个簇8个扇区,保留扇区数34,磁盘有两个FAT,每个FAT占扇区4071,每个簇占用4096个字节。
    在这里插入图片描述

  3. 查看根目录模板:TEST文件大小为0000598D即22925个字节,占6个簇。TEST文件的首簇号在00000005(14h-15h,1Ah-1Bh)。

    在这里插入图片描述

    54 45 53 54 20 20 20 20  54 58 54 20 18 56 97 80 |TEST TXT
    99 4F 99 4F 00 00 66 A6  99 4F 05 00 8D 59 00 00 |
    
  4. 查看文件的簇链表

    06 00 00 00 07 00 00 00 08 00 00 00 09 00 00 00 
    0A 00 00 00 FF FF FF 0F | 以0FFFFFFF结尾
    
直接右键删除文件的文件恢复

根目录下文件首字节变成E5,文件大小不变,文件首簇号不变。

E5 45 53 54 20 20 20 20 54 58 54 20 18 56 97 80 
99 4F 99 4F 00 00 66 A6 99 4F 05 00 8D 59 00 00

进入簇链表,内容也和原来一样,则只需要修改其首字节为54即可完成文件恢复。即右键E5->编辑->填充选块->输入16进制数。

Shift+delete删除文件的文件恢复

根目录下文件首字节变成E5,文件大小不变,文件首簇号不变,文件对应的簇链表内容被清空。

00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 

根据首簇号为5,修改簇链表内容为

06 00 00 00 07 00 00 00  08 00 00 00 09 00 00 00 
0A 00 00 00 FF FF FF 0F

即恢复成功。

这种方法的前提是默认首簇号的高16位为0,判断首簇号是否为0的检验方法:

1.根据根目录中对应文件首簇号的高位和低位来计算首簇号其相应的十进制数,然后菜单->导航->转到扇区->簇->查看里面的数据是否是我们想要的数据,如果不是则猜测错误。接着猜测高位为0001,即可找出正确的高位。
2.修改了根目录的簇链高位后,进行簇链的恢复:导航->转到FAT项->输入由簇链高位低位计算得出的十进制数->修改相应的簇即可。
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: FAT文件系统和NTFS文件系统是Windows操作系统中常用的两种文件系统,它们有以下几个区别: 1. 文件系统结构不同:FAT文件系统采用的是FAT的方式来管理磁盘空间,而NTFS文件系统采用的是一种称为“Master File Table”(MFT)的数据结构来管理磁盘空间。 2. 支持的最大磁盘容量不同:FAT文件系统最大支持的磁盘容量为2TB,而NTFS文件系统最大支持的磁盘容量为16EB(1EB等于1024PB)。 3. 安全性不同:NTFS文件系统支持文件加密和权限控制,可以设置对文件文件夹的访问权限,以保护文件的安全性,而FAT文件系统没有这些安全控制功能。 4. 兼容性不同:FAT文件系统具有很好的兼容性,可以在不同的操作系统平台之间共享文件,而NTFS文件系统只能在Windows平台上使用,与其他操作系统之间的兼容性不是很好。 5. 文件存储方式不同:NTFS文件系统采用一种称为“文件属性列”(FAT)的机制来存储文件的属性信息,而FAT文件系统则将文件的属性信息存储在文件的目录项中。 总体来说,NTFS文件系统FAT文件系统更安全、更稳定,支持更大的磁盘容量和更多的文件属性,但是兼容性较差。FAT文件系统则兼容性更好,但是安全性和稳定性相对较弱。 ### 回答2: FAT 文件系统和 NTFS 文件系统是常见的在 Windows 操作系统中使用的文件系统类型。它们有以下几个主要区别: 1. 功能和支持:FAT 文件系统是早期的文件系统,提供的功能有限。它主要用于低容量存储设备(如闪存驱动器),不能实现高级功能,如文件加密、磁盘配额、文件压缩、文件系统日志等。而 NTFS 是更先进和全面的文件系统,提供了更多的功能和支持。它可以实现文件文件夹级别的安全性控制、数据压缩、磁盘配额控制、容错能力、更好的性能等。 2. 文件大小和文件名支持:FAT 文件系统文件大小限制,最大只能支持 4GB 的单个文件。而 NTFS 文件系统支持更大的文件大小,允许存储几 TB 或更多的单个文件。此外,FAT 文件系统对于文件名的支持也有限,像只能使用 8 个字符为主文件名和 3 个字符为扩展名。而 NTFS 文件系统支持长文件名(高达 255 个字符)和更多的特殊字符。 3. 安全性和可靠性:NTFS 文件系统FAT 文件系统更安全可靠。NTFS 支持访问控制列(ACL),可以实现对文件文件夹的权限控制;而 FAT 文件系统没有这个功能。NTFS 文件系统还具有容错能力,可以通过文件系统日志来修复文件系统错误。 4. 兼容性:FAT 文件系统在各种操作系统和设备上都具有很好的兼容性,但 NTFS 文件系统主要用于 Windows 系统,对于其他操作系统的兼容性较差。 ### 回答3: FAT(File Allocation Table)文件系统和NTFS(New Technology File System)文件系统是Windows操作系统中常用的两种文件系统。它们之间存在着以下几点区别。 首先,FAT文件系统是早期Windows系统使用的文件系统,而NTFS文件系统是Windows NT系列操作系统引入的新一代文件系统。NTFS相比FAT具有更强大的功能和可靠性。 其次,FAT文件系统文件文件夹的命名有一定限制,文件名最长只能是8个字符加上3个字符的扩展名,而NTFS文件系统支持更长的文件名,最长可达到255个字符。 第三,FAT文件系统不支持文件文件夹的权限控制,任何用户都可以对文件进行修改或删除。而NTFS文件系统支持将权限分配给特定的用户或用户组,可以精细地控制对文件的访问权限。 第四,NTFS文件系统支持文件压缩和加密功能,可以减小磁盘占用空间和保护敏感数据的安全性。而FAT文件系统不支持这些功能。 第五,NTFS文件系统具有更强大的容错和恢复能力。当系统异常关机或发生文件损坏时,NTFS可以通过日志记录来修复文件系统,确保数据的完整性。而FAT文件系统则更容易导致数据丢失。 综上所述,FAT文件系统和NTFS文件系统文件名限制、权限控制、压缩加密、容错恢复等方面存在着显著的区别。NTFS文件系统相对于FAT文件系统更先进、更稳定、更安全,因此在现代的Windows操作系统中广泛使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值