【伺服器資料恢復】reiserfs檔案系統下RAID5資料恢復案例

北亞資料恢復發表於2023-02-08

伺服器資料恢復環境:

某品牌伺服器由4塊SAS硬碟組成RAID5,Linux作業系統;

儲存分割槽結構:boot分割槽+LVM卷(劃分了一個reiserfs檔案系統,作為根分割槽)+swap分割槽。


伺服器故障:

伺服器在正常執行中由於未知原因導致系統癱瘓,管理員重新安裝系統以後發現整個RAID邏輯卷變成:boot分割槽+swap分割槽

+LVM卷,LVM卷中檔案系統位置有個空的reiserfs超級塊。

需要恢復的就是原reiserfs檔案系統中的所有資料,包含資料庫、網站程式、網頁、OA系統的所有辦公檔案。


伺服器資料恢復過程:  

1、伺服器資料恢復工程師首先對故障伺服器中所有硬碟以只讀方式做扇區級別的映象備份,後續的資料分析和資料恢復操作

基於映象檔案進行,避免對原始資料造成二次破壞。

2、基於映象檔案分析底層資料,透過對全盤reiserfs樹節點之間的關聯來確定原reiserfs分割槽位置,發現原reiserfs檔案系統

前面部分資料被覆蓋,應該是管理員在重灌系統時錯誤地初始化分割槽結構,裝好系統後無法匯入LVM卷,試圖透過reiserfsck

進行修復。

3、reiserfs檔案系統對檔案系統中所有的檔案(含目錄)線性化後會以檔案key生成B+樹,樹不斷增加節點,樹的結構整體拉

展後會向磁碟的資料區平滑遷移,所以頂級節點一般不會被放在檔案系統的最前面。

4、根目錄的檔案KEY號通常是最小的,從空間上看,reiserfs檔案系統前面的部分資料中儲存的應該是從根起始路徑最近的

key節點。該案例的資料目錄層次較深,節點很大可能還存在。原reiserfs檔案系統前面部分被覆蓋的資料已經無法恢復,位

於reiserfs檔案系統前面部分的整個樹的索引全部丟失,加上reiserfs的樹概念設計抽象,重搭建樹行不通。

5、透過北亞企安自主開發程式掃描整個原reiserfs檔案系統區域的key節點,將所有節點匯出。然後透過北亞企安自研程式

對所有葉節點進行重新排序、過濾(去掉之前刪除檔案丟棄的節點),重新生成二級、三級、四級等葉節點。選擇分割槽前面被

覆蓋的空間作為新樹的結構區,生成對應地址資訊。

6、對目錄命名:如果原樹路徑某節點丟失,則使用自定義的key節點編號命名;如果無法確定其父目錄,暫加入到/otherfiles

目錄下。

7、根據上面對生成樹索引資訊並寫入特定位置,再根據這些資訊生成超級塊,設定clear標誌。

8、在suse虛擬機器下建立快照,掛載修復好的卷,這時候已經可以看到檔案了。

9、在用於修復的suse虛擬機器下掛載用來copy資料的目標硬碟,mkfs後將所有資料cp到目標盤。

10、使用者使用find命令整理所需資料,修正部分目錄檔案位置與名稱。對於部分丟失的散檔案則按照檔案大小與檔案頭標誌

查詢,找到後移動並重新命名。

11、透過上述步驟,將所有需要恢復的資料都找到了,經過使用者的反覆驗證,確認恢復出來的資料完整可用。


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

相關文章