linux服務器reiserfs文件系統損壞,你須要學會這種修復方法

今天爲你們介紹一個Linux服務器數據恢復成功案例,本次服務器數據恢復物理服務器請款以下:客戶故障服務器爲一臺X3850服務器,這個服務器是由4塊146G SAS硬盤組成的RAID5做爲存儲介質,文件系統全都是reiserfs。咱們首先通過分析發現了以前的硬盤數據組織結構是由一個不到100M的boot分區,後接一個271G的LVM卷,以後是2G的swap分區。LVM卷中直接劃分了一個reiserfs文件系統,做爲根分區。

·
  服務器在正常使用過程當中,因爲未知緣由致使系統癱瘓,急需進行服務器數據恢復,通過系統的重裝之後發現整個RAID邏輯卷變成了前面2G的boot與swap分區,後接271G的LVM卷,LVM卷中文件系統位置有個空的reiserfs超級塊。
·
  咱們此次要恢復的數據就是原來271G中文件系統裏的全部用戶數據,這些數據包含了數據庫、網站程序與網頁、單位OA系統裏的全部辦公文檔。
linux服務器reiserfs文件系統損壞,你須要學會這種修復方法
·
服務器數據恢復工程師先經過對全盤reiserfs樹節點之間的關聯肯定了原來的reiserfs分區位置,發現原來存儲數據的文件系統的前2G數據已經被覆蓋,應該是用戶在安裝系統時錯誤地初始化了分區結構,因此裝好系統沒法導入LVM卷而作過reiserfsck試圖修復。
·
因reiserfs文件系統對文件系統裏全部的文件(含目錄)線性化後,再以文件key生成B+樹,樹不斷增長節點會致使樹的結構總體拉展後向整個磁盤的數據區作平滑遷移。這樣一來頂級節點一般不會放在文件系統的最前面。linux

因根目錄的文件KEY號一般是最小的,因此,從空間上看,前2G中存儲最多的應該是從根起始路徑最近的key節點,這樣,用戶數據因目錄層次較深,節點存在的可能性很高。前2G覆蓋的數據已經沒法恢復,只能但願不要剛好覆蓋用戶數據。因文件系統前面對整個樹的索引全丟失,加上reiserfs的樹概念設計得很抽象,重搭建樹會很困難。
·
工程師經過自主程序在整個原文件系統區域進行key節點掃描並將全部節點導出。而後經過自主程序對全部葉節點從新排序、過濾(去掉以前刪除文件丟棄的節點),從新生成二級、三級、四級等葉節點。選擇分區前面2G空間作爲新樹的結構區(反正這部分數據是沒用的了,重裝系統已經裝得滿滿的),並生成對應地址信息。
·
應對目錄命名問題,如遇到原樹路徑某節點丟失的狀況,對其用自定義的key節點編號命名,如沒法肯定其父目錄,暫加入/otherfiles下。根據上面對,生成樹索引信息,寫入特定位置,再根據這些信息,生成超級塊,設置clear標誌。在suse虛擬機下,建立快照,掛載修復好的卷,已經能夠看到文件了。(注:虛擬機與快照的目的爲了操做可加溯,同時因bitmap等元數據不影響數據,未作修正,故掛載前不可作reiserfsck)。
·
在修復用的suse虛擬機下,掛載用於copy數據的目標硬盤,mkfs後將全部數據cp到目標盤。用戶經過find命令整理所需數據,修正部分目錄文件位置與名稱。部分丟失的散文件,按大小與文件頭標誌查找,找到後移動及重命名。
linux服務器reiserfs文件系統損壞,你須要學會這種修復方法
·
  樹的不直觀性加上程序的調試,使得整個恢復工做異常繁雜,幸運的是全部的重要數據100%都被咱們找到了。數據庫

相關文章
相關標籤/搜索