Hyper-V 第二代虚拟机使用虚拟 UEFI。安全启动(Secure Boot)会验证启动加载器和 UEFI 组件的签名,阻止未受信任代码在系统启动前运行。它默认启用,但模板选错会让正常镜像也无法启动。
一、三类模板怎么理解
在关闭虚拟机后,打开“设置(Settings)→ 安全(Security)”:
- Microsoft Windows:用于受支持的 Windows 来宾。
- Microsoft UEFI Certificate Authority:常用于受支持的 Linux 发行版。
- Open Source Shielded VM:用于相应的 Linux 屏蔽虚拟机场景,并非普通安装的首选。
界面名称会随系统版本和语言稍有差异。先查看来宾系统厂商是否支持 Hyper-V 安全启动。
PowerShell 示例:
Set-VMFirmware -VMName 'Ubuntu-Lab' -EnableSecureBoot On `
-SecureBootTemplate MicrosoftUEFICertificateAuthority
Get-VMFirmware -VMName 'Ubuntu-Lab' | Format-List EnableSecureBoot,SecureBootTemplate
二、启动失败的正确顺序
先确认虚拟机是第二代,再检查 ISO 是否真的可启动、DVD 是否已挂载、启动顺序是否把 DVD 或系统盘放在合适位置。启动安装 ISO 时看到“Press any key”要及时操作,否则固件会继续尝试下一设备。
如果提示签名或镜像哈希不允许,核对模板和 ISO 来源。只有在明确来宾不支持、并接受风险时,才临时关闭安全启动验证;安装完成后尝试重新启用并验证。
$dvd = Get-VMDvdDrive -VMName 'Ubuntu-Lab'
Set-VMFirmware -VMName 'Ubuntu-Lab' -FirstBootDevice $dvd
三、UEFI 与宿主机固件不是一回事
第二代虚拟机的 UEFI 由 Hyper-V 提供,它独立于宿主机自己以 BIOS 还是 UEFI 启动。宿主机仍需满足 Hyper-V 的 CPU 虚拟化和系统要求,但不能通过改宿主机启动顺序来修虚拟机启动顺序。
四、变更前保留证据
记录当前固件配置、启动顺序、模板、ISO 校验值和错误画面。若是从 VMware 或物理机迁移,还要确认原系统是 UEFI/GPT 还是 BIOS/MBR。不要同时改变代数假设、控制器、分区和安全启动,否则很难知道哪一步起作用。
本文为中文原创教程。模板与安全功能参考 Microsoft Learn:Generation 2 VM security features和 Set-VMFirmware。
评论一下?