BIOS 初始化硬件并将操作系统加载到内存中。 在现代硬件中,BIOS 被 UEFI 取代。 本指南解释了什么是 UEFI 以及如何在 Linux 中为 KVM 虚拟机启用 UEFI 支持。
什么是 UEFI?
UEFI, 短缺 ü确定的 乙可扩展的 F固件 一世ninterface,是传统BIOS的新替代品。
与 BIOS 不同,UEFI 是位于计算机硬件和固件之上的微型操作系统。 请记住 BIOS 存储在固件中。
UEFI 可以做的不仅仅是 BIOS。 我们可以将它存储在主板上的闪存中,也可以存储在硬盘上,甚至可以存储在网络共享中。
用 UEFI 替换旧版 BIOS 的最初动机是在 1990 年代中期第一个 Intel-HP Itanium 系统的早期开发过程中诞生的。
由于大型服务器平台的 BIOS 限制,英特尔于 1998 年开始致力于“英特尔启动计划”. 它后来被称为可扩展固件接口 (EFI)。
Apple 为其基于 Intel 的 Mac 系统采用了 EFI,HP 为其 Itanium 2 服务器采用了 EFI。 然而,其他芯片供应商对采用英特尔的 EFI 并没有太大兴趣。
2005 年,一家名为 统一 EFI 论坛 由 AMD、American Megatrends、ARM、Apple、Dell、Hewlett Packard Enterprise、HP Inc.、IBM、Insyde Software、Intel、Lenovo、Microsoft 和 Phoenix Technologies 等领先科技公司组成。
UEFI 论坛的董事会成员包括来自所有这 13 家公司的代表。
UEFI 论坛以 EFI 1.10 规范为起点,接手开发,并从 2.0 版本开始将其重命名为 Unified EFI。
他们同意 UEFI 作为 BIOS 的通用替代品,并负责 UEFI 规范的管理和推广。
UEFI 优势
UEFI 规范提供了许多优于传统 BIOS 的显着优势。 以下是一些值得注意的功能:
- 支持大于 2.2 TB 或更大的硬盘分区。
- UEFI 将 MBR 替换为 GPT 分区,因此您现在可以在一个驱动器上拥有四个以上的主分区。
- UEFI 安全启动功能有助于在操作系统加载之前防御恶意软件攻击,
- 更快的启动时间。
- 时尚的用户界面,包括图形和鼠标光标支持。
- 高效的电源和系统管理。
- 强大的可靠性和故障管理。
- 向后和向前兼容性。
请注意,您不能在现有硬件中将 BIOS 替换为 UEFI。 您需要购买支持并包含 UEFI 的硬件。
UEFI 规范独立于平台,支持多种平台和架构。 希望您对 UEFI 有基本的了解。 现在让我们看看如何为 KVM 来宾启用 UEFI 支持。
在 Linux 中启用对 KVM 虚拟机的 UEFI 支持
我假设您已经在系统上安装了 KVM。 如果您尚未安装,请查看以下指南:
- 在 CentOS 8 服务器上安装和配置 KVM
- 在 Ubuntu 20.04 Headless Server 中安装和配置 KVM
- 在 OpenSUSE Tumbleweed 中安装和配置 KVM
在创建虚拟机之前,我们需要安装 OVMF KVM 主机系统上的软件包。
OVMF 是英特尔 tianocore 固件到 KVM/QEMU 虚拟机的一个端口。 它包含 KVM 和 QEMU 的示例 UEFI 固件。
它允许使用 UEFI 固件轻松调试和试验,以测试虚拟机或使用(包含的)EFI shell。
安装 KVM 时,UEFI 可能已作为依赖项安装。 以防万一没有安装,可以如下图安装。
如果您的 KVM 主机使用 CentOS/RHEL 运行,请运行以安装适用于虚拟机的 UEFI 固件:
$ sudo dnf install edk2-ovmf
如果您的主机系统是 Ubuntu,请运行:
$ sudo apt install ovmf
完毕! 我们刚刚启用了 UEFI 支持。 让我们创建一个支持 UEFI 的虚拟机。
使用 UEFI 引导虚拟机
如果您更喜欢命令行模式,请添加 --boot uefi
创建新虚拟机时的选项:
$ virt-install --name centos8 --ram=2048 --vcpus=1 --cpu host --hvm --disk path=/var/lib/libvirt/images/centos8-vm1,size=10 --location /home/ostechnix/centos8.iso --network bridge=br0 --graphics vnc --boot uefi
或者,您可以使用 虚拟管理器 用于创建新来宾的 GUI 应用程序。 这对新手来说非常容易。
打开 虚拟管理器 应用程序并创建一个新的虚拟机:
为您的 KVM 来宾选择安装介质或 ISO 文件位置:
为 KVM 来宾选择内存和 cpu 内核:

为 KVM 来宾创建磁盘映像:

选中“安装前自定义配置”框,然后单击“完成”按钮:

您现在应该可以看到虚拟机的硬件详细信息。 从概览部分中,选择 “UEFI X86_64……” 固件下拉框中的选项。

单击应用按钮,然后单击顶部的“开始安装”按钮继续安装 KVM 客户机。
现在您应该在初始启动时看到 TianoCore 启动屏幕:

像往常一样继续并完成安装。
UEFI设置界面
使用传统的 BIOS,您必须在启动菜单出现之前点击相应的功能键才能进入 BIOS 并修改任何 BIOS 设置。 在 UEFI 中,没有必要。 您可以直接从 Grub 启动菜单访问 UEFI 设置屏幕。
如果在 KVM 上启用了 UEFI 支持,您应该会在 Grub 启动菜单中看到“系统设置”菜单项:

Enter 进入系统设置以查看 UEFI 设置界面的外观。

您可能会在物理系统上看到具有不同功能的不同 UEFI 接口。 许多 PC 仍配备文本模式 UEFI 设置界面,其外观和工作方式与旧版 BIOS 设置屏幕类似,如下所示。

对 PC 固件进行任何更改后,选择“继续”并按 ENTER 键返回启动菜单。
资源: