在新 VM 中使用包含快照的 VHD

在新 VM 中使用包含快照的 VHD

我希望我們遇到了一個可以恢復的問題。我們遇到了磁碟機崩潰問題,結果發現 VM 和 VHD 的匯出/備份在中途失敗了(當然沒有人檢查日誌)。所以沒有乾淨的方法來實現這一點。我們遺失的是 Hyper-V 程式及其用於配置的所有檔案。

這是在 Windows 11(最新版本)上。都在同一台電腦上,我們遺失的是電腦上的SSD。損壞的驅動器是 C: 驅動器,因此我們遺失了所有 Hyper-V 安裝、登錄、AppData 資料夾等。

我們仍然擁有 VM 和 VHD 檔案。數據。它們位於 D: 磁碟機上。而我們需要的是虛擬光碟機。如果我們找回虛擬機,那就太好了。但我可以創建一個新的虛擬機器。不過我需要 VHD 上的數據。

VM 有 10 個左右的檢查點,因此在 Hyper-V 中,檢查點樹是一系列降序的節點,每個節點都有一個子節點。那個孩子有一個孩子。和...

我創建了一個新的虛擬機器並將其指向 VHDX 檔案。沒有運氣。開機時它說找不到可啟動媒體。這是我擁有的文件:

虛擬硬碟

在此輸入影像描述

虛擬機

在此輸入影像描述

快照

在此輸入影像描述

有辦法恢復嗎?我不太了解 Hyper-V,但我猜 VHD 檔案的集合確實有磁碟機映像。但是告訴 Hyper-V 使用所有這些 - 如何呢?

答案1

現在資料很可能已被破壞。 VHDX 充當所有 AVHDX 檔案的根。如果連接到它並嘗試從它啟動,即使修改了一點,AVHDX 的整個子樹也會被破壞。第三方資料恢復工具是存在的,但不可能說你使用它們的運氣如何。

將來,您應該嘗試重新安裝 Hyper-V 並執行虛擬機器導入,指向 VM 的根資料夾。匯入可以弄清楚快照狀態並自動拼湊快照樹。儘管我懷疑你能否恢復任何東西,但你至少應該用你現在擁有的東西嘗試。它至少應該能夠偵測到虛擬機器。它將嘗試連接到它確定的活動虛擬機,而該虛擬機將引用最近活動的 AVHDX。然後,它將沿著其父樹一直回到根 VHDX。如果您夠幸運,連線和引導嘗試沒有修改任何內容,那麼一切都會正常運作。然後,您可以刪除所有快照,Hyper-V 將自行合併並展平所有內容。

如果您想嘗試從組成的 VHDX 和 AVHDX 檔案重建完整的 VHDX,那麼您需要透過以下方式運行每個 AVHDX獲取VHD。每個都會有一個父路徑財產: 選擇 ParentPath 的 Get-VHD 輸出

找到沒有其他 AVHDX 將其作為父項指向的 AVHDX。這將是鏈條中的最後一個。向後推導,直到您以相反的順序了解整個鏈條。您可能可以按修改日期工作,但 ParentPath 是一個更可靠的指示器。一旦合併,就無法返回,所以第一次就做對。合併命令不會檢查您正在處理的磁碟檔案是否有自己的子檔案。如果它有一個父級,它會將其合併到該父級中,從而有效地孤立它所擁有的所有子級。您可以使用以下命令重新設定孤立 VHDX 的父級:設定VHD,但這只是額外的繁忙工作,您必須知道新的父級是誰,否則您將不得不一次檢查一個可用的磁碟文件,直到找到正確的資訊為止。

一旦您知道了家長命令,請使用合併VHD,從無子級 AVHDX 開始。

Merge-VHD -Path childless.avhdx

範例合併-VHD

如果成功,這將自動刪除合併的子 AVHDX。轉到列表中的下一個。

在這種情況下,我懷疑最終合併將失敗,因為 VHDX 可能已修改並且其子級不再對齊。但是,在你嘗試之前你不會知道。

相關內容