李林蔚
摘要:本篇文章通過對NTFS文件系統的論述,分析了儲存在NTFS文件系統的結構以及存儲機制,提供了常駐文件以及非常駐文件的數據恢復的思路,對丟失數據的恢復工作提供了一定的借鑒作用。
關鍵詞:數據恢復;文件系統;數據運行
引言
近年來,隨著科學技術的不斷發展,也推動了計算機信息技術的快速發展。人們在日常生活和工作中也越來越依賴計算機。不論是企業、個人還是政府機關單位,現在也都是依靠計算機來進行數據信息的接受和處理,同時對于重要的數據信息也都是保存在計算機中。和傳統的數據處理相比,利用計算機來進行數據處理,可大大降低相關工作人員的勞動強度,提高數據處理工作的工作效率,是數據處理工作變的更簡單快捷。而將重要數據保存在計算機中,如果計算機硬件或者軟件因某些原因導致數據信息丟失,那么如何快速地將計算機丟失的數據信息恢復將成為計算機技術中的重要問題。如何快速恢復丟失的數據信息,無論是對企業、個人還是政府機關單位來說都是十分重要的問題。現在,在人們使用的電腦當中,絕大多數用戶使用的還是windows的操作系統。其中windows操作系統中主要使用和發展的文件處理系統是NTFS文件系統,本篇文章主要敘述了NTFS文件系統中文件刪除和恢復的方法和原理。
一、NTFS磁盤分析
在windows操作系統中的NTFS的文件系統都是按照簇來進行文件存取的分配,對于一個簇來說,在使用格式化程序時由格式化程序根據卷的大小的自動分配決定著簇的大小,還要是2的整數次方。在NTFS文件系統中,按照簇的定位還可以將簇分為邏輯簇號以及虛擬簇號兩種。而對于邏輯簇號來說,指的是對卷中所有的簇按照順序進行從前到后的排列,并且起始的邏輯簇號是0;對于虛擬簇號來說,指的是對具體文件的簇按照先后順序進行編號,這樣的編號方式也便于對文件中的數據進行引用,同樣虛擬簇號也是從0開始編號。
1.1NTFS分區的磁盤空間分配
對于NTFS文件系統來說,共有兩大部分共同組成了NTFS的系統分區。其中一部分指的就是分區引導扇區以及主文件表;另外一部分指的就是文件的儲存區域,同時在文件儲存區域的中間位置儲存的正是主文件表中的前四個或者更多的元數據文件的備份。在NTFS文件系統中,為了保證主文件表中的元文件的連續性,NTFS文件系統會把整個磁盤空間的前12%分配給主文件表,并且主文件表對這12%的磁盤空間享有獨占權,而剩下的88%的系統空間才被用來儲存文件。根據相關研究表明,隨著計算機的長時間使用,文件數量也會隨之增加,最終出現主文件表的分區空間不夠使用的情況。在這種情況下,NTFS文件系統會分配另外一個空間來供主文件表使用。而對于這些空間區域的邏輯位置上,在整個儲存空間上是連續的,而在物理地址在空間則不一定是連續的。而對于確定主文件表區域的物理地址對磁盤空間的掃描來說是非常重要的。
1.2分區引導扇區
分區引導扇區保存的是有關卷文件結構的信息以及啟動引導的程序,其中主要的是關于BPB的參數表。而對于BPB表來中的參數來說,主要是在建立文件系統由操作系統自動生成的一組參數。同時在對丟失數據進行恢復時還要用到相關的BPB參數,其中有主文件表區域的起始簇號。
1.3主文件表
在windows操作系統中的NTFS文件系統的核心就是主文件表,電腦中的文件應該在什么位置儲存都是由主文件表來決定的。對于主文件表來說,它指的就是由多個系列文件記錄組成的對應的數據庫,同時主文件表也有其自身的文件需要記錄。而每個文件記錄的大小都為1kb。在主文件表中從0開始編號來完成文件的記錄工作,而編號為前16的文件被稱之為系統文件,同時也可以叫做元文件,這些被用來儲存系統的元數據。同時這些編號在前16的系統文件都以“$”開頭來命名,并且這些也都是隱藏文件。在NTFS文件系統中的主文件表中唯一有固定位置的就是這些元文件。并且這些元數據文件在系統中也有著十分重要的作用,因此為了防止這些元數據文件的丟失,NTFS文件系統都會將它們備份并保存在文件儲存的中部。在NTFS文件系統中上簇的使用情況都被保存在這個位圖文件中,同時為了容易區分出每一簇的使用情況,一般是將每一位代表著卷中的每一簇。同時在數據進行恢復時,也需要運用到被第七記錄的位圖文件“$”bitmap來判斷文件數據區的完整性。在NTFS文件系統卷上都有一個并且是唯一的被稱之為文件引用號的標示。而對于文件引用號來說,其都是由文件號以及文件順序號這兩部分組成,其中文件號是用來表示該文件的主文件表的位置信息。
二、NTFS文件系統下數據恢復的研究
在NTFS文件系統中,其原理就是將磁盤上的所有數據看作文件來處理,同時每一個數據文件在主文件表都有記錄。通過相關研究表明,一般情況下每個文件在創建時,主文件表都會為其自動生成一個文件記錄。而該文件在被刪除時,主文件表所生成的文件記錄并沒有被刪除。根據這一點,在對文件進行恢復的過程中,一般也是通過分析文件記錄以及記錄的屬性,來判斷文件是否被刪除,同時也是根據這點來獲取被刪除文件進行恢復時所需要的文件信息。
2.1MFT文件記錄分析
在NTFS文件系統中,一般是將文件作為屬性或者屬性值的集合來進行處理。當屬性值可以被放在文件記錄中時,被稱之為常駐屬性。而當屬性因為太大不能被存儲到主文件表中時,NTFS文件系統一般是將主文件表之外的儲存空間來進行儲存。而對于只儲存在運行空間的屬性稱之為非常駐屬性。
2.2文件名屬性分析
按照上述分析,文件名屬性是被用來儲存文件名,同時也是常駐屬性。NTFS文件系統幾乎不會限制文件命名,但是為了同時支持舊版本的應用程序,NTFS文件系統會為每一個和dos不兼容的文件名提供一個和dos兼容的文件名。因此,當命名的文件名和dos不兼容時,在系統的文件記錄中會同時出現兩個文件名屬性。這兩個文件名屬性分別是記錄完整文件名的屬性以及記錄與dos兼容的文件名屬性。在進行數據恢復時,需要獲取的也是完整的文件名。
2.3數據流屬性分析
對于數據流屬性來說,其中包含了該屬性的起始和結束的VCN、數據運行的偏移以及是否為常駐屬性的標識位等信息。按照上述分析,如果標識位的數值為0,那么將表示該數據就儲存在主文件表的文件記錄中,同時對該數據的操作可以直接在文件記錄中來完成,也表示該數據屬性為常駐屬性。如果標識位的數值信息為1,那么將表示該數據儲存在運行中,也表示該數據屬性為非常駐屬性,同時也可以根據該數據運行的偏移情況來分析出該數據的運行列表。而在數據列表中也可以詳細了解到每一組數據運行的起始LCN以及該數據運行過程中所占據的簇數,這樣一來便可定位每一個數據的運行情況。
三、NTFS文件系統下數據恢復的實現
根據上述的分析,在NTFS文件系統中,當文件被刪除之后,文件系統需要做的就是在文件記錄的頭部中將標志字設置為00/02H,同時不改變文件記錄的其他屬性信息。而對于有運行的文件,文件系統在文件被刪除后,在改變數據運行內容的前提下,回收文件在運行時所占據的空間,在這個過程中,只是將數據運行所占據的簇在文件中對應的為重置為0.同時根據這些,NTFS文件系統在進行數據恢復時,相關人員也提出了相應的算法:首先是掃描主文件表,從而查找所刪除文件的文件記錄,然后對文件記錄進行分析,從而確定文件運行的數據區,最后是對文件的數據區進行完整性的判斷。因此也可以將數據恢復的工作分為磁盤掃描階段和數據恢復階段。
3.1磁盤掃描階段
在磁盤掃描階段,主要做的就是掃描整個主文件表,找出被刪除文件的文件記錄。然后根據找到的BPB參數,移動到主文件表中的起始地方,在讀取第一個元文件的同時,對文件記錄中的數據流屬性進行分析,以此找出主文件表中的所有運行。同時因為主文件表區域中又存在著一些不連續性,所以在查找整個磁盤上的刪除文件時最重要的就是確定文件系統中的主文件表的位置。
3.2數據恢復階段
在數據刪除后,如果有的文件有數據運行,而在文件原來的數據區上會出現以下情況。當數據區完好時,被刪除的文件可以被全部恢復;而對于數據區被其他文件分配使用時,文件就不能被全部恢復。
結語
隨著信息技術的不斷發展,在數據被刪除后的恢復工作也越來越受到人們的關注。對于數據的保存工作,人們既要提前做好備份工作,還要在發生數據丟失時,能及時進行數據恢復。能掌握一項完善的數據恢復技術也能在重要數據被刪除時,盡量降低因數據丟失帶來的重大損失。
參考文獻
[1]陳培德,王麗清,吳建平.NTFS被快速格式化成NTFS后數據恢復的研究[J].計算機技術與發展,2018,28(08):191-195.
[2]萬超.數據恢復技術在數據恢復取證中的應用研究[J].福建電腦,2017,33(01):114-115+158.
[3]劉俊.WINDOWS系統下基于底層數據分析的數據恢復研究[J].深圳信息職業技術學院學報,2015,13(03):27-32.