网站搜索

如何在 Hyper-V 中禁用安全启动


在这篇文章中,我们将向您展示如何在 Hyper-V 中禁用安全启动,以及如果启用安全启动时 Hyper-V 无法启动该怎么办。

如果你在 Hyper-V 中运行第二代虚拟机并遇到启动问题,你可能需要禁用安全启动。此功能在较新的虚拟机上默认启用,有时可能会阻止某些操作系统正常启动。

如何在 Hyper-V 中禁用安全启动

安全启动是UEFI(统一可扩展固件接口)中的一项安全标准,它确保计算机启动时只运行受信任的软件。它在固件、操作系统加载程序和驱动程序运行之前验证它们的数字签名。这有助于防止恶意软件和未经授权的代码在启动时加载。

在 Hyper-V 中,生成 2 的虚拟机默认启用安全启动。然而,生成 1 的虚拟机使用较旧的 BIOS 固件,不支持此功能。如果您安装的操作系统不支持 UEFI 安全启动,或者您使用某些自定义镜像或较旧的操作系统版本,虚拟机可能无法启动。在这些情况下,您可以通过禁用安全启动来解决问题,而无需重新创建虚拟机。

要在 Hyper-V 中禁用安全启动,您需要按照以下两种方法中的任意一种进行操作。

  1. 使用 Hyper-V 管理器
  2. 使用 PowerShell

让我们详细谈谈他们。

1. 使用 Hyper-V 管理器

要在 Hyper-V 管理器中禁用安全启动,请按照以下步骤操作。

  • 从开始菜单启动 Hyper-V 管理器。
  • 在虚拟机列表中,右键点击你想要修改的虚拟机,然后选择 设置。
  • 在左侧菜单中,选择安全。在右侧,你会看到安全启动部分。
  • 取消选中标有启用安全启动的复选框。
  • 点击确定以应用您的设置。

下次启动虚拟机时,它将启动而不执行安全启动。

2. 使用 PowerShell

对于偏好使用命令行的人来说,您可以通过 PowerShell 用一条命令来禁用安全启动。

在开始菜单中搜索 Windows PowerShell,右键点击它,然后选择以管理员身份运行。

使用以下命令,将 virtualmachine 替换为您的虚拟机的实际名称:

Set-VMFirmware -VMName "virtualmachine" -DisableSecureBoot

一旦执行,虚拟机将在下一次启动时以禁用安全启动的方式启动。

在某些 Hyper-V 配置中,由于系统策略或版本差异,PowerShell 命令可能无法按预期工作。如果遇到问题,请改用 Hyper-V 管理器方法。

启用安全启动时 Hyper-V 无法启动

这通常发生是因为安全启动需要操作系统或引导程序具有有效的受信任数字签名。如果您尝试启动自定义操作系统镜像、没有 UEFI 支持的旧操作系统,或未正确配置以支持安全启动的操作系统,虚拟机管理程序会阻止启动,从而导致启动失败。

现在,让我们来看一些解决这个问题的方案。

1. 在虚拟机设置中禁用安全启动

这是最直接的修复方法,因为它完全取消了签名检查的要求,使现有操作系统可以正常启动。打开 Hyper-V 管理器,右键点击虚拟机,然后选择设置。进入安全选项卡,取消勾选启用安全启动,然后点击确定。

2] 将虚拟机生成从 2 改为 1

第一代虚拟机使用传统 BIOS 固件而不是 UEFI,因此不适用安全启动。这确保了与较老或非 UEFI 操作系统的兼容性。您必须创建一个新的 第一代虚拟机。然后,将现有的虚拟硬盘(VHD/VHDX)附加到它,并配置相同的硬件设置(内存、处理器等)。

3. 使用正确签名的操作系统或模板

安全启动只允许使用受信任签名的操作系统启动。使用官方媒体的 Windows 镜像或正确准备的模板可以确保满足此要求。获取标准的、未修改的操作系统安装 ISO(例如来自 Microsoft 的)。创建一个新的 Gen 2 虚拟机,挂载官方 ISO,并执行全新安装。

4. 为自定义操作系统添加受信任的证书

如果你运行的是支持UEFI安全启动的Linux或BSD虚拟机,但使用的是未被微软签名的自定义内核或引导程序(如GRUB),你可以在虚拟机的虚拟UEFI固件中注册你自己的证书。

  • 获取或创建机器所有者密钥 (MOK) 或安全启动签名证书。
  • 使用像 sbsign 这样的工具,用此证书签署您的 内核或引导程序(例如 shim.efi、grubx64.efi、vmlinuz)。
  • 将虚拟机启动到 UEFI 固件设置(在 Hyper-V 连接窗口中,在虚拟机关闭时选择 文件 > 设置,或者重置虚拟机并在启动时按下一个键)。
  • 在固件中导航到 安全启动 或 安全 菜单,并选择 注册密钥 或 自定义模式 选项。
  • 从虚拟FAT文件系统(如软盘映像或ISO)加载您的证书文件(通常为 .der 或 .esl 格式),以将其添加到虚拟机的受信任数据库中。

希望通过这些解决方案,你的问题能够得到解决。

Hyper-V 是否需要安全启动?

不,Hyper-V 本身不需要安全启动(Secure Boot)。安全启动是一种可选的安全功能,仅适用于使用 UEFI 固件的第二代虚拟机。你可以在不启用安全启动的情况下创建和运行第一代(基于 BIOS)和第二代虚拟机。安全启动主要推荐用于现代的 Windows 和 Linux 客户机,以防止启动级别的恶意软件,但对于超管程序的正常运行并不是必需的。

相关文章