linux檔案系統損壞?你只需學會這個方法就能完美修復
今天為大家介紹一個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系統裡的所有辦公文件。
伺服器資料恢復工程師先透過對全盤reiserfs樹節點之間的關聯確定了原來的reiserfs分割槽位置,發現原來儲存資料的檔案系統的前2G資料已經被覆蓋,應該是使用者在安裝系統時錯誤地初始化了分割槽結構,所以裝好系統無法匯入LVM卷而做過reiserfsck試圖修復。
因reiserfs檔案系統對檔案系統裡所有的檔案(含目錄)線性化後,再以檔案key生成B+樹,樹不斷增加節點會導致樹的結構整體拉展後向整個磁碟的資料區做平滑遷移。這樣一來頂級節點通常不會放在檔案系統的最前面。
因根目錄的檔案KEY號通常是最小的,所以,從空間上看,前2G中儲存最多的應該是從根起始路徑最近的key節點,這樣,使用者資料因目錄層次較深,節點存在的可能性很高。前2G覆蓋的資料已經無法恢復,只能希望不要恰好覆蓋使用者資料。因檔案系統前面對整個樹的索引全丟失,加上reiserfs的樹概念設計得很抽象,重搭建樹會很困難。
資料恢復工程師透過自主程式在整個原檔案系統區域進行key節點掃描並將所有節點匯出。然後透過自主程式對所有葉節點重新排序、過濾(去掉之前刪除檔案丟棄的節點),重新生成二級、三級、四級等葉節點。選擇分割槽前面2G空間做為新樹的結構區(反正這部分資料是沒用的了,重灌系統已經裝得滿滿的),並生成對應地址資訊。
應對目錄命名問題,如遇到原樹路徑某節點丟失的情況,對其用自定義的key節點編號命名,如無法確定其父目錄,暫加入/otherfiles下。根據上面對,生成樹索引資訊,寫入特定位置,再根據這些資訊,生成超級塊,設定clear標誌。在suse虛擬機器下,建立快照,掛載修復好的卷,已經可以看到檔案了。(注:虛擬機器與快照的目的為了操作可加溯,同時因bitmap等後設資料不影響資料,未做修正,故掛載前不可做reiserfsck)。
在修復用的suse虛擬機器下,掛載用於copy資料的目標硬碟,mkfs後將所有資料cp到目標盤。使用者透過find命令整理所需資料,修正部分目錄檔案位置與名稱。部分丟失的散檔案,按大小與檔案頭標誌查詢,找到後移動及重新命名。
樹的不直觀性加上程式的除錯,使得整個恢復工作異常繁雜,幸運的是所有的重要資料100%都被我們找到了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31380569/viewspace-2674555/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux檔案系統損壞如何修復Linux
- InterBase資料庫檔案損壞的修復方法資料庫
- win10系統檔案受損如何修復 win10系統檔案修復的方法Win10
- WPS文件損壞如何修復?WPS文件損壞的修復方法
- SQL Anywhere db檔案損壞修復 DB檔案修復 DB資料庫修復SQL資料庫
- system資料檔案頭損壞修復
- Win10系統損壞的cbs.log檔案如何修復Win10
- linux下修復磁碟損壞Linux
- 記錄一次 HotPE 導致的檔案系統損壞及修復
- Win7系統ISP損壞怎麼辦?Win7系統中lsp損壞的修復方法Win7
- Win7系統LSP損壞怎麼辦?Win7系統中LSP損壞的修復方法Win7
- 學習這篇Oracle資料庫檔案壞塊損壞的恢復方法,擴充你的知識面Oracle資料庫
- win10系統硬碟分割槽表損壞的修復方法Win10硬碟
- e460安裝win10系統提示檔案損壞怎麼修復Win10
- win10系統excel詞典檔案丟失或損壞怎麼修復Win10Excel
- 修復損壞的gz或tar.gz壓縮檔案之方法篇
- 圖解gzip壓縮檔案底層結構及檔案損壞的修復方法圖解
- 不重灌也能修復損壞的 Ubuntu 系統Ubuntu
- win10系統kprcycleaner.exe損壞怎麼修復_win10系統kprcycleaner.exe損壞解決方法Win10
- 修復損壞的gzip壓縮檔案之原理篇
- 磁頭損壞的修復方法有哪些
- win10系統dll檔案一鍵修復 缺少dll檔案修復方法Win10
- MongoDB 資料檔案損壞修復救命repair與致命危險MongoDBAI
- u盤檔案損壞怎麼恢復資料 u盤恢復損壞資料的有效方法
- 電腦硬碟分割槽表損壞怎麼修復?電腦硬碟分割槽表損壞的修復方法硬碟
- Linux中XFS檔案系統的備份,恢復,修復Linux
- linux RAID10磁碟陣列損壞的修復LinuxAI陣列
- 檔案系統修復的一個過程
- 【LINUX】Oracle資料庫 linux磁碟頭資料損壞修復LinuxOracle資料庫
- win10 bcd損壞無法開機怎樣修復_win10系統bcd損壞開機進不了系統解決方法Win10
- 雲伺服器xfs檔案系統修復方法伺服器
- Vsan分散式檔案系統邏輯架構損壞恢復過程分散式架構
- Win10系統線上修復系統受損檔案DIM命令怎麼使用Win10
- SQL Server 資料頁損壞修復SQLServer
- 在Linux中,如何建立、檢查和修復檔案系統?Linux
- 執行 Windows 命令 sfc /scannow 後,系統會開始掃描並檢查系統檔案的完整性,並嘗試修復任何發現的損壞或缺失檔案。Windows
- 【儲存資料恢復】IBM儲存檔案NTFS系統損壞的資料恢復案例資料恢復IBM
- XFS檔案系統的備份、恢復、修復