IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁(yè)操作系統(tǒng)LINUX → Linux reiserfs文件系統(tǒng)損壞后的數(shù)據(jù)恢復(fù)

Linux reiserfs文件系統(tǒng)損壞后的數(shù)據(jù)恢復(fù)

時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)

[數(shù)據(jù)恢復(fù)故障描述]

一臺(tái)IBM X3850服務(wù)器,由4塊146G SAS硬盤組成RAID5作為存儲(chǔ)介質(zhì),操作系統(tǒng)為SUSE LINUX,文件系統(tǒng)全部是reiserfs。

分析后得知:之前的硬盤數(shù)據(jù)組織結(jié)構(gòu)為: 一個(gè)不到100M的boot分區(qū),后接一個(gè)271G的LVM卷,之后是2G的swap分區(qū)。LVM卷中直接劃分了一個(gè)reiserfs文件系統(tǒng),作為根分區(qū)。

用戶在使用過程中,系統(tǒng)未知原因癱瘓。

重裝系統(tǒng)后,整個(gè)RAID邏輯卷變成了前面2G的boot與swap分區(qū),后接271G的LVM卷,LVM卷中文件系統(tǒng)位置有個(gè)空的reiserfs超級(jí)塊。

要求恢復(fù)原來(lái)271G中文件系統(tǒng)里的所有用戶數(shù)據(jù),數(shù)據(jù)分別是MYSQL數(shù)據(jù)庫(kù)、PGSQL數(shù)據(jù)庫(kù)、網(wǎng)站程序與網(wǎng)頁(yè)、單位OA系統(tǒng)里的所有辦公文檔。

[數(shù)據(jù)恢復(fù)分析]

1、通過對(duì)全盤reiserfs樹節(jié)點(diǎn)之間的關(guān)聯(lián),確定了原來(lái)的reiserfs分區(qū)位置,以此斷定,原來(lái)存儲(chǔ)數(shù)據(jù)的文件系統(tǒng)前2G被覆蓋。

2、應(yīng)該是用戶在安裝系統(tǒng)時(shí)錯(cuò)誤地初始化了分區(qū)結(jié)構(gòu),之后裝好系統(tǒng)后,發(fā)現(xiàn)無(wú)法導(dǎo)入LVM卷,曾做過reiserfsck試圖修復(fù)。

3、因reiserfs文件系統(tǒng)對(duì)文件系統(tǒng)里所有的文件(含目錄)線性化后,再以文件key生成B+樹,樹不斷增加節(jié)點(diǎn),會(huì)導(dǎo)致樹的結(jié)構(gòu)整體拉展后向整個(gè)磁盤的數(shù)據(jù)區(qū)做平滑遷移,這樣,頂級(jí)節(jié)點(diǎn)通常不會(huì)放在文件系統(tǒng)的最前面。因根目錄的文件KEY號(hào)通常是最小的,所以,從空間上看,前2G中存儲(chǔ)最多的應(yīng)該是從根起始路徑最近的key節(jié)點(diǎn),這樣,用戶數(shù)據(jù)因目錄層次較深,節(jié)點(diǎn)存在的可能性很高。

4、前2G覆蓋的數(shù)據(jù)無(wú)法恢復(fù),只能希望不要恰好覆蓋用戶數(shù)據(jù)。

5、因文件系統(tǒng)前面對(duì)整個(gè)樹的索引全丟失,加上reiserfs的樹概念設(shè)計(jì)得很抽象,重搭建樹會(huì)很困難。

[數(shù)據(jù)恢復(fù)過程]

1、通過自主程序在整個(gè)原文件系統(tǒng)區(qū)域進(jìn)行key節(jié)點(diǎn)掃描,將所有節(jié)點(diǎn)導(dǎo)出。

2、通過自主程序?qū)λ腥~節(jié)點(diǎn)重新排序、過濾(去掉之前刪除文件丟棄的節(jié)點(diǎn)),重新生成二級(jí)、三級(jí)、四級(jí)等葉節(jié)點(diǎn)。選擇分區(qū)前面2G空間做為新樹的結(jié)構(gòu)區(qū)(反正這部分?jǐn)?shù)據(jù)是沒用的了,重裝系統(tǒng)已經(jīng)裝得滿滿的),并生成對(duì)應(yīng)地址信息。應(yīng)對(duì)目錄命名問題,如遇到原樹路徑某節(jié)點(diǎn)丟失的情況,對(duì)其用自定義的key節(jié)點(diǎn)編號(hào)命名,如無(wú)法確定其父目錄,暫加入/otherfiles下。

3、根據(jù)上面對(duì),生成樹索引信息,寫入特定位置,再根據(jù)這些信息,生成超級(jí)塊,設(shè)置clear標(biāo)志。

4、在suse虛擬機(jī)下,創(chuàng)建快照,掛載修復(fù)好的卷,已經(jīng)可以看到文件了。(注:虛擬機(jī)與快照的目的為了操作可加溯,同時(shí)因bitmap等元數(shù)據(jù)不影響數(shù)據(jù),未做修正,故掛載前不可做reiserfsck)。

5、在修復(fù)用的suse虛擬機(jī)下,掛載用于copy數(shù)據(jù)的目標(biāo)硬盤,mkfs后將所有數(shù)據(jù)cp到目標(biāo)盤。

6、用戶通過find命令整理所需數(shù)據(jù),修正部分目錄文件位置與名稱。

7、部分丟失的散文件,按大小與文件頭標(biāo)志查找,找到后移動(dòng)及重命名。

[數(shù)據(jù)恢復(fù)結(jié)果]

1、所幸重要數(shù)據(jù)100%恢復(fù)成功。

2、樹的不直觀性加上程序的調(diào)試,使得整個(gè)恢復(fù)工作歷時(shí)3天之久,在繁亂的信息樹中跟來(lái)跟去,真是煩人得很,幸好撐下來(lái)了。

[隨筆]

繁鎖的數(shù)據(jù)恢復(fù)分析工作真不是人干的。

關(guān)鍵詞標(biāo)簽:Linux,數(shù)據(jù)恢復(fù)

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門文章 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 Tomcat9.0如何安裝_Tomcat9.0環(huán)境變量配置方法 Tomcat9.0如何安裝_Tomcat9.0環(huán)境變量配置方法 多種操作系統(tǒng)NTP客戶端配置 多種操作系統(tǒng)NTP客戶端配置 Linux操作系統(tǒng)修改IP Linux操作系統(tǒng)修改IP

相關(guān)下載

    人氣排行 Linux下獲取CPUID、硬盤序列號(hào)與MAC地址 dmidecode命令查看內(nèi)存型號(hào) linux tc實(shí)現(xiàn)ip流量限制 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 linux下解壓rar文件 lcx.exe、nc.exe、sc.exe入侵中的使用方法 Ubuntu linux 關(guān)機(jī)、重啟、注銷 命令 查看linux服務(wù)器硬盤IO讀寫負(fù)載