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