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

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

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

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

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

这里分别实验了fat16和fat32:

Fat16:

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

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

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

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

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

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

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

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

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

下面说fat32:

原理基本跟fat16类似:

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

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

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

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

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

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

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

任务五:文件删除原理

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

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

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

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

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

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

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

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

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/16491.html