我有 vhdx 格式的單一分割區(非完整磁碟)的映像。我想用它們來建立具有 Hyper-V 的虛擬機器。由於映像只是分割區,因此機器無法啟動。
如何新增磁碟標頭或將多個 vhdx 分割區合併到帶有標頭的單一 vhdx 磁碟。
注意:我有兩個用例:
- 來自 WindowsServerBackup(/WindowsImageBackup) 的 vhdx 映像
- 使用 dd 從 lvm 快照建立的 linux ext4 分割區並使用 qemu-img 進行轉換
我知道分區大小,因為來源伺服器必須正在運行
答案1
不權威,但我認為你的問題的答案是,這取決於原始系統碟是mbr還是gpt。對於Windows,我認為您必須在資料位置之前新增啟動分割區,使用(MBR磁碟)fixmbr和fixboot可讓磁碟啟動,並可能使分割區處於活動狀態(透過diskpart),或fir GPT和UEFI,重新建立EFI和MSR分割。我認為這篇文章解釋了 UEFI 的一切:http://woshub.com/how-to-repair-deleted-efi-partition-in-windows-7/
Alt 選項 1:您可能會在 vhd 上重新安裝 Windows,然後刪除 Windows 分割區,新增僅分割磁碟,然後修復啟動程序(啟動修復)...
Alt選項2:有點解決方法而不是直接答案...也許,我不記得我是否成功嘗試過,但也許...
建立一個附加到虛擬機器的新vhdx,在其上執行基本的Windows 安裝,然後關閉並將僅分割區的vhdx 作為附加磁碟附加,然後啟動到gparted 或您最喜歡的其他復原iso 工具(Hirens 64?) ,以及將分區複製(克隆)到現有分區的頂部。
然後,您可能需要使用 bcdedit 在 Windows 設定引導 > 修復 > 命令提示字元中解決一些引導問題。
Alt 選項 3:如果是系統映像備份,您也可以透過 winsetup > Repair 使用命令列 wbadmin 工具來還原 Windows 備份。有一些先決條件需要滿足,例如您需要恢復到與原始磁碟相同或更大容量的相同數量的“實體”磁碟(附加的 vhd,如果它在虛擬機器中) - 即使它是一個 8TB 磁碟,僅使用1MB,您需要>8TB 的虛擬磁碟才能恢復。
當你更換磁碟和修復東西時,不要忘記檢查 hyper-v 中的啟動順序;您可能會欺騙自己,因為啟動順序不正確而沒有修復它。
我不確定Linux,但對於Windows,您還需要將VM 產生與原始系統類型相匹配- 即在hyper-v 中,用於UEFI 啟動前的第1 代VM(基於傳統BIOS 的系統),以及第1代VM 2 個用於 UEFI 開機系統的虛擬機器。