【伺服器資料恢復】Ext4檔案系統fsck後mount不上並報錯的資料修復案例

北亞資料恢復發表於2022-08-08

伺服器資料恢復環境:

某公司Linux系統伺服器;

共有兩個分割槽:第一個分割槽是交換分割槽,第二個分割槽是Ext4檔案系統。


伺服器故障&分析:

Ext4檔案系統不能umount,管理員做fsck操作檢查一致性,結果導致Ext4檔案mount不上。報錯資訊:mount: wrong

 fs type, bad option, bad superblock。管理員聯絡我們資料恢復中心進行資料恢復。

日誌和資料不一致造成的正常檔案系統資料被覆蓋,這種故障經常在Ext3、Ext4檔案系統發生,好在本案例中的.journal日

志檔案留有緩衝,可以從.journal日誌檔案裡找到相應資訊並貼上回相應位置,達到重建原檔案的目的。

Ext3、Ext4檔案系統有日誌功能,本案例考慮從.journal日誌檔案中找到丟失資料。


伺服器資料恢復方案:

經過北亞伺服器資料恢復工程師會診最終敲定以下資料恢復方案:

1、透過.journal日誌檔案裡的超級塊備份找到超級塊,確定塊大小。

2、透過.journal日誌檔案裡的超級塊備份找到超級塊,重建超級塊資訊。

3、透過.journal日誌檔案找到目錄節點,重建(恢復)目錄。

4、透過.journal日誌檔案找到目錄節點找到要恢復的檔案的節點資訊,重建(恢復)檔案。


伺服器資料恢復過程:

首先用工具開啟Ext4檔案系統,可以看到0-23扇區的資料(包括超級塊和塊組描述符)被日誌記錄覆蓋。Ext3、Ext4檔案系統

的日誌頁以C0 3B 39 98開頭。如下圖所示。



1、確定塊大小:

超級塊中有關於塊大小的資訊,可以從.journal日誌中查詢超級塊的備份。用工具查詢得到.journal日誌中超級塊的資訊,其

標誌是“53ef”。查詢超級塊方式如下圖所示。檢視塊大小方法如圖4和圖5所示。超級塊0x18-0x1B處描述塊大小,確定本

案例塊大小為4KB。



透過超級塊檢視塊大小如下圖所示。



WinHex模板編輯器也可以顯示塊大小,如下圖所示。



2、重建(恢復)超級塊;

由於原檔案系統超級塊損壞,所以恢復檔案時需要把這部分超級塊資訊貼上回去,即放在2號扇區開始,或1024位元組處。

完成上述操作,超級塊備份的某些地方與實際的超級塊數值可能不一致,需要透過WinHex的模板管理器修改一下。本案例

對超級塊所在的塊組作了修改,它在第0個塊組裡。如下圖所示。



3、重建(恢復)塊組描述表:

由於部分塊組描述表被破壞,所以在.journal日誌檔案裡找到所有的塊組描述表,並把它們貼上回去。.journal日誌檔案裡,

塊組描述符表儲存在超級塊的後面。所以要找塊組描述表時,可以先找到超級塊。找到後將塊組描述符表內容貼上到4096字

節處。


4、重建(恢復)目錄:

當要恢復某個資料夾裡的檔案時,比如kyproc資料夾裡的資料,發現這些資料夾在WinHex裡是不能開啟的狀態,如下圖所

示。很明顯這個目錄損壞了,開啟其節點資訊,發現正常資料被日誌填充,如下圖2所示。




我們找到它的上一級目錄,即var資料夾,右擊點“open”,開啟看到var檔案裡的所有檔案的目錄資訊。找到要恢復的

kyproc目錄的資訊,12 32 EE 00是其i-節點號,10 00表示其目錄項長度,06表示其檔名稱長度,02表示其檔案型別

為目錄。如下圖所示。



然後在var資料夾的目錄塊下查詢kyproc目錄的位置,如下圖所示,標紅的位置是找到的結果。此位置顯示所在塊號為

62399108。



根據所在塊號,就可以定位kyproc目錄相應節點的位置。由於人工補節點比較繁瑣,北亞資料恢復工程師開啟.journal日誌

檔案,從裡面找到其節點資訊,把相應的資訊貼上回去。


上述方法可以重建(恢復)目錄,恢復目錄裡的檔案也是透過同樣的方法從.journal日誌檔案裡找到相應的檔案的節點資訊,

找到後貼上回原來的位置,達到重建(恢復)檔案的目的。


5、完成所有的資料恢復操作後,由管理員親自對恢復出來的資料進行驗證,確認恢復出來的資料完整無誤,本次資料恢復

成功。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31380569/viewspace-2909414/,如需轉載,請註明出處,否則將追究法律責任。

相關文章