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