AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1142181
Accepted
David Thielen
David Thielen
Asked: 2023-08-23 11:43:22 +0800 CST2023-08-23 11:43:22 +0800 CST 2023-08-23 11:43:22 +0800 CST

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

  • 772

我希望我们遇到了一个可以恢复的问题。我们遇到了驱动器崩溃问题,结果发现 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 使用所有这些 - 如何呢?

hyper-v
  • 1 1 个回答
  • 26 Views

1 个回答

  • Voted
  1. Best Answer
    Eric Siron
    2023-09-13T04:54:24+08:002023-09-13T04:54:24+08:00

    现在数据很可能已被破坏。VHDX 充当所有 AVHDX 文件的根。如果连接到它并尝试从它启动,即使修改了一点点,AVHDX 的整个子树也会被破坏。第三方数据恢复工具是存在的,但不可能说你使用它们的运气如何。

    将来,您应该尝试重新安装 Hyper-V 并运行虚拟机导入,指向 VM 的根文件夹。导入可以弄清楚快照状态并自动拼凑快照树。尽管我怀疑你能否恢复任何东西,但你至少应该用你现在拥有的东西尝试一下。它至少应该能够检测到虚拟机。它将尝试连接到它确定的活动虚拟机,而该虚拟机又将引用最近活动的 AVHDX。然后,它将沿着其父树一直回到根 VHDX。如果您足够幸运,连接和引导尝试没有修改任何内容,那么一切都会正常工作。然后,您可以删除所有快照,Hyper-V 将自行合并并展平所有内容。

    如果您想尝试从组成的 VHDX 和 AVHDX 文件重建完整的 VHDX,则需要通过Get-VHD运行每个 AVHDX 。每个都有一个ParentPath属性: 选择 ParentPath 的 Get-VHD 输出

    找到没有其他 AVHDX 将其作为父项指向的 AVHDX。这将是链条中的最后一个。向后推导,直到您以相反的顺序了解整个链条。您可能可以按修改日期工作,但 ParentPath 是一个更可靠的指示器。一旦合并,就无法返回,所以第一次就做对。合并命令不会检查您正在处理的磁盘文件是否有自己的子文件。如果它有一个父级,它会将其合并到该父级中,从而有效地孤立它所拥有的所有子级。您可以使用Set-VHD重新设置孤立 VHDX 的父级,但这只是额外的繁忙工作,而且您必须知道新父级是谁,否则您必须一次检查一个可用的磁盘文件,直到获得对的。

    一旦您知道了父级顺序,请使用Merge-VHD,从无子级 AVHDX 开始。

    Merge-VHD -Path childless.avhdx
    

    示例合并-VHD

    如果成功,这将自动删除合并的子 AVHDX。转到列表中的下一个。

    在这种情况下,我怀疑最终合并将失败,因为 VHDX 可能已被修改并且其子级不再对齐。但是,在你尝试之前你不会知道。

    • 0

相关问题

  • Hyper-V 企业许可 - 包含的 CAL 是否应用于每个 VM 或每个 VM?[复制]

  • Hyper-V 和 Drobo Pro

  • 小型企业的服务器虚拟化/RAID 配置

  • 交换服务器 2003 在 hyper-v 上

  • 在同一台机器上将域控制器作为 1 个 VM 和一个 RODC 作为另一个 VM 运行,它会工作吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve