天天看點

恢複Hyper-V虛拟機丢失的資料檔案過程

簡介:

由于md3200存儲中虛拟機的資料檔案丢失,導緻整個hyper-v服務癱瘓,虛拟機無法使用,故障環境為windows server 2012伺服器,系統中部署了hyper-v虛拟機環境,虛拟機的硬碟檔案和配置檔案放在朝陽區某托管中心托管的dell md3200存儲中(注:硬碟600g4,4t1)。md3200存儲是由4塊600g硬碟組成的陣列,用作存儲虛拟機的資料檔案。單塊4t硬碟用作虛拟機資料檔案的備份。

故障:

由于md3200存儲中虛拟機的資料檔案丢失,導緻整個hyper-v服務癱瘓,虛拟機無法使用。以如下流程進行資料檢測:

1、對md3200存儲伺服器進行實體檢測,發現存儲并未出現實體故障,涉事硬碟均正常工作

2、檢查作業系統:工作正常中,未發現出錯程序,排除因作業系統bug導緻的資料丢失。

3、分析丢失資料硬碟的檔案系統:打開正常,不符合病毒破壞的表現特征,同時經防毒軟體檢測無病毒。再仔細分析硬碟的檔案系統,發現此檔案系統的元檔案建立時間為11月28日,表明檔案系統的建立時間為11月28日,與資料丢失的時間相吻合。通常這種故障表明:檔案系統被人為重寫了,即分區被格式化了。

4、檢查系統日志:發現系統日志11月28号之前以及當天的系統日志已被清空,稽核日志和服務日志卻并未清空。通常情況下,此操作應該由人為導緻。而格式化分區的操作隻記錄在系統日志中,這與上述人為破壞的表現相符。

5、嘗試恢複系統日志:仔細分析硬碟底層資料,發現硬碟底層中需要恢複的系統日志已被新的日志記錄覆寫,無法恢複。

6、分析作業系統中的所有分區:發現隻有md3200存儲中的兩個分區的檔案系統被重新寫入檔案系統了。通常情況下,對兩個分區的格式化需要有兩個獨立的過程,是以這種針對性的操作應該由人為導緻。

解決方案

1、備份使用者資料

由于資料全部都放dell m3200存儲中,是以隻需要恢複dell m3200存儲中的資料即可。将dell m3200存儲中所有的硬碟标上編号,然後後從存儲中拔下來交給硬體部門檢測硬碟是否存在實體故障。經檢測沒問題後對每塊硬碟做全盤鏡像,使用專用工具(winhex)将硬碟中所有扇區鏡像到一塊備份硬碟中。

如下圖1.:使用專業工具備份所有硬碟資料

恢複Hyper-V虛拟機丢失的資料檔案過程

2、重組磁盤陣列

鏡像完所raid 5的相關資訊,如:條帶大小,條帶走向等資訊。根據這些資訊即可重組有硬碟後,分析每塊硬碟上的資料。分析後發現4塊600g硬碟做了一個raid5,另一塊4t硬碟是做為資料備份使用。仔細分析4塊600g硬碟中的資料結構,可以得出這個此raid。

如下圖2.:使用專業工具重組raid

恢複Hyper-V虛拟機丢失的資料檔案過程

如下圖3.:是用專業工具打開硬碟陣列的情況

恢複Hyper-V虛拟機丢失的資料檔案過程

3、掃描舊的檔案索引項

仔細分析硬碟底層資料,發現硬碟底層中還殘留着許多以前檔案系統的目錄項及檔案索引。經過仔細核對發現這些檔案索引指向的資料都是使用者丢失的檔案内容。但由于整個硬碟太大,人工去搜尋檔案索引會很慢,是以編寫一個提取檔案索引項的小程式,對整個硬碟中所有存在的檔案索引項做掃描,提取所有檔案的檔案索引項。

4、分析掃描到檔案索引項

對掃描到的所有檔案索引項做詳細的分析,發現其索引項都是不連續的,并且大多都是以16k或8k對齊的。正常情況下的檔案索引項是連續的,大小為固定的1k,每個檔案索引項對應一個檔案或目錄。而掃描出來的這些不連續,并且不完整的檔案索引項是無法正常索引到檔案的内容。是以需要對掃描出來的檔案索引項做加工處理。在掃描出來的檔案索引項中搜尋” .vhd”,能找到一個” .vhd”的檔案記錄。然後将這個片連續的檔案索引項提取出來。接着再檢視這段提取出來的檔案索引項中是否有指向下一段檔案索引項的記錄或者是h20屬性。如果有則根據檔案索引項中的特征去比對下一段檔案索引項,如果沒有則跳過這段檔案索引項。根據以上方法基本能查到大多數的檔案索引項片段。而缺失的檔案索引項片段有可能被破壞了,但是可以從資料備份盤中去查找缺失的檔案索引項片段,是以基本可以搜尋到大部分的檔案索引項。

如下圖4.:是檔案索引項截圖

恢複Hyper-V虛拟機丢失的資料檔案過程

5、将檔案索引項組成完整的目錄結構

根據上述方法找到所有的檔案索引項,然後根據檔案索引項的編号将其拼接成整個目錄項結構。以下是搜尋到的部分檔案索引項,由于有部分檔案索引項被破壞,是以隻能找到大部分檔案索引項,但這些檔案索引項已經足以拼接成整個目錄結構了。

如下圖5.:是掃描到的檔案索引項碎片

恢複Hyper-V虛拟機丢失的資料檔案過程

6:修複檔案系統

将重建好的目錄結構和現有檔案系統中的目錄結構進行替換,然後使用專業工具修改部分校驗值。再使用專業的工具解釋這個目錄結構即可看到原有丢失的資料了。

如下圖6.:是用專業工具解釋出來的目錄結構

恢複Hyper-V虛拟機丢失的資料檔案過程

如下圖7

恢複Hyper-V虛拟機丢失的資料檔案過程

為了确定資料是否正确,将其中一個最新的vhd檔案恢複出來。然後将其拷貝到一台支援附加vhd的伺服器上,嘗試附加此vhd。結果附加成功,檢查vhd中最新的資料是否完整。一切檢查完整後将所有資料恢複到一塊硬碟中。

如下圖8:是恢複出來的所有虛拟機資料檔案

恢複Hyper-V虛拟機丢失的資料檔案過程

7、驗證所有資料

在一台測試伺服器上搭建hyper-v的環境,将恢複的虛拟機檔案連接配接到這台伺服器上。然後通過導入虛拟機的方式,将恢複的資料都遷移到新的hyper-v環境。然後讓客戶來驗證所有虛拟機是否完整。

如下圖9.:是虛拟機導入的過程

恢複Hyper-V虛拟機丢失的資料檔案過程

如下圖10.

恢複Hyper-V虛拟機丢失的資料檔案過程

8、遷移所有資料

在客戶驗證所有虛拟機沒問題後,将所有資料拷貝至客戶伺服器中。然後利用導入的方式将虛拟機導入到客戶的hyper-v環境中,需要以下面的方式導入虛拟機,導入後沒有報錯,嘗試啟動所有虛拟機,所有虛拟機啟動都沒問題

恢複Hyper-V虛拟機丢失的資料檔案過程
恢複Hyper-V虛拟機丢失的資料檔案過程
恢複Hyper-V虛拟機丢失的資料檔案過程

繼續閱讀