Windows Hyper-V 虚拟机关闭而不是按命令重新启动

Windows Hyper-V 虚拟机关闭而不是按命令重新启动

我正在运行 Windows 2016 Hyper-V 主机,其中包含以下 VM:
2x Windows 2012 R2
2x Ubuntu 16.04

每当我在更新后重新启动虚拟机时,它们几乎总是关闭并保持“关闭”状态而不是重新启动。

在 Windows VM 的情况下,我尝试了使用 cmd 行和 GUI 重新启动的不同方法,sudo shutdown -r now在 Linux 服务器的情况下也是如此(无论我以具有 sudo 权限的普通用户身份还是在 Linux 服务器上以 root 身份运行该命令都没有区别)。

为什么虚拟机关闭而不是重新启动?

答案1

主机关闭后,客户机重新启动有两个主要要求。

  1. 正如 Vick Vega 在问题评论中指出的那样,您必须在客户操作系统中安装最新的集成服务。
  2. 您必须在 Hyper-V 管理器中为客户机配置适当的关机和启动类型。

对于 Microsoft 正式支持的运行 Hyper-V 2016 或更新版本的大多数现代客户操作系统,集成服务已预先打包在操作系统中。您可以在客户机设置中启用集成服务。您可以通过在 Hyper-V 管理器中右键单击客户机并选择“设置”,然后在“管理”下选择“集成服务”选项来访问这些设置。此处的设置允许您配置要在客户机中提供的集成服务。

要配置客户操作系统在主机关闭时如何反应,您可以以相同的方式访问客户设置并选择“自动停止操作”。此处的设置包括“保存”虚拟机状态(本质上是将运行状态缓冲到磁盘并在客户启动时恢复该运行状态)、关闭虚拟机(相当于立即切断电源,即非正常关机)或关闭尝试使用集成服务执行正常关机的客户操作系统。

要配置主机启动时客户操作系统的反应方式,请以相同方式访问客户设置并选择“自动启动操作”。此处的选项包括“不执行任何操作”、如果主机关闭时虚拟机正在运行则自动启动虚拟机,或始终自动启动虚拟机。您还可以配置启动延迟,让主机或其他虚拟机有机会在启动特定客户机之前完成启动 - 如果您想先启动 DC,这很有用,您可以将成员服务器的启动延迟设置为 5 分钟。

在某些情况下,这些设置无法按设计发挥作用:

最后一个很有趣,因为默认超时期限为 2 分钟(120 秒),因此任何花费比此时间更长的时间关闭的来宾最终都会完全停止。如果您的硬件速度较慢或来宾上排队的操作系统更新较多,则这种情况可能会经常发生。到目前为止(据我所知),截至 Server 2019,调整此超时期限的唯一方法是编辑注册表。注册表项(截至 Server 2016)位于HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization并名为ShutdownTimeout

对于非标准场景 - 例如运行未预装集成服务的客户操作系统(如较旧或鲜为人知的 Linux 发行版),您需要找到适合该操作系统的集成服务下载。集成服务并非适用于每个客户操作系统,并且 Microsoft 不会让运行未正式支持的客户操作系统变得容易。

上述说明可能会因 Hyper-V 版本不同或您在 Windows 8+ 桌面操作系统上使用 Hyper-V 客户端而略有不同。如果您运行的是 Server 2016/Windows 10 或更高版本,也可以使用 PowerShell 进行配置。

迟做总比不做好!希望有帮助 :)

相关内容