linux恢复fat文件系统,磁盘存储结构与文件恢复实验(FAT文件系统)

任务四:查找文件

记录并说明对文本文件进行查找的过程,以及每步产生的结果与分析。

1.根据BPB中的信息,计算FDT位置。

2.编写代码显示FDT,观察长文件名的显示格式,并记录目标文件的首簇号。

3.根据公式计算目标文件起始扇区位置。

4.读取文件在数据区扇区中的内容并记录。

这里分别实验了fat16和fat32:

Fat16:

f8dee4c1f3e1459a6dc4168a9bfcc346.png

根据bpb,每fat表占0f0字节,保留扇区为1,则fdt的起始扇区为1+0f0*2=1e1.

570064fbb2dfd18e46b42a583ab1141e.png

b771b1c27b5a67945e2a5efdf3148ff9.png

546dc820d1220d18690bf0aa70908f7a.png

以上为fdt内容,个人觉得用l命令简单得多,上面的a代码还要涉及每磁道扇区数等等,下面用l实现相同的功能:

f09a7a513d2321aa2ae240ec4ac0e9a6.png

我用的fat16不支持长文件名,所以后面又用fat32重新做了一遍,这里也可以读取文件内容。如1e1(fdt)+20h+4=205h,即fdt起始扇区+fdt大小+(3-2)*每簇扇区数。文件首簇可以从目录项倒数第6字节和第5字节看到。

80d0bc5cfa8926d4e0966c4e9ffd3bb9.png

下面说fat32:

原理基本跟fat16类似:

c4d7cfd62ae470fffe92d628c91bad8f.png

279cbb92cfa6d8bbe06cd7b0b48aa787.png

814ca8a5b716d634a21ac2fcee8ed2ed.png

这里需要说的是bpb肯定不一样,fat表项为4字节,我们现在主要目的是看长文件名,就不赘余了。

ecb28e337b449674d55f780edc627ec9.png

上面的是部分根目录项,其他的被我省了。这里看文件LIHUAN~1.TXT,创建长文件名时,也会创建个短文件名,前6字节+~1构成短文件名,另一个长文件名需要多个目录项时,其倒序排列在短文件名目录项之前。现在查找其内容:由于fat32把根目录放在数据区,故而文件位置在:20(保留扇区数)+2*0ff7(fat大小,在1024-1027)+(08b5-2)*8=65a6:

2be0703887a2df71aa15a03e81da352c.png

任务五:文件删除原理

83fb0983c378190e608b331ff252f500.png

0fb315d1f7f9b57d4ad1848570bf4aa7.png

10b2024255fa6412e42e87eef9524043.png

6d22c5f942c25da17a18e509a39ce4ae.png

1.显示FDT,记录已删除文件在FDT中所对应的状态信息的变化。

2.显示FAT,记录已删除文件在FAT中所对应的状态信息的变化。

3.查看已删除文件在数据区扇区中的内容。

4.根据以上结果,说明文件删除原理。

由以上几个图片可以看出:fat表里对应fat项清0,fdt对应目录项近把第一字节修改为e5,文件内容并不修改。所谓删除,即把fat表项删除,fdt标示e5表示曾被占用,现已删除。0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值