服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境:
Linux系統(tǒng),Ext4文件系統(tǒng);
劃分為2個分區(qū):1個交換分區(qū)和1個文件系統(tǒng)分區(qū)。
在分析實(shí)際案例之前,我們先了解一下Ext4的相關(guān)知識。
Ext4文件系統(tǒng)的全部空間被劃分為若干個塊組,每個塊組內(nèi)的結(jié)構(gòu)大致相同。
每個塊組都對應(yīng)一個塊組描述符,這些塊組描述符都放在文件系統(tǒng)的前部,稱為塊組描述符表。每個塊組描述符大小為32字節(jié),描述了塊位圖、i-節(jié)點(diǎn)位圖及i-節(jié)點(diǎn)表的地址等信息。
超級塊(Superblock)是用來存儲文件系統(tǒng)的配置參數(shù)(如塊大小、總塊數(shù)、i-節(jié)點(diǎn)數(shù))和動態(tài)信息(當(dāng)前空閑塊數(shù)和i-節(jié)點(diǎn)數(shù))。Ext4文件系統(tǒng)的超級塊(Superblock)開始于1024字節(jié)處,即2號扇區(qū)。
i節(jié)點(diǎn)描述文件的時間信息、大小、塊指針等信息。
塊組描述符和超級塊在塊中的位置:當(dāng)塊大小為2個扇區(qū)時,0號塊是引導(dǎo)程序或者保留塊,超級塊起始于1號塊。當(dāng)塊大小為4個扇區(qū)時,引導(dǎo)程序或者保留塊位于0號塊的前兩個扇區(qū),超級塊位于0號塊的后兩個扇區(qū)。當(dāng)塊大小為8個扇區(qū)時,引導(dǎo)程序或者保留塊位于0號塊的0-1號扇區(qū),超級塊位于0號塊的2-3號扇區(qū)。
Ext4文件系統(tǒng)的整體結(jié)構(gòu)及第一個塊組的具體結(jié)構(gòu)如下圖所示:
北亞數(shù)據(jù)恢復(fù)——Ext4文件系統(tǒng)數(shù)據(jù)恢復(fù)
服務(wù)器故障&分析:
某公司Ext4文件系統(tǒng)umount失敗,管理員執(zhí)行fsck檢查一致性,結(jié)果Ext4文件mount不上(有時也表現(xiàn)為目錄變成了文件),報錯信息:mount: wrong fs type, bad option,bad superblock。
因?yàn)槿罩竞蛿?shù)據(jù)不一致而導(dǎo)致正常文件系統(tǒng)數(shù)據(jù)被覆蓋的情況在Ext3、Ext4文件系統(tǒng)中發(fā)生的頻率較高。由于journal日志文件保留著緩沖數(shù)據(jù),數(shù)據(jù)恢復(fù)時可以通過joumal日志文件找到相關(guān)信息并重建源文件。
安裝Linux系統(tǒng)的硬盤第一個扇區(qū)是MBR扇區(qū),通過觀察MBR分區(qū)表得知本案例中Linux系統(tǒng)分為兩個分區(qū):交換分區(qū)和文件系統(tǒng)分區(qū)。北亞數(shù)據(jù)恢復(fù)工程師決定通過joumal日志文件找回丟失的數(shù)據(jù)。
經(jīng)過數(shù)據(jù)恢復(fù)工程師的檢測分析,本案例Ext4文件系統(tǒng)相關(guān)信息如下:
1、塊大小為固定的4KB,即8個扇區(qū)。
2、超級塊(Superblock)起始位置在1024字節(jié)處,即2號扇區(qū),大小為2個扇區(qū)。
3、塊組描述表從第一個塊開始,即從4096字節(jié)處開始。
服務(wù)器數(shù)據(jù)恢復(fù)過程:
1、首先用數(shù)據(jù)恢復(fù)工具將Ext4文件系統(tǒng)打開,發(fā)現(xiàn)0-23扇區(qū)的數(shù)據(jù)(包括超級塊和塊組描述符)被日志記錄所覆蓋。Ext3、Ext4文件系統(tǒng)的日志頁以C0 3B 39 98開頭。
北亞數(shù)據(jù)恢復(fù)——Ext4文件系統(tǒng)數(shù)據(jù)恢復(fù)
超級塊中可以找到關(guān)于塊大小的信息。從journal日志中把超級塊的備份查找出來,然后再通過數(shù)據(jù)恢復(fù)工具進(jìn)行超級塊信息的查找,其標(biāo)志是“53ef”。超級塊0x18-0x1B處描述塊大小,本案例塊大小為4KB。
北亞數(shù)據(jù)恢復(fù)——Ext4文件系統(tǒng)數(shù)據(jù)恢復(fù)
通過超級塊查看塊大小。
北亞數(shù)據(jù)恢復(fù)——Ext4文件系統(tǒng)數(shù)據(jù)恢復(fù)
通過數(shù)據(jù)恢復(fù)軟件的模板編輯器也可以顯示塊大小。
北亞數(shù)據(jù)恢復(fù)——Ext4文件系統(tǒng)數(shù)據(jù)恢復(fù)
2、重建(恢復(fù))超級塊;由于原文件系統(tǒng)超級塊損壞,所以恢復(fù)文件時要把這部分超級塊信息粘貼回去,即放在2號扇區(qū)開始或1024字節(jié)處。超級塊備份的某些部分的數(shù)值可能與實(shí)際的超級塊數(shù)值不一致,這種情況下需要通過數(shù)據(jù)恢復(fù)工具的模板管理器進(jìn)行修改。本案例對超級塊所在的第0個塊組做了修改。
北亞數(shù)據(jù)恢復(fù)——Ext4文件系統(tǒng)數(shù)據(jù)恢復(fù)
3、重建(恢復(fù))塊組描述表;由于部分塊組描述表被破壞,所以需要先在journal日志文件里找到所有塊組描述表并把它們粘貼回去。本案例中journal日志文件里的塊組描述符表存儲在超級塊的后面,要找塊組描述表可以先找超級塊,找到后將塊組描述符表內(nèi)容粘貼到4096字節(jié)處。
4、重建(恢復(fù))目錄;當(dāng)要恢復(fù)某個文件夾里的文件時,比如kyproc文件夾里的數(shù)據(jù),這些文件夾在WinHex里是不能打開的狀態(tài),這意味著這個目錄已經(jīng)損壞(下圖1)。打開其節(jié)點(diǎn)信息,發(fā)現(xiàn)正常數(shù)據(jù)被日志填充(下圖2)。
北亞數(shù)據(jù)恢復(fù)——Ext4文件系統(tǒng)數(shù)據(jù)恢復(fù)
北亞數(shù)據(jù)恢復(fù)——Ext4文件系統(tǒng)數(shù)據(jù)恢復(fù)
找到上一級目錄var文件夾,右擊點(diǎn)“open”,打開后能看到var文件夾里的所有文件的目錄信息。找到要恢復(fù)的kyproc目錄的信息:12 32 EE 00是其i-節(jié)點(diǎn)號,10 00表示其目錄項長度,06表示其文件名稱長度,02表示其文件類型為目錄。如下圖所示。
北亞數(shù)據(jù)恢復(fù)——Ext4文件系統(tǒng)數(shù)據(jù)恢復(fù)
在var文件夾的目錄塊下查找kyproc目錄的位置,如下圖所示,標(biāo)紅的位置是找到的結(jié)果。此位置顯示所在塊號為62399108。
北亞數(shù)據(jù)恢復(fù)——Ext4文件系統(tǒng)數(shù)據(jù)恢復(fù)
根據(jù)所在塊號可以定位kyproc目錄相應(yīng)節(jié)點(diǎn)的位置。由于人工補(bǔ)節(jié)點(diǎn)比較繁瑣,可以從journal日志文件里面找到其節(jié)點(diǎn)信息,把相應(yīng)的信息粘貼回去。
通過上述方法可以重建(恢復(fù))目錄。恢復(fù)目錄里的文件也是通過同樣的方法從journal日志文件里找到相應(yīng)的文件的節(jié)點(diǎn)信息,找到后粘貼回原來的位置,達(dá)到重建(恢復(fù))文件的目的。
5、經(jīng)過數(shù)據(jù)恢復(fù)工程師的努力,終于把用戶需要的數(shù)據(jù)都恢復(fù)出來,經(jīng)過數(shù)據(jù)恢復(fù)工程師和用戶的核檢沒有發(fā)現(xiàn)問題。本次數(shù)據(jù)恢復(fù)工作完成。
-
Linux
+關(guān)注
關(guān)注
87文章
11292瀏覽量
209328 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9123瀏覽量
85324 -
數(shù)據(jù)恢復(fù)
+關(guān)注
關(guān)注
10文章
568瀏覽量
17432
發(fā)布評論請先 登錄
相關(guān)推薦
評論