linux恢复fat文件系统,磁盘存储结构与文件恢复实验(FAT文件系统)
任務四:查找文件
記錄并說明對文本文件進行查找的過程,以及每步產(chǎn)生的結(jié)果與分析。
1.根據(jù)BPB中的信息,計算FDT位置。
2.編寫代碼顯示FDT,觀察長文件名的顯示格式,并記錄目標文件的首簇號。
3.根據(jù)公式計算目標文件起始扇區(qū)位置。
4.讀取文件在數(shù)據(jù)區(qū)扇區(qū)中的內(nèi)容并記錄。
這里分別實驗了fat16和fat32:
Fat16:
根據(jù)bpb,每fat表占0f0字節(jié),保留扇區(qū)為1,則fdt的起始扇區(qū)為1+0f0*2=1e1.
以上為fdt內(nèi)容,個人覺得用l命令簡單得多,上面的a代碼還要涉及每磁道扇區(qū)數(shù)等等,下面用l實現(xiàn)相同的功能:
我用的fat16不支持長文件名,所以后面又用fat32重新做了一遍,這里也可以讀取文件內(nèi)容。如1e1(fdt)+20h+4=205h,即fdt起始扇區(qū)+fdt大小+(3-2)*每簇扇區(qū)數(shù)。文件首簇可以從目錄項倒數(shù)第6字節(jié)和第5字節(jié)看到。
下面說fat32:
原理基本跟fat16類似:
這里需要說的是bpb肯定不一樣,fat表項為4字節(jié),我們現(xiàn)在主要目的是看長文件名,就不贅余了。
上面的是部分根目錄項,其他的被我省了。這里看文件LIHUAN~1.TXT,創(chuàng)建長文件名時,也會創(chuàng)建個短文件名,前6字節(jié)+~1構(gòu)成短文件名,另一個長文件名需要多個目錄項時,其倒序排列在短文件名目錄項之前。現(xiàn)在查找其內(nèi)容:由于fat32把根目錄放在數(shù)據(jù)區(qū),故而文件位置在:20(保留扇區(qū)數(shù))+2*0ff7(fat大小,在1024-1027)+(08b5-2)*8=65a6:
任務五:文件刪除原理
1.顯示FDT,記錄已刪除文件在FDT中所對應的狀態(tài)信息的變化。
2.顯示FAT,記錄已刪除文件在FAT中所對應的狀態(tài)信息的變化。
3.查看已刪除文件在數(shù)據(jù)區(qū)扇區(qū)中的內(nèi)容。
4.根據(jù)以上結(jié)果,說明文件刪除原理。
由以上幾個圖片可以看出:fat表里對應fat項清0,fdt對應目錄項近把第一字節(jié)修改為e5,文件內(nèi)容并不修改。所謂刪除,即把fat表項刪除,fdt標示e5表示曾被占用,現(xiàn)已刪除。
總結(jié)
以上是生活随笔為你收集整理的linux恢复fat文件系统,磁盘存储结构与文件恢复实验(FAT文件系统)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一维离散小波变换过程
- 下一篇: linux和windows双系统互拷文件