【北亞伺服器資料恢復】伺服器reiserfs檔案系統損壞的資料恢復案例

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

伺服器資料恢復環境:

檔案系統是reiserfs的伺服器;

4塊146G SAS硬碟組成的RAID5;

分割槽結構:一個幾十M的boot分割槽,一個271G的LVM卷,一個2G的swap分割槽,LVM卷中直接劃分了一個reiserfs檔案系統

作為根分割槽。


故障:

伺服器在執行過程中由於未知原因系統癱瘓,伺服器管理員重灌系統後發現整個RAID邏輯卷變成了:2G的boot與swap分割槽

,271G的LVM卷,LVM卷中檔案系統位置有個空的reiserfs超級塊。伺服器管理員聯絡北亞資料恢復中心進行資料恢復。

本案例要恢復的資料包括271G的LVM卷中檔案系統裡的所有使用者資料,這些資料包含了資料庫、網站程式與網頁、單位OA

系統裡的所有辦公文件。


伺服器資料恢復過程:

1、透過對全盤reiserfs樹節點之間的關聯確定原來的reiserfs分割槽位置,北亞伺服器資料恢復工程師發現原來儲存資料的檔案

系統的前2G資料已經被覆蓋,應該是伺服器管理員在安裝系統時錯誤地初始化了分割槽結構,裝好系統後無法匯入LVM卷,然

後使用reiserfsck試圖修復檔案系統。


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

拉展後會向整個磁碟的資料區做平滑遷移,所以頂級節點通常不會放在檔案系統的最前面。通常情況下,根目錄的檔案KEY

號是最小的,所以,檔案系統的前2G資料中最多的應該是從根起始路徑最近的key節點,而使用者資料目錄層次較深,節點存

在的可能性很高。前2G的資料已經被覆蓋無法恢復,所以檔案系統對整個樹的索引全丟失,再加上reiserfs的樹概念設計很

抽象,重搭建樹很困難。


2、北亞資料恢復中心工程師透過自主開發的程式對原檔案系統區域進行key節點掃描並將所有節點匯出。然後透過自主開

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

面2G空間(這部分資料沒有用處了)作為新樹的結構區,並生成對應地址資訊。


3、目錄命名問題的解決方案:如遇到原樹路徑某節點丟失的情況,對其用自定義的key節點編號命名;如無法確定其父目錄

,暫加入到/otherfiles下。生成樹索引資訊,寫入特定位置,再根據這些資訊,生成超級塊,設定clear標誌。在suse虛擬機器

下建立快照,掛載修復好的卷,已經可以看到檔案了。

注:虛擬機器與快照的目的為了操作可回溯,同時因bitmap等後設資料不影響資料,未做修正,故掛載前不可做reiserfsck。


4、在修復用的suse虛擬機器下,掛載用於複製資料的目標硬碟,mkfs後將所有資料cp到目標盤。伺服器管理員整理所需資料

,修正部分目錄檔案位置與名稱。對於部分丟失的散檔案,按大小與檔案頭標誌查詢,找到後移動和重新命名。

 

資料恢復結果:

由於樹的不直觀性加上程式的除錯導致本案例的資料恢復工作充滿複雜性和不確定性。所幸的是,經過北亞資料恢復工程師

團隊的不懈努力,所有的重要資料都被找到。


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

相關文章