?

基于Windows系統碎片文件的數據恢復研究

2021-01-20 06:21王曉東山東信息職業技術學院電子與通信系楊梅濰坊中學
數碼世界 2020年12期
關鍵詞:扇區清空空閑

王曉東 山東信息職業技術學院電子與通信系 楊梅 濰坊中學

一、引言

隨著信息技術的應用,數據的安全性問題越來越凸顯?,F代人在使用計算機時用得最多的操作系統是Windows,該系統有FAT32和NTFS兩種文件系統。通常我們在對數據誤刪除后,使用數據恢復軟件恢復后的效果不好,原因是這些數據文件是以碎片的形式存儲的。只有找到文件的碎片并重組碎片,才能真正恢復文件。

二、碎片文件產生的原因分析

文件在存儲時如果占用的簇空間是連續的,就不會有碎片。反之,如果占用的簇空間是離散的,簇之間插入了其他的文件內容,該文件的存儲就是碎片文件。

1.文件的分配策略

文件碎片的產生與操作系統采用的分配策略有關,Windows操作系統采用三種分配策略。

(1)第一可用分配策略

如果一個文件占用多個簇空間,當為它分配完一個可用簇繼續分配時,操作系統會回到整個數據區的開始處為文件匹配可用簇,這種策略比較容易出現文件碎片。

例如一個文件要占用3個簇空間,假設數據區前16個簇中1-10、13號簇已經被占用,14號簇開始往后都空閑,系統給文件的分配策略為:系統從數據區的第一個簇開始搜索空閑簇,找到11號空閑簇分配給文件,系統又回到1號簇開始搜索空閑簇,正好此時8號簇的內容被刪除,系統就會把8號簇作為第一個未使用的簇分配給文件。

圖1 第一可用分配策略

(2)下一分配策略

為文件分配了11號簇后,操作系統不會回到數據區的開始處搜索,而是繼續向后搜索空閑簇。對于上面的例子,該策略分配后的結果是11、12、14。

(3)最佳分配策略

操作系統在搜索簇時,盡可能找到一整塊連續的簇來存儲文件,這樣不容易產生文件碎片,如果沒有連續的簇可分配,再使用其他分配策略,該策略分配后的結果是14、15、16。

2.產生文件碎片的情形

(1)文件分配時產生

無論采用哪種文件分配策略,文件在存儲時都會產生碎片。尤其是前兩種分配策略最容易產生,當前常用的Windows7、Windows10操作系統都是采用第二種分配策略。

(2)文件被編輯時產生

文件本身在最初創建好后是連續存放的,但是隨著使用,需要經常對它進行編輯,也就意味著要反復的給它分配和釋放空閑簇,不斷的存刪的過程很容易產生文件碎片。

三、碎片文件的恢復

1.FAT32文件系統下碎片文件的恢復

文件被刪除后,文件的目錄項被標記為未使用狀態,仍然可以從目錄項中找到文件的起始簇號以及文件的大小。體現文件存儲情況的FAT表簇鏈也會被清空,這樣就無法獲取除首簇外其它簇所占用的情況。

恢復文件思路:如果文件存儲時有碎片,提取出來的文件會不正確,要恢復文件還需知道簇的占用情況,但此時簇鏈已經被清空??紤]到文件被刪除后,雖然文件占用的FAT表項被清空,但該文件周圍其他文件的占用的表項號沒有清空,根據FAT文件系統數據區是由FAT表來管理的,FAT表中每一個表項號都對應于一個簇號,我們可以得到恢復思路,就是從該文件占用的第一簇簇號對用的FAT表項號開始,搜索未分配狀態的FAT表項號,根據文件大小計算出要搜索的表項號數量,然后到數據區找到對應的簇號,從而正確提取出文件。

舉例說明恢復方法。文件“zhongguo.doc”是一個有碎片的文件,現被徹底刪除,文件有三個碎片?;謴偷牟僮魅缦拢捍蜷_winhex軟件(Windows系統下十六進制查看器),根據文件名zhongguo定位到文件的目錄項,從目錄項中的讀出文件的起始簇號39,讀出文件的大小算出占用的簇數是11。因為文件被刪除后FAT表簇鏈被清空,從39號表項開始搜索11個空白表項。文件的存儲單元是簇,實際存儲最小單位為扇區,提取文件內容時還要轉化為扇區操作,公式為:簇起始扇區號=保留扇區+FAT表大小扇區*FAT表個數+(該簇號-2)*該簇扇區數。最后根據提取的碎片內容重組文件。

2.NTFS文件系統下碎片文件的恢復

文件被刪除后,文件的的MFT記錄中標志位改變為未使用狀態00(偏移16、17處),目錄中文件的索引項被清除。但是最關鍵的是,存放該文件的文件名的30屬性和存放文件起始簇號、大小的80屬性沒有被清空。

恢復文件的思路:如果文件有碎片,得出文件名字的十六進制形式(NTFS文件系統使用的是UNIDODE碼),根據此值,定位到文件的MFT記錄,分析80屬性的數據運行,計算出每塊碎片文件的起始LCN號及大小,計算時注意,從第二塊碎片文件開始,它的起始LCN號是相對于前一塊碎片文件的起始LCN號的偏移量進行計算的,最后將提取出的碎片文件重組。

舉例說明恢復方法。文件“gongyuan.jpg”是一個有碎片的文件,現被徹底刪除?;謴偷牟僮魅缦拢菏褂脀inhex先得出文件名的unicode碼67006F006E0067007900750061006E00,依據該碼搜索到文件的MFT記錄,在文件的MFT記錄中定位到80屬性,該屬性是非常駐屬性,它的數據運行中存儲的是文件在數據區中簇的占用情況,數據運行為316A70FD01 2154AAD2 3101602B01(見圖2)。根據數據運行計算三塊碎片文件的起始簇號和塊大小。注意碎片文件的起始簇號是相對于前一塊碎片的起始簇號而言的。

表1 碎片文件的存儲分布

圖2 文件的MFT記錄

四、結語

本文針對windows系統下具有碎片的文件被刪除,分別給出了在FAT32和NTFS文件系統下的恢復的方法,在實踐中具有良好效果。

猜你喜歡
扇區清空空閑
MBR磁盤轉換為GPT磁盤的研究與實現
分階段調整增加扇區通行能力策略
很萌!熊孩子清空7萬元購物車
“鳥”字謎
空域扇區網絡級聯失效抗毀性及優化策略
西灣村采風
U盤故障排除經驗談
彪悍的“寵”生,不需要解釋
清空你的購物車是我的溫柔
WLAN和LTE交通規則
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合