我需要使用命令行从 Windows 2019 Hyper-V Core 服务器上的备份中还原 vhdx 文件。这是我正在使用的命令:
wbadmin start recovery -version:10/12/2021-05:00 -itemType:hyperV -items:F3D...1E -recoveryTarget:C:\temp
该命令生成以下警告。之后系统提示我继续恢复还是取消恢复。
警告:如果您尝试恢复到备用位置的虚拟机已从该主机备份,则这将删除并覆盖原始虚拟机(如果仍然存在)。
您已选择恢复应用程序 HyperV。以下组件的文件将恢复至 C:\temp。注意:在不涉及写入程序的情况下将文件恢复至备用位置将无法恢复应用程序。
警告:如果虚拟机在恢复后网络设置不同,则虚拟机可能无法启动。恢复完成后,请使用 Hyper-V 管理器验证虚拟机的网络设置,然后再启动它们。
我不希望恢复操作删除并覆盖警告中所述的原始 VM。此外,警告似乎自相矛盾。我希望发生的场景写在注释中,因为我假设“...如果没有写入程序的参与,应用程序将不会恢复应用程序”可能意味着 wbadmin 不会覆盖主机上的 VM,尽管它发出了警告。我在网上找不到有关此信息。
此外,wbadmin start recovery 命令中还有一个 [-alternateLocation] 选项,但记录得并不充分。它甚至似乎没有包含在 Microsoft 官方在线文档中。
-alternateLocation Valid only when recovering HyperV to alternate recovery target.
Allows recovering the HyperV components, updating configuration and
registering the VM with the Hyper-V management service.
使用它会稍微改变我收到的警告,即省略了注释。
警告:如果您尝试恢复到备用位置的虚拟机已从该主机备份,则这将删除并覆盖原始虚拟机(如果仍然存在)。
您已选择恢复应用程序 HyperV。以下组件的文件将恢复至 C:\temp。
警告:如果您尝试恢复到备用位置的虚拟机已从该主机备份,则这将删除并覆盖原始虚拟机(如果仍然存在)。
警告:如果虚拟机在恢复后网络设置不同,则虚拟机可能无法启动。恢复完成后,请使用 Hyper-V 管理器验证虚拟机的网络设置,然后再启动它们。
我想要实现的基本上是 GUI 版本 (Windows Server Backup) 中的“复制到文件”,我怀疑实现此目的的方法是省略 [-alternateLocation] 选项。在我扣动扳机并自食其果之前,我想看看是否有人可以确认这一点。顺便说一句,我说的是生产域控制器 VM。所以我不能冒任何风险。
答案1
由于您只想从备份中恢复文件,请考虑以只读方式安装备份 VHDX,然后从备份中复制所需的文件。安装特定版本可能比安装最后一个备份更复杂一些,因为您需要先公开快照。
执行
wbadmin show versions
并找到您需要公开的“快照 ID”的 GUID。我建议将其放在剪贴板上。运行
diskshadow
并在DISKSHADOW>
提示符下输入expose {Snapshot ID} x:
,其中“x:”是您想要在其下显示快照的驱动器号。剪贴板在这里派上用场。我通常会保持diskshadow
运行并继续该过程(因为稍后需要它)。使用您最喜欢的方法从暴露阴影的驱动器号安装备份 VHDX。我通常会使用 Powershell 并执行类似操作,
$x = Mount-VHD -Path <<VHDX PATH>> -ReadOnly -Passthru
以便将安装详细信息保存在变量中以供日后使用。您可以使用和来确保新安装的卷没有在 Powershell 中自动分配驱动器号(假设您按照我上面所做的那样安装了磁盘)以
$z = Get-Disk -Number $x.Number | Get-Partiton | Get-Volume
查看$z
返回的内容。您可能希望为卷分配一个驱动器号。我发现使用纯 Powershell 会令人沮丧,所以我最终做了类似的事情,
mountvol r: $z.UniqueId
其中“r:”是我想要分配给已安装的备份 VHDX 的驱动器号。最后,公开快照并安装备份 VHDX 后,您可以通过分配的驱动器号访问卷并复制所需的文件。
要将所有这些恢复原状,我会
mountvol r: /r
从已安装的备份 VHDX 中删除驱动器号。我将使用 卸载 VHDX$x | Dismount-VHD
。最后,我将返回diskshadow
并执行UNEXPOSE X:
取消显示快照。这会使机器恢复到我找到它时的状态。