HyperV Linux EFI VHDX 迁移在启动选项中缺少 EFI

HyperV Linux EFI VHDX 迁移在启动选项中缺少 EFI

我有一个HyperV 2016由 n 台机器组成的集群在 上运行W2k16

我已经复制了按照此启动顺序运行的VHDX虚拟RHEL 7.5 (Gen2)机(并且禁用了安全启动):

截屏

使用克隆磁盘创建新的 VM 后,EFI 文件条目消失了,我无法再启动。

注意:如果我从启动,Rescatux CD我会看到所有启动项都正确列出,并且我可以(从该磁盘手动)启动到RHEL

答案1

UEFI 启动选项存储在 UEFI 变量中,而不是磁盘上。对于物理机或虚拟机来说都是如此。Hyper-V 将 UEFI 变量存储在 VM 状态文件之一中,而不是 VHD 中。因此,当您将 VHD 与 VM 分离时,您会丢失 UEFI 变量和启动项。

如果您想要克隆一台依赖 UEFI 变量进行启动的机器,请导出虚拟机并再次导入。这样可以将状态文件和 VHD 保存为一组,而不是将它们分开。

顺便说一句,并非所有客户操作系统都像 RHEL 一样设置 UEFI 变量,这就是为什么您并不总是看到这个问题。包括 Windows 在内的某些操作系统将 UEFI 引导变量设置为指向磁盘,而不是磁盘上的文件,并且 UEFI 规范规定了在磁盘上的默认位置中查找引导文件的位置。我之所以提到这一点,是因为人们通常会问的下一个问题是为什么它似乎只在某些时候失败。

相关内容