Ext4文件系統相關概念:
塊組:Ext4文件系統的空間被劃分為若干個塊組,每個塊組內的結構大致相同。
塊組描述符表:每個塊組都對應一個塊組描述符,這些塊組描述符統一放在文件系統的前部,稱為塊組描述符表。每個塊組描述符大小為32字節,其主要描述塊位圖、i-節點位圖及i-節點表的地址等信息。
超級塊(Superblock):用于存儲文件系統的配置參數(如塊大小、總塊數、i-節點數)和動態信息(當前空閑塊數和i-節點數)。Ext4文件系統的超級塊(Superblock)開始于1024字節處,即2號扇區。
i節點:描述文件的時間信息、大小、塊指針等信息。
塊組描述符和超級塊在塊中的位置:當塊大小為2個扇區時,0號塊是引導程序或者保留塊,超級塊起始于1號塊。當塊大小為4個扇區時,引導程序或者保留塊位于0號塊的前兩個扇區,超級塊位于0號塊的后兩個扇區。當塊大小為8個扇區時,引導程序或者保留塊位于0號塊的0-1號扇區,超級塊位于0號塊的2-3號扇區。
Ext4文件系統結構及第一個塊組結構:
北亞企安數據恢復——Ext4文件系統數據恢復
Ext4文件系統故障&初檢&分析:
某公司服務器Ext4文件系統umount失敗,管理員執行fsck操作檢查一致性,導致Ext4文件系統mount不上并報錯,報錯信息:“mount:wrong fs type,bad option,bad superblock”。
日志和數據的不一致導致正常文件系統數據被覆蓋的情況在Ext3、Ext4文件系統中發生頻率較高。因為.journal日志文件保留了緩沖數據,可以通過.joumal日志文件找到相應信息并重建源文件。
通過查看MBR分區表得知本案例中的Linux操作系統分了兩個分區:交換分區+Ext4文件系統。北亞企安數據恢復工程師通過對該Ext4文件系統的分析,得到以下信息:
1、塊大小為固定的4KB,即8個扇區。
2、超級塊(Superblock)起始位置在1024字節處,即2號扇區,大小為2個扇區。
3、塊組描述表從第一個塊開始,即從4096字節處開始。
服務器數據恢復過程:
1、將故障服務器上硬盤取出,檢測后沒有發現硬件故障。以只讀方式將磁盤做全盤鏡像,鏡像完成后按照原樣將磁盤還原到原服務器中。后續的數據分析和數據恢復操作都基于鏡像文件進行,避免對原始磁盤數據造成二次破壞。
2、用工具打開Ext4文件系統,可以看到0-23扇區的數據(包括超級塊和塊組描述符)被日志記錄覆蓋。Ext3、Ext4文件系統的日志頁以C0 3B 39 98開頭。
北亞企安數據恢復——Ext4文件系統數據恢復
在journal日志中將超級塊的備份查找出來,通過工具查找超級塊信息,其標志是“53ef”。超級塊0x18-0x1B處描述塊大小,確定本案例塊大小為4KB。
查找超級塊:
北亞企安數據恢復——Ext4文件系統數據恢復
通過超級塊查看塊大?。?/p>
北亞企安數據恢復——Ext4文件系統數據恢復
塊大?。?/p>
北亞企安數據恢復——Ext4文件系統數據恢復
3、由于原文件系統超級塊損壞,所以恢復文件時,要把這部分超級塊信息粘貼回去,放在2號扇區開始,或1024字節處。做完以上操作,超級塊備份某些地方與實際的超級塊數值可能不一致,需要通過工具進行修改。對超級塊所在的塊組進行了修改,超級塊在第0個塊組里。
北亞企安數據恢復——Ext4文件系統數據恢復
4、由于部分塊組描述表被破壞,所以需要在.journal日志文件里找到所有的塊組描述表并把它們粘貼回去。.journal日志文件里的塊組描述符表存儲在超級塊的后面,要找塊組描述表可以先找到超級塊,找到后將塊組描述符表內容粘貼到4096字節處。
5、恢復某個文件夾比如kyproc文件夾里的數據時,我們發現這些文件夾在WinHex里是不能打開的狀態(如下圖1所示),很明顯這個目錄損壞了。打開其節點信息,發現正常數據被日志填充(如下圖2所示)。
北亞企安數據恢復——Ext4文件系統數據恢復
北亞企安數據恢復——Ext4文件系統數據恢復
找到它的上一級目錄,即var文件夾。右擊點“open”,打開看到var文件里的所有文件的目錄信息。找到要恢復的kyproc目錄的信息,12 32 EE 00是其i-節點號,10 00表示其目錄項長度,06表示其文件名稱長度,02表示其文件類型為目錄(如下圖所示)。
北亞企安數據恢復——Ext4文件系統數據恢復
在var文件夾的目錄塊下查找kyproc目錄的位置(如下圖所示),標紅的位置是找到的結果。此位置顯示所在塊號為62399108。
北亞企安數據恢復——Ext4文件系統數據恢復
根據所在塊號可以定位kyproc目錄相應節點的位置。打開.journal日志文件,從里面找到其節點信息,把相應的信息粘貼回去。
6、通過上述方法重建目錄后開始重建目錄里的文件。重建目錄里的文件也是使用同樣的方法:從.journal日志文件里找到相應的文件的節點信息,找到后粘貼回原來的位置,達到重建文件的目的。
審核編輯 黃宇
-
服務器
+關注
關注
12文章
9231瀏覽量
85625 -
數據恢復
+關注
關注
10文章
580瀏覽量
17522
發布評論請先 登錄
相關推薦
評論